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}
It seems that using backend=biber
is causing the amazing slow down,
I've asked a new focused question here to discuss this issue: Why does biber increase compilation time of pdflatex runs dramatically (factor 2.8!!)?
Performance comparison biber / bibtex8:
Test setup
- my LaTeX document, limited to one long chapter by \includeonly,
- 98 pages with many many references, many of them in large tables.
- large .bib file (5.6 MB) with >3000 references, 350 of them cited in the document
- I'm compiling from OS X terminal to measure the duration of the compilation:
latexmk -C; time pdflatex main.tex
Test results
with biber:
- biber cache removed once with
rm -rf
biber --cache``
latexmk -C; time pdflatex Diss.tex
Output written on Diss.pdf (83 pages, 2130562 bytes).
real 2m17.499s
user 1m47.626s
sys 0m1.030s
biber Diss
real 0m27.257s
user 0m20.568s
sys 0m1.247s
pdflatex Diss.tex
Output written on Diss.pdf (95 pages, 2453607 bytes).
real 4m7.708s
user 3m27.864s
sys 0m1.029s
again pdflatex Diss.tex
Output written on Diss.pdf (95 pages, 2452370 bytes).
real 4m33.769s
user 3m36.491s
sys 0m1.252s
with bibtex8
- remove all aux and bbl files etc.
- latexmk -C; time pdflatex Diss.tex
Output written on Diss.pdf (82 pages, 2130383 bytes).
real 0m48.470s
user 0m19.161s
sys 0m0.522s
- time bibtex Diss
(There were 200 error messages) sure :-(
real 0m1.258s
user 0m0.850s
sys 0m0.061s
time pdflatex Diss.tex
Output written on Diss.pdf (95 pages, 2452225 bytes).
real 2m26.433s
user 1m44.921s
sys 0m0.932s
second pdflatex Diss.tex
Output written on Diss.pdf (95 pages, 2450936 bytes).
real 2m27.148s
user 1m51.958s
sys 0m0.953s
Best Answer
Use
to get rid of the 'pp.' in the bibliography for all types. If you only want that for journal articles, use
\DeclareFieldFormat[article]{pages}{#1}
.For the 'in:', have a look at Suppress "In:" biblatex. The following removes the 'in:' only for
@article
edit: Updated for
biblatex
3.15's definition ofin:
.