[Tex/LaTex] LaTeX, BibTeX and keyword Reference


Is there a way of preventing LaTeX class article from printing keyword References. Namely, I would like to get LaTeX to print references from my database processed by BibTeX in the regular fashion but I do not word References to appear on the document.

Best Answer

article defines the thebibliography environment to typeset the references as a \section*. Additionally, it also modifies the headers appropriately to denote a *References "section". If you want to completely remove this from your output and just set the bibliography items, you could use

  \renewcommand{\@startsection}[6]{}% gobble \section*
  \let\@mkboth\@gobbletwo% gobble \@mkboth
  \bibliography{references}% References in references.bib

The first two command redefinitions (of \@startsection and \@mkboth) just gobbles their arguments. Grouping keeps the redefinition local so you can still use \section (and friends) afterword. A "cleaner" redefinition would be to use

  \renewcommand{\section}[5]{}% gobble \section*{..} and \@mkboth{..}{..}
  \bibliography{references}% References in references.bib

Here's the original definition of thebibliography, giving rise to the above redefinitions (I've marked the two commands we want to "remove" via the redefinitions):

  {\section*{\refname}%                                       <--- want to remove this
   \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%  <--- want to remove this
   \@clubpenalty \clubpenalty
      {\@latex@warning{Empty `thebibliography' environment}}%

The latter redefinition of \section assumes the 5 arguments (or tokens) absorbed are

  • #1: *
  • #2: \refname (the braces { } are dropped by default)
  • #3: \@mkboth
  • #4: \MakeUppercase\refname
  • #5: \MakeUppercase\refname

and is therefore class-specific. You could even go one step further and redefine it (\section) to do whatever you want as a replacement. For example


would leave a 20pt vertical space before printing the bibliography entries.

Related Question