biblatex 中的默认连字符/langid 字段

biblatex 中的默认连字符/langid 字段

我想包含大量不同语言的参考书目条目。绝大多数都是英文的,只有少数是其他语言的。我没有language或字段,无法为每个条目使用不同的语言。我可以手动将字段添加到非英文条目中。有没有办法为每个未设置的条目设置默认设置?langidhyphenationlangidlangid={english}

答案1

autolang第 48 页上对该选项的描述biblatex文档

[如果加载了/包并且参考书目条目包含字段,则autolang] 选项控制使用哪种语言babel环境(参见 § 2.2.3)。请注意,如果加载了/ ,Biblatex 会自动调整为主文档语言。在多语言文档中,它还会不断调整当前语言,就引用和参考书目的默认语言而言。此选项用于在参考书目中按条目切换语言。babelpolyglossialangidbabelpolyglossia

因此,如果没有langid提供字段,biblatex则返回当前语言。考虑以下 MWE,其中british是文档语言并且uthor不附带langid字段,而torinngerman

\documentclass[ngerman,british]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear-icomp,autolang=other]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{uthor,
  author    = {Anne Uthor},
  year      = {2001},
  title     = {An English Title},
  booktitle = {Collection},
  editor    = {Eddie Tor},
}
@incollection{torin,
  author     = {Anne U. Torin},
  year       = {2002},
  title      = {Ein deutscher Titel},
  booktitle  = {Sammelband},
  editor     = {Heinz E. Rausgeber},
  langid     = {ngerman},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

torin以德语为背景,但uthor仍保留(英国)英语。

示例输出


如果您坚持要langid为尚无该字段的条目设置字段,请使用

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldset=langid, fieldvalue={english}]
    }
  }
}

因为此映射不会覆盖字段,所以只有那些没有langid获取的条目english

相关内容