Missing "Vol." and "No." in biblatex/biber
To make use of the excellent localisation features of biblatex
, the following approach might be more apt.
\DeclareFieldFormat[article]{volume}{\bibstring{jourvol}\addnbspace #1}
\DeclareFieldFormat[article]{number}{\bibstring{number}\addnbspace #1}
Note the use of a non-breaking space (\addnbspace
), if you prefer a normal space, go with \addpspace
.
(Edit: One should probably better use \bibstring{jourvol}
instead of \bibstring{volume}
, I have changed this, for German at least the output changes, this is not reflected in the image below.)
This, however, results in "Bd. 21.Nr. 1", so we modify the bibmacro volume+number+eid
a bit to include a comma (and a space) between the volume and number.
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit{\addcomma\space}%<---- was \setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
So the MWE
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[backend = biber,style = authoryear,natbib = true]{biblatex}
\usepackage[autostyle = true]{csquotes}
\begin{filecontents}{\jobname.bib}
@article{kakimoto_monitoring_2006,
title = {Monitoring of Interarea Oscillation Mode by Synchronized Phasor Mesurement},
volume = {21},
issn = {0885-8950},
doi = {10.1109/TPWRS.2005.861960},
number = {1},
journal = {{IEEE} Transactions on Power Systems},
author = {Kakimoto, Naoto and Sugumi, Masahiro and Makino, Tohru and Tomiyama, Katsuyuki},
month = feb,
year = {2006},
pages = {260 -- 268}
}
\end{filecontents}
\DeclareFieldFormat[article]{volume}{\bibstring{jourvol}\addnbspace #1}
\DeclareFieldFormat[article]{number}{\bibstring{number}\addnbspace #1}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit{\addcomma\space}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\addbibresource{\jobname.bib}
\begin{document}
\cite{kakimoto_monitoring_2006}
\nocite{*}
\printbibliography
\end{document}
yields
If you wish to include a comma before the volume
, add to your preamble.
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\space}% was: \setunit*{\addspace}
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addcomma\space}}% was: \setunit{\addspace}
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
As far as I can see, this is not a localization issue, so \DefineBibliographyStrings
cannot do anything for you here. You have to modify the field formats. Try:
\DeclareFieldFormat[article]{volume}{Vol. #1}
\DeclareFieldFormat[article]{number}{No. #1}
You can suppress the optional [article]
argument if you want this to hold whatever the entry type.