As I wrote in the comment biblatex
offers a very user friendly solution.
The style authoryear
accomplishes your request of ordering and style. To set a colon after the year you can redefine the separator \labelnamepunct
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear,backend=biber,maxcitenames=1]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
Example cite \cite{companion}
\printbibliography
\end{document}
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
Here's a way (code courtesy of Alan Munn).
I added
hyperref
just to be sure that the anchors are correctly set (they are).This simple patch has the defect that numbers are not aligned to the last digit. For this a more complicated route should be taken: I decided to write in the aux file the last number, so we can set the widest label at the next run.
Thanks to Alan Munn for providing meaningful references.