biblatex. 如果使用两个花括号,则抑制 \bibstring

biblatex. 如果使用两个花括号,则抑制 \bibstring

我有一个mvreference带有该字段的volumes。其格式由 biblatex 声明为 \DeclareFieldFormat{volumes}{#1~\bibstring{volumes}}

我怎样才能强制 biblatex不是\bibstring如果条目被包裹在两个花括号,就像 MWE 的情况一样,但如果它只被包裹在

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{filecontents}
\usepackage[ngerman]{babel}
\usepackage[style=verbose-ibid,backend=biber]{biblatex}

\begin{filecontents*}{mybib.bib}
@mvreference{mylexA,
    shorthand       = {mylex},
    title           = {Lexikon in mehreren Bänden},
    volumes         = {{Lexikon in 20 Bänden in zwei Teilen. Zwei Supplement-Bde. mit Anh.}},
    editor          = {Some One},
    location        = {München},
    year            = {1997-2001}
}
\end{filecontents*}

\addbibresource{mybib.bib}

\begin{document}

Welcome.
\nocite{*}
\printbibliography

\end{document}

答案1

据我所知,没有内置函数可以检查字段中的双花括号。但这几乎没有必要。通常,询问字段是否包含数字或文本更有趣。

您的示例似乎也存在这种情况。通常,该字段仅包含属于 a (或)volumes的卷数(请参阅第 23 页maintitletitlebiblatex文档以及 中的示例biblatex-examples.bib)。在这些情况下,添加volumesbibstring 似乎很自然。有时可能需要添加一些解释性文字,如“22 卷百科全书分为两部分”,那么 bibstring 当然volumes看起来不合适。

因此,检查字段是否volumes包含数字或文本似乎更为自然。如果它包含文本,则添加 bibstring 几乎不合适volumes。即使它可能适合“由 22 个“卷”组成的百科全书”(通过 by 添加“卷” \bibstring{volumes})的情况,如果您将语言设置更改为德语并得到“由 22 个 Bände 组成的百科全书”,它看起来会非常奇怪。

请参阅有关该领域的建议edition(第 16 页)biblatex文档,以及中的示例biblatex-examples.bib):

印刷出版物的版本。这必须是整数,而不是序数。不要说edition={First}edition={1st}但是edition={1}。书目样式会将其转换为语言相关的序数。也可以将版本作为文字字符串给出,例如“第三版,修订版和扩充版”。

所以我们可以通过以下方式来volumes实现edition

\DeclareFieldFormat{volumes}{%
  \ifnumerals{#1}
    {#1~\bibstring{volumes}}
    {#1}}

相关内容