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
Like for any other macro you want to insert in AUCTeX, you should use C-c RET
cite
RET (or C-c C-mcite
RET; for more information about autocompletion in AUCTeX see the quick start or Completion section of the manual). This works also for all other citation macros provided bynatbib
,biblatex
, ect... (\citep
,\citealt
,\parencite
,\textcite
, etc...)For the particular case of bibliography commands, you may want to take advantage of the great package RefTeX. AUCTeX has a basic support for bibliographic commands also without RefTeX, but this package provides a far superior completion.
In order to automatically start RefTeX when you open a LaTeX file add the following code to your init file
In this way, you can still insert a
\cite
command with C-c RETcite
RET, but you can also use the key-binding C-c [. RefTeX overtakes the task to provide completion of bibliographic entries, but you can continue using the usual AUCTeX-way to insert macros.