Summarised (and expanded) from comments above:
BibTeX uses the aux file written by LaTeX (showing where you want to cite what) together with a bst file (containing stylistic information - such as plain.bst) and a bib file (containing bibliographic information about any document you might want to reference). So a workflow from the command line might look like
latex
- to generate the aux file
bibtex
- to generate a bbl file which contains information about the specific references mentioned in the aux file, formatted correctly
latex
- to incorporate the information in the bbl file into your typeset document
- possibly
latex
again, to fix any cross-referencing problems introduced when all the citations were included
Looking at the aux and bbl files along the way - and, as @Joseph pointed out, the blg file which is BibTeX's log - can help to troubleshoot problems.
For completeness as an answer: on this occasion it apparently turned out that the bibtex
step wasn't working due to a typo in the name of the bst file.
I'm not aware of a BibTeX style file for PNAS, but the Bibulous project does provide an easy way of customizing styles. For the style suggestions linked to by the OP, it took me only a few minutes to put together a complete style template to follow PNAS' requirements. Using the following main.bib database file
@ARTICLE{Neuhaus,
author = {Jean-Marc Neuhaus and Liliane Sitcher and Meins, Jr, Frederick and Thomas Boller},
year = {1991},
title = {A short C-terminal sequence is necessary and sufficient for the targeting of chitinases to the plant vacuole},
journal = {Proc Natl Acad Sci USA},
volume = {88},
number = {22},
pages = {10362-10366}
}
@INCOLLECTION{Hill,
author = {Adrian V. S. Hill},
year = {1991},
title = {HLA associations with malaria in Africa: some implications for MHC evolution},
booktitle = {Molecular Evolution of the Major Histocompatibility Complex},
editor = {Jan Klein and Dagmar Klein},
publisher = {Springer},
address = {Heidelberg},
pages = {403-420}
}
and the style template file main.bst (the lines below show the complete file)
TEMPLATES:
article = <au> (<year>) <title>. \textit{<journal>} <volume>(<number>): [<startpage>--<endpage>|<startpage>|<eid>|].[ <note>]
incollection = <au> (<year>) <title>. \textit{<booktitle>}[, vol.~<volume>, ][, <edition_ordinal>~ed.][, <null.if_singular(editorlist, edmsg1, edmsg2)>~<ed>][, <series>][, Chap.~<chapter>] (<publisher>, <address>)[, pp~<startpage>--<endpage>|p~<startpage>|<eid>|].[ <note>]
SPECIAL-TEMPLATES:
authorlist = <author.to_namelist()>
editorlist = <editor.to_namelist()>
authorname.n = [<authorlist.n.prefix> ]<authorlist.n.last>[ <authorlist.n.first.initial()>][<authorlist.n.middle.initial().compress()>][, <authorlist.n.suffix>]
au = <authorname.0>, ..., <authorname.9>
editorname.n = [<editorlist.n.prefix> ]<editorlist.n.last>[ <editorlist.n.first.initial()>][<editorlist.n.middle.initial().compress()>][, <editorlist.n.suffix>]
ed = <editorname.0>, ..., <editorname.9>
null = {}
OPTIONS:
edmsg1 = ed
edmsg2 = eds
compiling the main.tex file
\documentclass{article}
\usepackage[paper=letterpaper, text={6.5in,9in},centering]{geometry}
\makeatletter %
\renewcommand{\@biblabel}[1]{#1.}
\makeatother
\begin{document}
\nocite{Neuhaus,Hill}
\bibliography{temp}
\bibliographystyle{temp}
\end{document}
produces the following formatted result:
This provides templates for only journal articles and articles/chapters in books, but the PNAS website provides guidelines for only these two. Templates for other entry types are easily derived from the two shown here. (For example, a book
entry type template can be defined by adding another line
book = <au> (<year>) <title>. ...
in the lines below TEMPLATE:
in the style template file.)
Best Answer
From my understanding of the problem (which is far from being perfect), each macro used within the
bibitems
of thebbl
file needs to be made available tobibentry
when the later is called in the code. The way I've been able to do this, is to make them global within theTex
file explicitly with\global\def
.However, for
\enquote
, this is different because the command is defined in thebbl
directly, which as you noted, results in an "\enquote is already defined" error. To circumvent this issue, as noted by @ChristianHupfer, you can comment out those following two lines in thete.bst
file:and add a definition of
\enquote
explicitly in the preamble of yourTex
document (as you already said in a previous comment).Here is a modified version of your MWE that works on my system without error (with the two lines listed above commented in the
te.bst
file):Which results in: