Add publication info.

        :param year: year of publication
        :type year: integer

        :param cnum: inspire conference number
        :type cnum: string

        :param artid: article id
        :type artid: string

        :param page_end: final page for the article
        :type page_end: string

        :param page_start: initial page for the article
        :type page_start: string

        :param journal_issue: issue of the journal where
        the document has been published
        :type journal_issue: string

        :param journal_title: title of the journal where
        the document has been published
        :type journal_title: string

        :param journal_volume: volume of the journal where
        the document has been published
        :type journal_volume: string

        :param pubinfo_freetext: Unstructured text describing the publication
        information.
        :type pubinfo_freetext: string

        :param material: material of the article
        :type material: string

        :param parent_record: reference for the parent record
        :type parent_record: string

        :param parent_isbn: isbn for the parent record
        :type parent_isbn: string

def add_publication_info(
        self,
        year=None,
        cnum=None,
        artid=None,
        page_end=None,
        page_start=None,
        journal_issue=None,
        journal_title=None,
        journal_volume=None,
        pubinfo_freetext=None,
        material=None,
        parent_record=None,
        parent_isbn=None,
    ):
        """Add publication info.

        :param year: year of publication
        :type year: integer

        :param cnum: inspire conference number
        :type cnum: string

        :param artid: article id
        :type artid: string

        :param page_end: final page for the article
        :type page_end: string

        :param page_start: initial page for the article
        :type page_start: string

        :param journal_issue: issue of the journal where
        the document has been published
        :type journal_issue: string

        :param journal_title: title of the journal where
        the document has been published
        :type journal_title: string

        :param journal_volume: volume of the journal where
        the document has been published
        :type journal_volume: string

        :param pubinfo_freetext: Unstructured text describing the publication
        information.
        :type pubinfo_freetext: string

        :param material: material of the article
        :type material: string

        :param parent_record: reference for the parent record
        :type parent_record: string

        :param parent_isbn: isbn for the parent record
        :type parent_isbn: string
        """

        # If only journal title is present, and no other fields, assume the
        # paper was submitted, but not yet published
        if journal_title and all(
            not field for field in (cnum, artid, journal_issue,
                                    journal_volume, page_start, page_end)):
            self.add_public_note('Submitted to {}'.format(journal_title))
            return

        publication_item = {}
        for key in ('cnum', 'artid', 'page_end', 'page_start',
                    'journal_issue', 'journal_title',
                    'journal_volume', 'year', 'pubinfo_freetext', 'material'):
            if locals()[key] is not None:
                publication_item[key] = locals()[key]
        if parent_record is not None:
            parent_item = {'$ref': parent_record}
            publication_item['parent_record'] = parent_item
        if parent_isbn is not None:
            publication_item['parent_isbn'] = normalize_isbn(parent_isbn)
        if page_start and page_end:
            try:
                self.add_number_of_pages(
                    int(page_end) - int(page_start) + 1
                )
            except (TypeError, ValueError):
                pass

        self._append_to('publication_info', publication_item)

        if is_citeable(self.record['publication_info']):
            self.set_citeable(True)