告诉 Latex 准确打印参考书目

告诉 Latex 准确打印参考书目

我使用 Zotero 查阅文献并使用以下软件包将其包含在我的论文中:

\usepackage[
    backend=biber, natbib, style=trad-abbrv, maxbibnames=5, minbibnames=5, giveninits=true,
    style=apa
]{biblatex}
\addbibresource{references.bib}
\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{day}}

这通常很有效,只是当我打印参考书目时,一些大写的标题会变成小写字母。我如何告诉 Latex 按照 Zotero 中的方式打印它?

在此处输入图片描述

请注意,在下面的图片中,Edgerton (1997) 是没有问题的,而德语中需要大写的标题拼写错误。

在此处输入图片描述

答案1

代码

\usepackage[
    backend=biber, natbib, style=trad-abbrv, maxbibnames=5, minbibnames=5, giveninits=true,
    style=apa
]{biblatex}

有点令人困惑,因为它使用了style两次。第二次style获胜,所以你最终加载了style=apa,。(请注意,如果你想要真正的 APA 样式,你不应该添加诸如 之类的选项maxbibnames=5, minbibnames=5, giveninits=true,,它style=apa,已经为你提供了目前可用的最佳 APA 样式biblatex,额外的选项实际上可能会使输出偏离 APA 样式。)

APA 格式要求某些标题采用“句子大小写”格式,这意味着除第一个字母外的所有字母都转换为小写。这就是您在此处看到的内容。

句子大小写对于德语标题(例如您显示的示例条目)没有意义,并且实际上biblatex不会对德语作品应用句子大小写(至少对于使用推荐的样式\MakeSentenceCase*\MakeSentenceCase。您只需要一种方法来判断biblatex您的作品是德语的。biblatex“猜测”语言如下。

  • 如果langid存在字段,则从该字段中获取语言。
  • 如果langid不存在,biblatex则假定该条目采用(当前活动的)文档语言。

在示例中,您要添加

langid = {ngerman},

到条目edenhofer_klimapolitik_2019。然后biblatex知道您的条目不应该使用句子大小写。

如果您的整个文档都是德语,则只需加载babel/polyglossia并输入相应的选项biblatex即可猜测正确的语言。如果您计划用不同语言编写文档,则绝对建议使用该langid字段。

如果我理解正确的话,Zotero 通常会将其语言字段langid。因此,如果你de输入语言字段,您应该获得所需的输出。

如果你不想让句子大小写全部消失,通常可以使用

\DeclareFieldFormat{titlecase}{#1}

并且biblatex-apa如果

\DeclareFieldFormat{apacase}{#1}

虽然以上内容是style=apa,考虑到这一点而编写的,但您可以使用 重现类似的效果style=trad-abbrv,,因为biblatex-trad样式也应用句子大小写。biblatex标准样式默认不采用句子大小写,因此您不必担心这一点。

答案2

Zotero 条目中有一个语言字段。将德语条目设置为 de(德语)应该会有所帮助。 Zotero 官方对相关问题的回答。

相关内容