You are using bibstyle=chem-acs
, which means that the citation style is unchanged from the biblatex
default. You probably want the chem-acs
citation style too, which is much easier to do using style=chem-acs
:
\begin{filecontents}{\jobname.bib}
@article{James2003,
author = {James, S. L.},
journal = {Chem. Soc. Rev.},
number = {5},
pages = {276--288},
title = {{Metal-organic frameworks}},
volume = {32},
year = {2003}
}
@article{Rowsell2004,
author = {Rowsell, Jesse L.C. and Yaghi, Omar M.},
journal = {Microporous Mesoporous Mater.},
pages = {3--14},
title = {{Metal-organic frameworks: a new class of porous materials}},
volume = {73},
year = {2004}
}
@article{Allendorf2009,
author = {Allendorf, M. D. and Bauer, C. A. and Bhakta, R. K. and Houk, R. J. T.},
journal = {Chem. Soc. Rev.},
number = {5},
pages = {1330--1352},
title = {{Luminescent metal-organic frameworks.}},
volume = {38},
year = {2009}
}
\end{filecontents}
\documentclass[12pt,a4paper,bibliography=totoc]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,style=chem-acs,biblabel=brackets]{biblatex}
\bibliography{\jobname}
\begin{document}
Somebody told me.\cite{James2003,Allendorf2009,Rowsell2004}
\printbibliography
\end{document}
This automatically sets sorting=none
and sortcites=true
as that is standard for chemistry styles.
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
Just use the following redefinition of
\supercite
with just\bibopenbracket
and\bibclosebracket
sprinkled in.If you replace the
\supercite
above by\cite
you redefine the standard\cite
command.