是否可以有条件地更改 BibLaTeX 中的文本格式?

是否可以有条件地更改 BibLaTeX 中的文本格式?

我只想让外语文章标题以斜体显示。 可以使用 来施加这样的条件吗BibLaTeX

答案1

您需要以某种方式表明该文章与主文档使用的语言不同。

我认为我应该通过langid在 bib 条目中添加一个字段并在title格式中对其进行测试来做到这一点。

笔记

  • 我已经使用babel默认语言american和次要语言ngerman
  • 我使用了该biblatex选项autolang=hyphen,以便德语参考文献的连字符是正确的,但参考文献的语言仍然是英语。
  • 我已添加langid={ngerman}到德语参考资料中。
  • 我的示例针对的是book条目类型(我碰巧有一些有用的 bib 条目)。但article条目类型的原理是相同的。
\documentclass{article}
\begin{filecontents}[overwrite]{\jobname.bib}
@book{wellhausen:1883,
  author = {Wellhausen, Julius},
  title = {Prolegomena zur Geschichte Israels},
  edition = {2},
  location = {Berlin},
  publisher = {Reimer},
  date = {1883},
  langid = {ngerman}
}
@book{wellhausen:1885,
  author = {Wellhausen, Julius},
  title = {Prolegomena to the History of Israel},
  translator = {Black, J. Sutherland and Enzies, A.},
  preface = {Smith, W. Robertson},
  location = {Edinburgh},
  publisher = {Black},
  related = {wellhausen:1883},
  relatedtype = {translationof},
  date = {1885}
}
\end{filecontents}
\usepackage[ngerman,american]{babel}
\usepackage{csquotes}
\usepackage[autolang=hyphen]{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[book]{title}{%
  \iffieldundef{langid}
    {#1}
    {\mkbibemph{#1}}%
  }
\begin{document}
\nocite{*}
\printbibliography
\end{document}

langid = {american}如果您有时在您的 bib 条目中有的话,可以使用更复杂的测试。

输出

相关内容