使用 biblatex/Biber 对引文/参考书目标题进行正确的大小写处理

使用 biblatex/Biber 对引文/参考书目标题进行正确的大小写处理

我的理解是,bibtex 允许引用样式处理标题的大写,这正是我对自动引用工具的期望。biblatex 和 Biber 也能做到这一点吗?我使用这些工具处理的文档似乎在 bib 数据库中保留了大写,这不是我想要的,而且我还没有找到任何明确的参考资料来解释预期的行为是什么。

答案1

这可能取决于您使用的样式和语言,但通常标题以字段格式打印titlecase。默认情况下,titlecase对大小写没有影响;来自biblatex.def

\DeclareFieldFormat{titlecase}{#1}

如果您希望所有标题都采用句子大小写(即首字母大写,其余字母小写),您可以重新定义此格式:

\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}

\MakeSentenceCase*命令将其参数转换为句子大小写,括号 ( {}) 中的文本除外。它通常对控制序列也没有影响。但是数学中的拉丁字符($...$\(...\))会受到影响,并且控制序列$...$产生解析错误。为了避免这些问题,所有数学符号都可以用括号括起来。用括号括起单个字符会影响其字距调整,因此biblatex手册建议用括号括起整个单词。例如:

title = {An Introduction to {LaTeX}}

代替:

title = {An Introduction to {L}a{T}e{X}}

您可以通过添加可选参数使大小写取决于条目类型 - 例如:

\DeclareFieldFormat[article]{titlecase}{\MakeSentenceCase*{#1}}

这里有一个问题,即titlecase格式适用于条目类型中的所有标题。因此,在上面的例子中,titlejournaltitle字段都将以句子大小写打印。这个问题解决如何使标题大小写取决于条目和字段类型。

\DeclareCaseLangs\MakeSentenceCase*指定带星号的版本转换为句子大小写的所有语言。默认情况下,我们有:

\DeclareCaseLangs{%     
  american,british,canadian,english,australian,newzealand,USenglish,UKenglish}

有关更多详细信息,请参阅biblatex标题“句子大小写与标题大小写”下有关上述命令和发行说明的文档。

编辑来自@moewe:biblatex文档推荐带星号的版本,\MakeSentenceCase*而不是不带星号的版本\MakeSentenceCase

带星号的版本\MakeSentenceCase*仅适用于条目语言的句子大小写(如字段中所示,langid如果为空,则为周围的语言),该条目位于句子大小写有意义的语言列表中(由 定义\DeclareCaseLangs)。

\MakeSentenceCase无论语言设置如何,都应用句子大小写,并且可能导致非英语环境中不必要的大写变化(例如,德语没有标题大小写与句子大小写的概念,而在英语中实现的句子大小写\MakeSentenceCase会导致违反正字法规则)。

答案2

如果你正在使用biblatexwithstyle=apa并且想要保留 -file 的大小写,bib你需要使用

\DeclareFieldFormat{apacase}{#1}

默认仅将首字母大写。

相关内容