BibLaTeX: запрет заглавных букв для некоторых авторов

BibLaTeX: запрет заглавных букв для некоторых авторов

Я использую эту команду:

\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}

введите описание изображения здесь

Связанный контент