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}
I suggest you use the special type @inreference
that is specifically for dictionaries and encyclopaedias.
@inreference{BAR60,
author = {Foo Bar},
title = {Baz},
year = {1960},
booktitle = {Encyclopaedia of Everything},
}
Then you can just do
\NewBibliographyString{subvoce}
\DefineBibliographyStrings{english}{
subvoce = {s\adddot v\adddot},
}
\DeclareFieldFormat[inreference]{title}{%
\bibstring{subvoce}\addabbrvspace\mkbibquote{#1\isdot}}
to automatically add the "s.v." to the title.
MWE
\documentclass{article}
\usepackage[backend=biber,style=authoryear]{biblatex}
\NewBibliographyString{subvoce}
\DefineBibliographyStrings{english}{
subvoce = {s\adddot v\adddot},
}
\DeclareFieldFormat[inreference]{title}{%
\bibstring{subvoce}\addabbrvspace\mkbibquote{#1\isdot}}
\begin{filecontents*}{\jobname.bib}
@inreference{BAR60,
author = {Foo Bar},
title = {Baz},
year = {1960},
booktitle = {Encyclopaedia of Everything},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{BAR60}
\printbibliography
\end {document}
If you want the 's.v.' to remain in lowercase at all times, you can sprinkle in a \midsentence
\DeclareFieldFormat[inreference]{title}{%
\midsentence\bibstring{subvoce}\addabbrvspace\mkbibquote{#1\isdot}}
Best Answer
If the numbers are not going to be used as references in the text they serve no real purpose in the bibliography and are useless and superfluous.
In fact I would argue that the numbers can make it harder to navigate the bibliography because take away attention from the important bits of the entry, namely the author name and year.
Compare
(as found in Biblatex enumerating sorted bibliography (using authoryear-ibid style))
to the standard
The names of the authors, which determine the sorting, are much more prominent here, making it easier to navigate a longer bibliography.
The solution above naively just uses
enumerate
and does not expose the numbers for use in citations or elsewhere. With code similar to How to add citation number to bibliography when using bibstyle=authoryear and justification issue (I just copied the relevant code fromnumeric.bbx
) you can letbiblatex
take care of the numbering, which means that is part of the entry data and can be used in citations directly.Conversely, it is possible to combine a full numeric citation style with the layout of the author-year bibliography. See Combining style numeric with style authoryear in BibLaTeX.