我的理解是,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
格式适用于条目类型中的所有标题。因此,在上面的例子中,title
和journaltitle
字段都将以句子大小写打印。这个问题解决如何使标题大小写取决于条目和字段类型。
\DeclareCaseLangs
\MakeSentenceCase*
指定带星号的版本转换为句子大小写的所有语言。默认情况下,我们有:
\DeclareCaseLangs{%
american,british,canadian,english,australian,newzealand,USenglish,UKenglish}
有关更多详细信息,请参阅biblatex
标题“句子大小写与标题大小写”下有关上述命令和发行说明的文档。
编辑来自@moewe:
biblatex
文档推荐带星号的版本,\MakeSentenceCase*
而不是不带星号的版本\MakeSentenceCase
。带星号的版本
\MakeSentenceCase*
仅适用于条目语言的句子大小写(如字段中所示,langid
如果为空,则为周围的语言),该条目位于句子大小写有意义的语言列表中(由 定义\DeclareCaseLangs
)。
\MakeSentenceCase
无论语言设置如何,都应用句子大小写,并且可能导致非英语环境中不必要的大写变化(例如,德语没有标题大小写与句子大小写的概念,而在英语中实现的句子大小写\MakeSentenceCase
会导致违反正字法规则)。
答案2
如果你正在使用biblatex
withstyle=apa
并且想要保留 -file 的大小写,bib
你需要使用
\DeclareFieldFormat{apacase}{#1}
默认仅将首字母大写。