我使用的是 plainyr BibTeX 样式的修改版。虽然我的 bib 文件包含一些作者的所有首字母(例如 BD McKay),但我的文档中最终只保留了首字母(例如 B. McKay)。我曾想过自己编辑 BibTeX 样式,但在看到代码后,我决定不这样做。也许有些人在这个专业领域更有知识。
我希望我的最终文件包含所有姓名的首字母,而不仅仅是名字的首字母。
这是BibTeX样式的相关代码,或者至少,我认为这是相关的代码。
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
答案1
BibTeXformat.name$
函数将其解释B.D.
为一个名称,但B. D.
解释为两个首字母。因此,您必须每个首字母之间都有一个空格,以便 BibTeX 能够在输出中正确生成多个首字母。编辑数据库是解决此问题的唯一方法。