BibLaTeX: prevent caps for some authors
I suggest you use the fancy annotation feature for fields. If you have a corporate author simply add author+an = {=corporate}
.
With
\renewcommand*{\mkbibnamefamily}[1]{%
\iffieldannotation{corporate}
{#1}
{\textsc{#1}}}
we then check if we have a corporate
author or not. Small caps are used only if the author is not corporate.
MWE
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{csquotes}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{ruhr,
author = {{Regionalverband Ruhr}},
author+an = {=corporate},
title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
year = {2017},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\mkbibnamefamily}[1]{%
\iffieldannotation{corporate}
{#1}
{\textsc{#1}}}
\begin{document}
\cite{sigfridsson,ruhr},
\printbibliography
\end{document}
The advantages of the annotation really come into play once we realise that we can add annotation to specific names.
With author+an = {1=corporate},
only the first name is corporate
. We then need to use
\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{corporate}
{#1}
{\textsc{#1}}}
Note \ifitemannotation
instead of \iffieldannotation
.
In
@misc{ruhr,
author = {{Regionalverband Ruhr} and Anne Elk},
author+an = {1=corporate},
title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
year = {2017},
}
then, "Anne Elk" gets small caps, but "Regionalverband Ruhr" doesn't.
You will of course have to count the number of authors and give the correct number even if there is only one author
author = {{Regionalverband Ruhr}},
author+an = {1=corporate},
and
author = {Anne Elk and {Regionalverband Ruhr}},
author+an = {2=corporate},
This will naturally also work for the editor
field and any other name field.
You also can filter with a keyword
, say nosc
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{csquotes}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{ruhr,
author = {{Regionalverband Ruhr}},
title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
year = {2017},
keywords = {nosc}
}
@book{selle05,
author = {Selle, K},
title = {Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land},
year = {2005},
publisher = {Edition Stadt-Entwicklung},
location = {Dortmund}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamefamily}[1]{%
\ifkeyword{nosc}
{#1}
{\textsc{#1}}}
\begin{document}
Siehe \cite{ruhr, selle05}.
\printbibliography
\end{document}