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
The full warning message I get in the
.log
isThis tells you that since you only want given/first name initials with the option
giveninits
, you can't get full uniquename disambiguation if need be (as automatically requested by theauthoryear
style withuniquename=full
). The message goes on to say that the option will be set toto allow for name disambiguation at least by name initials.
If you don't want the warning in the first place, just load
biblatex
withuniquename=init
from the start.If you don't want name disambiguation at all, use
uniquename=false
instead (see biblatex, authoryear style: In-text citations display first name initials for certain bibliography entries for example).