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.)
First thing to do is to add a field for the journal abbreviation to the article entrytype, journalabbr
in the MWE. Therefore you need to declare a datamodel (an extra file; in the MWE I've used filecontents to simulate that) and you have to tell biblatex/biber to use it in the package options.
Then you have to modify the cite command, so it fits your needs. \citep
from the authoryear-style (your citestyle) uses the \cite
command. There you just have to add a switch, which checks if the field journalabbr
is empty or not, and prints it out or not.
Last but not least you have to add the abbreviation fields to the entries.
MWE:
\begin{filecontents}{min.bib}
@article{boisson2003unexpected,
title={Unexpected protein families including cell defense components feature in the N-myristoylome of a higher eukaryote},
author={Boisson, B. and Giglione, Carmela and Meinnel, Thierry},
journal={Journal of Biological Chemistry},
journalabbr={JBC},
year={2003},
publisher={ASBMB}
}
\end{filecontents}
\begin{filecontents}{authorjabbryear.dbx}
\ProvidesFile{authorjabbryear.dbx}
\DeclareDatamodelFields[type=field,datatype=literal]{journalabbr}
\DeclareDatamodelEntryfields[article]{journalabbr}
\end{filecontents}
\documentclass[fontsize=11pt, paper=a4, ngerman, DIV=calc]{scrartcl}
\usepackage[scaled]{helvet}
\renewcommand*\familydefault{\sfdefault}
\usepackage{fixltx2e}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[german=quotes]{csquotes}
\usepackage[style=authoryear-comp,sortcites=true,sorting=nyt,isbn=false,natbib=true, citestyle=authoryear,bibstyle=authoryear,backend=biber,maxnames=1,maxcitenames=1,
,datamodel=authorjabbryear%added!
] {biblatex}
\DefineBibliographyStrings{ngerman}{ andothers = {{et\,al\adddot}} }
\renewbibmacro*{cite}{%from authoryear.cbx
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\addspace}}
{\printnames{labelname}%
\setunit{\nameyeardelim}}%
\iffieldundef{journalabbr}{}{%
\printfield{journalabbr}%
\setunit{\nameyeardelim}%
}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\addbibresource{min.bib}
\begin{document}
\citep{boisson2003unexpected}
How it should look like:
(Boisson et al., JBC, 2003)
\printbibliography
\end{document}
Best Answer
This is an error in
achemso
which will be fixed in the next release. For the moment, doingshould correct the issues: this resets the flag for
achemso
and alters the appropriatenatbib
settings.