BibLaTeX:防止某些作者使用大写字母

BibLaTeX:防止某些作者使用大写字母

我正在使用这个命令:

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

以大写形式打印所有作者姓名。(如果在正文和参考书目中都引用了这些作者姓名)。我使用的是 biblatex 和 authoryear-icomp 样式。

现在我想应用某种过滤器,以防止像这样被双花括号括起来的机构

author = {{Regionalverband Ruhr}}

以大写形式打印(同样在正文和参考书目中)。如何实现这一点?

所以

SELLE, K. (2005):规划、管理和开发:关于公共机构对城市和土地开发的论文。多特蒙德(=Edition Stadt-Entwicklung)。

Ruhr Tourismus GmbH (2017):Ruhr Tourismus GmbH 的 2017-2022 年营销策略。奥伯豪森。

答案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}

在此处输入图片描述

相关内容