我正在使用这个命令:
\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}