Я использую эту команду:
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
для печати всех имен авторов заглавными буквами. (если они цитируются в тексте, а также в библографии). Я использую biblatex со стилем authoryear-icomp.
Теперь я хочу применить своего рода фильтр, чтобы исключить учреждения, которые заключены в двойные фигурные скобки, например, так
author = {{Regionalverband Ruhr}}
от печати заглавными буквами (опять же как в тексте, так и в библографии). Как этого можно было добиться?
Так
СЕЛЛЕ, К. (2005): Планы, штейнеры, предприятия: над теневой деятельностью, направленной на развитие города и земли. Дортмунд (=Edition Stadt-Entwicklung).
но
Ruhr Tourismus GmbH (2017): Маркетинговая стратегия 2017–2022 гг. компании Ruhr Tourismus GmbH. Оберхаузен.
решение1
Я предлагаю вам использоватьнеобычная функция аннотации для полей. Если у вас есть корпоративный автор, просто добавьте author+an = {=corporate}
. С
\renewcommand*{\mkbibnamefamily}[1]{%
\iffieldannotation{corporate}
{#1}
{\textsc{#1}}}
Затем мы проверяем, есть ли у нас corporate
автор или нет. Малые заглавные буквы используются только в том случае, если автор не является корпорацией.
МВЭ
\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}
Преимущества аннотации действительно проявляются, когда мы понимаем, что можем добавлять аннотацию к определенным именам. author+an = {1=corporate},
Только с первым именем corporate
. Затем нам нужно использовать
\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{corporate}
{#1}
{\textsc{#1}}}
Примечание \ifitemannotation
вместо \iffieldannotation
.
В
@misc{ruhr,
author = {{Regionalverband Ruhr} and Anne Elk},
author+an = {1=corporate},
title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
year = {2017},
}
тогда «Anne Elk» пишется с маленькой буквы, а «Regionalverband Ruhr» — нет.
Конечно, вам придется подсчитать количество авторов и указать правильное число, даже если автор только один.
author = {{Regionalverband Ruhr}},
author+an = {1=corporate},
и
author = {Anne Elk and {Regionalverband Ruhr}},
author+an = {2=corporate},
Естественно, это также будет работать для editor
поля и любого другого поля имени.
решение2
Вы также можете фильтровать с помощью keyword
, например 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}