我对 TeX 还很陌生,所以如果这只需要一个简单的解决方案,请原谅我。我正在写一篇论文,几乎 100% 只使用英文字符,除了我引用的作者有一个土耳其名字的情况,以字母 Ş 开头。我使用natbib
and bibtex
,以及bibliographystyle
= chicago
。
我已经让所有东西都按照我想要的方式运行,只是在参考书目中,土耳其作者的条目不是按字母顺序排列的,而是出现在字母 C 和 E 之间。
- Coleman, RG 和 X. Wang (1995)。超高压变质岩的地质和构造学概述。载于 RG Coleman 和 X. Wang (Eds.)《超高压变质作用》(第 1 版),第 1 章,第 1-32 页。剑桥:剑桥大学出版社。
- Şengor, AMC 和 BA Natal'in (1996)。亚洲古构造学:综合的片段。收录于 A. Yin 和 M. Harrison (编) 的《亚洲构造演化》(第 1 版)第 21 章,第 486-640 页。剑桥:剑桥大学出版社。
- Ernst, WG 和 JG Liou (2008 年 11 月)。高压和超高压变质作用:过去的成果和未来的前景。美国矿物学家 93(11-12),1771–1786。
我已经阅读了目前我能想到的所有内容,但我不明白为什么它是按这个顺序排列的,也不知道如何定制它,以便它与作者一起显示S
。我知道有建议使用biblatex
和biber
,但我是个新手,我不知道我是否能弄清楚如何让它工作(到达我现在的地步已经够困难了……)。我甚至尝试使用文件key
中的字段.bib
,但没有成功。这是.bib
条目:
@incollection{Sengor1996,
abstract = {},
address = {Cambridge},
author = {\c{S}eng\"{o}r, Ali Mehmet Cel\^{a}l and Natal'in, Boris A.},
booktitle = {The Tectonic Evolution of Asia},
chapter = {21},
edition = {1},
editor = {Yin, An and Harrison, Mark},
keywords = {Asia,cratons},
mendeley-tags = {Asia,cratons},
pages = {486--640},
publisher = {Cambridge University Press},
title = {{Paleotectonics of Asia: fragments of a synthesis}},
year = {1996}}
有什么想法我应该尝试一下吗?我确信有解决方案,但我对系统不够熟悉,不知道它可能在哪里。非常感谢!
答案1
所有特殊字符都需要单独分组。因此,使用
%...
author = {{\c{S}}eng{\"{o}}r, Ali Mehmet Cel{\^{a}}l and Natal'in, Boris A.},
%...
排序错误的原因在于排序可能是基于cSengor
(剥离所有“特殊的东西”)。
以下内容逐字摘录自BibTeX 提示和常见问题(第 6 页)——请考虑阅读以下一半内容:
问题 5:我对特殊字符和使用括号保护文本不受大小写影响之间的区别感到困惑。此外,什么时候应该用括号“屏蔽”内容?
控制这一切的规则很简单,但却令人困惑。BibTeX 将
{\ .. }
大括号级别 0(且只有大括号级别 0)内的所有内容视为“特殊字符”,即字段的顶级大括号(不受使用引号或大括号来分隔整个字段的影响),并将其视为整个构造是一个字符。在特殊字符中,控制序列(LaTeX 命令)将按原样保留,但所有其他文本可能会根据需要更改大小写或进行其他处理。此外,在特殊字符中,额外的大括号级别不会增加大括号级别。另一方面,大括号级别{ .. }
0 的构造(这里的关键是 a\
不紧跟在左大括号后面 - 如果是这样,它将成为一个特殊字符)会增加大括号级别,嵌套在其中的大括号也是如此。大括号级别 1 或更高级别的所有文本和控制序列都受到保护,不会发生大小写更改或其他处理。
从一个例子中可能更容易理解。考虑:title = "L0 {\relax S0 {S0 {S0}}} L0 {L1 {\relax L2 {L3}} L1} \LaTeX\ L0"
其中
Lx
表示括号级别x
,Sx
表示括号级别 处的特殊字符(部分)x
。同样,如果使用括号而不是引号来分隔整个字段,则这里不会发生任何变化。三个S0
都被视为同一特殊字符的一部分,因为它们都在{\ .. }
括号级别 0 的构造中。 处的文本S0
可能会更改大小写,但\relax
以及 中的其他控制序列S0
不会更改。请注意,特殊字符内的其他嵌套括号不会增加括号级别。因此,没有S1
或 更高级别的括号。第一个L1
位于括号级别 1,因为它是{ .. }
(而不是特殊字符)。请注意,在这种情况下,额外的括号级别会增加括号级别计数器。此外,第二个{\relax ..
不被视为特殊字符,因为它出现在括号级别 1。L1
及更高级别的所有字符和控制序列都将受到大小写保护。请注意,在此示例中,控制序列会\LaTeX
受到大小写更改的影响。因此,如果 bibstyle 将标题设置为小写,则结果\latex
命令可能会生成错误。
考虑到所有这些,我们可以看一些实际的例子。考虑一下:title = "Secrets of {NASA}"
NASA
需要用括号括起来,因为它是必须保持大写的首字母缩略词。同样,我们通常需要保护数学不受大小写影响:title = "The {$A_\beta$} Protocol"
简单的无参数 LaTeX 命令也很容易受到保护:
title = "The {\LaTeX} Book"
但请注意,在这种情况下,
\LaTeX
将被视为特殊字符,因此排序时不会考虑文本“LaTeX”。因此,在 LaTeX 命令的名称与其所代表的文本相同的情况下,最好使用一组额外的括号,以便在排序时考虑组成命令的字母:title = "The {{\LaTeX}} Book"
[...]
括号屏蔽的另一种应用是用于语言(如德语)的标题,其中某些单词(如名词和名称)的标题大写必须保留:title = "{M}essung von {S}t{\"o}rfeldern an {A}nlagen und {L}eitungen der {T}elekommunikation im {F}requenzbereich 9 {kHz} bis 3 {GHz}",
请注意,
{\"o}
被视为特殊字符,并且“o”不受大小写保护。但是,名词的首字母受到保护,因为它们处于大括号级别 1。
当 LaTeX 命令有参数时,事情会变得有点复杂。正确的方法取决于参数是否需要受到大小写保护。请考虑:note = "Volume~2 is listed under Knuth \cite{TEX:book}"
如果 bibstyle 将 note 字段改为小写,我们将得到:
volume~2 is listed under knuth \cite{TEX:book}
因此我们可能希望将 Knuth 姓氏的首字母括在括号中。此外,如果我们有一个不寻常的 bibstyle,将注释字段呈现为大写,我们将得到:
VOLUME~2 IS LISTED UNDER KNUTH \CITE{TEX:book}
当执行不存在的语句时,会导致错误
\CITE
。我们可能会尝试这样的操作:note = "Volume~2 is listed under Knuth {\cite}{TEX:book}"
但这不起作用,因为
\cite
命令周围的额外括号会阻止它看到其参数:VOLUME~2 IS LISTED UNDER KNUTH {\cite}{TEX:book}
相反,我们可以尝试这样的方法:
note = "Volume~2 is listed under {K}nuth {\cite{TEX:book}}"
但是,这也不安全,因为引用键“TEX:book”现在被视为特殊字符的一部分,因此可能会改变大小写(就像
S0
前面例子中的第二个一样)!因此,我们需要使用一组额外的括号来使命令\cite
及其参数的括号级别大于零:note = "Volume~2 is listed under {K}nuth {{\cite{TEX:book}}}"
以确保无论 bibstyle 对注释字段做了什么,一切都能正常工作。
通常,让.bst
文件根据其认为合适的方式转换/格式化字段是一个好主意 — 因此,除非必须,否则不要用额外的括号强行处理。未来版本的 BibTeX 在大小写更改方面可能会更加智能,因此可能需要更少的“手动干预”来处理括号。[...]
答案2
author
示例代码中的 bib 条目字段应如下所示:
author = {{\c S}eng{\"o}r, Ali Mehmet Cel{\^a}l and Natal'in, Boris A.},
与示例中给出的格式相比,重音字符被“括”在花括号中。进行此更改后,该条目将归类到“Sengor”下。