def is_published(self):
        """Return True if a record is published.

        We say that a record is published if it is citeable, which means that
        it has enough information in a ``publication_info``, or if we know its
        DOI and a ``journal_title``, which means it is in press.

        Returns:
            bool: whether the record is published.

        Examples:
            >>> record = {
            ...     'dois': [
            ...         {'value': '10.1016/0029-5582(61)90469-2'},
            ...     ],
            ...     'publication_info': [
            ...         {'journal_title': 'Nucl.Phys.'},
            ...     ],
            ... }
            >>> LiteratureReader(record).is_published
            True

        """
        citeable = 'publication_info' in self.record and \
            is_citeable(self.record['publication_info'])

        submitted = 'dois' in self.record and any(
            'journal_title' in el for el in
            force_list(self.record.get('publication_info'))
        )

        return citeable or submitted
Return True if a record is published.

        We say that a record is published if it is citeable, which means that
        it has enough information in a ``publication_info``, or if we know its
        DOI and a ``journal_title``, which means it is in press.

        Returns:
            bool: whether the record is published.

        Examples:
            >>> record = {
            ...     'dois': [
            ...         {'value': '10.1016/0029-5582(61)90469-2'},
            ...     ],
            ...     'publication_info': [
            ...         {'journal_title': 'Nucl.Phys.'},
            ...     ],
            ... }
            >>> LiteratureReader(record).is_published
            True