考虑以下定义特殊字符:
特殊字符是直接用括号括起来的转义序列,如
{\'E}
或{\LaTeX}
。尽管有括号,特殊字符仍被视为括号深度为 0 的字符。但是,特殊字符本身必须出现在括号深度为 0 的位置;如果它们被其他括号括起来,则不被视为特殊字符。例如,假设我们想使用宏来更正上述示例\LaTeX
。那么我们写:The {\LaTeX} {C}ompanion
这里,“C”位于括号深度 1 处,其他所有内容(甚至特殊字符
\LaTeX
)都位于括号深度 0 处。现在假设我们这样写标题:The {{\LaTeX}} {C}ompanion
在这种情况下,
{\LaTeX}
不是一个特殊字符,因为它从大括号深度 1 开始,而不是 0。该字符串\LaTeX
被视为大括号深度为 2。
这似乎很合理,但我对 BibTeX 手册中的一个例子感到困惑驯服野兽,以下是 École 的不同渲染方式示例:
为了对标题中的重音符号进行编码,比如法语单词 École 中的 É(大写),我们会写
{\’{E}}cole
,{\’E}cole
或{{\’E}}cole
,具体取决于我们是否希望将其转换为小写(前两种解决方案)或不转换为小写(最后一种)。
在我看来,最后一个例子中重音字符的{{\’E}}cole
括号深度为 2,并且不是一个特殊字符。
另外,我在 arXiv 中发现了一个似乎与之矛盾的例子:author = {{Chru{\\'s}ci{\\'n}ski}, D. and {Kossakowski}, A.},
。
这些字符串的括号深度是多少,它们是特殊字符吗?
答案1
据《驯服野兽》报道,
A特殊字符是字段的一部分,以括号深度为 0 的左括号开头,后跟反斜杠,以相应的右括号结尾。
我应该注意,计算括号深度时不考虑界定整个字段的括号,因为在检查字段内容时会删除它们。这应该很清楚,因为可以用 代替界定括号"..."
。
因此{\'E}cole
,{\'{E}}cole
两者都以特殊字符开头,但{{\'E}}cole
事实并非如此。
在title
字段中,如果您不想将 E 变为小写,请使用第三种方法。在作者字段中总是使用“特殊字符”方式,因为它可以用于排序以及使用abbrv
bib 样式进行缩写。
像您展示的示例那样输入作者的姓氏是错误的:
author = {{Kossakowski}, A.}
姓氏由单个标记组成;
author = {{Chru{\\'s}ci{\\'n}ski}, D.}
有几个错误,但即使输入为
author = {{Chru{\'s}ci{\'n}ski}, D.}
这\'s
不是一个特殊字符,因此就排序而言可能会被误解。
完全没有必要用括号括住姓氏;BibTeX 样式通常不会对字段应用大写或小写author
,如果应用了,您想这些字母需要经过处理。因此,如果您使用大写字母{Chru{\'s}ci{\'n}ski}
和围兜式姓氏,那么您的姓氏将以“CHRUśCIńSKI”结尾,而这很可能不是您想要的。
像“McDonald”这样的姓氏就不同了:这样的姓氏应该输入为
author = {M{c}Donald, X.}
如果我们不希望将“c”大写,则样式会这样做。