BibTeX 可以缩写名字,例如更改Smith, John
为J. Smith
。在某些语言中,某些(并非全部)名字必须缩写包含多个字母(它不是可选的,就像Ch。为了查尔斯)。我怎样才能强制 BibTeX 对特定的名字执行此操作?
编辑: 我总是遇到这种情况,包括我自己的名字也应该缩写深圳而不是年代我曾经通过手动编辑论文最终版本中的参考文献列表来解决这个问题,但如果可能的话,我更喜欢对所有内容使用 BibTeX。
请求的示例:
.tex 文件:
\documentclass{article}
\begin{document}
Text \cite{kovacs, smith}.
\bibliographystyle{abbrv}
\bibliography{references}
\end{document}
.bib 文件:
@Book{smith,
author = "Peter Smith",
title = "Title 1",
year = 1980,
publisher = "Addison-Wesley"
}
@Book{kovacs,
author = "Csaba Kov\'{a}cs",
title = "Title 2",
year = 1986,
publisher = "Addison-Wesley"
}
我得到的输出:
文本[1, 2]。
参考
[1] C. Kovács。标题 2。Addison-Wesley,1986 年。
[2] P. Smith。标题 1。Addison-Wesley,1980 年。
我需要告诉 bibtex乔巴·科瓦奇我需要得到CS。 科瓦奇在输出中,不是 C. 科瓦奇,因为这是错误的。该文档是英文的,所以这不是 babel 问题。这仅适用于某些作者姓名,这是因为在匈牙利语中,C
和Cs
被视为字母表的不同单位。
答案1
只需将有问题的名字(例如Csaba
)替换为{\relax Cs}aba
。
更一般地,将名称中不受缩写影响的部分里面{
一个 TeX 组,它是一个由和分隔的字段}
,并将命令插入\relax
该组的开头。
如何使用此方法的另一个示例:为了帮助读者区分“蒂莫西·琼斯”和“托马斯·琼斯”创作的作品,可以将相应的作者字段设置为"{\relax Tim}othy Jones"
和"{\relax Th}omas Jones"
。
以下 MWE 建议如何处理姓氏为“Kovács”且名字以“C”开头的四位作者。
\RequirePackage{filecontents}
\begin{filecontents}{references.bib}
@Book{kovacs_ca,
author = "Carla Kov{\'a}cs",
title = "Title 1",
year = 1986,
publisher = "Addison-Wesley"
}
@Book{kovacs_ch,
author = "{\relax Ch}arles Kov{\'a}cs",
title = "Title 2",
year = 1987,
publisher = "Addison-Wesley"
}
@Book{kovacs_cs,
author = "{\relax Cs}aba Kov{\'a}cs",
title = "Title 3",
year = 1988,
publisher = "Addison-Wesley"
}
@Book{kovacs_cy,
author = "{\relax Cyr}ill Kov{\'a}cs",
title = "Title 4",
year = 1989,
publisher = "Addison-Wesley"
}
\end{filecontents}
\documentclass{article}
\usepackage[T1]{fontenc}
\bibliographystyle{abbrv}
\begin{document}
\nocite{*}
\bibliography{references}
\end{document}
答案2
放
\newcommand{\Cs}{Cs}
在您的.tex
文档中使用
author="{\Cs}aba Kov{\'{a}}cs"
在.bib
文件中。
答案3
您可以在此处找到与 Biblatex 和 Biber 配合使用的自动解决方案: 如何使用 Biblatex 缩写多个字母的名字?