BibLaTeX:防止某些作者的上限

BibLaTeX:防止某些作者的上限

我正在使用這個命令:

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

以大寫形式列印所有作者姓名。 (如果它們在文本和參考文獻中被引用)。我正在使用 biblatex 和authoryear-icomp 風格。

現在我想應用某種過濾器,以防止像這樣用雙花括號括起來的機構

author = {{Regionalverband Ruhr}}

避免以大寫字母印刷(同樣在文本和參考文獻中)。如何才能實現這個目標?

所以

SELLE, K. (2005):Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land。多特蒙德(=Stadt-Entwicklung 版)。

魯爾旅遊公司 (2017):魯爾旅遊公司 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}

在此輸入影像描述

相關內容