code: def bibtex(self):
          
          if self.aggregationType != 'Journal':
              raise ValueError('Only Journal articles supported.')
          template = u'''@article{{{key},
    author = {{{author}}},
    title = {{{title}}},
    journal = {{{journal}}},
    year = {{{year}}},
    volume = {{{volume}}},
    number = {{{number}}},
    pages = {{{pages}}},
    doi = {{{doi}}}
  }}
  
  '''
          if self.pageRange:
              pages = self.pageRange
          elif self.startingPage:
              pages = self.startingPage
          elif self.article_number:
              pages = self.article_number
          else:
              pages = 'no pages found'
          year = self.coverDate[0:4]
          first = self.title.split()[0].title()
          last = self.title.split()[-1].title()
          key = ''.join([self.authors[0].surname, year, first, last])
          authors = ' and '.join(["{} {}".format(a.given_name, a.surname)
                                  for a in self.authors])
          bibtex = template.format(
              key=key, author=authors, title=self.title,
              journal=self.publicationName, year=year, volume=self.volume,
              number=self.issueIdentifier, pages=pages, doi=self.doi)
          return bibtex
docs: Bibliographic entry in BibTeX format.
  
          Returns
          -------
          bibtex : str
              A string representing a bibtex entry for the item.
  
          Raises
          ------
          ValueError : If the item's aggregationType is not Journal.