我希望A. B. Lastname
出现A.B. Lastname
在参考书目中。(我已经找到了如何缩写名字。
(我必须用 bibtex 和 natbib 来解决这个问题,因为我已经在使用 natbib 的破解版本。)
答案1
有几种方法可以做这种事情。一种是自己破解 BST 文件;另一种是使用 custom-bib。在大多数情况下,我建议使用后者。但是,在这种情况下,它不会完全按照您的要求执行;而且,由于您已经在使用破解的 BST,因此第一种方法对您来说会更快。不过,我将讨论这两种方法。
选项 1:破解 BST
第一步是获取你正在使用的 BST 文件的副本并将其放在你的工作目录中。基于你之前链接的问题,看起来你已经完成了,并且你的工作目录中有一个名为 abbrvnamed.bst 的 BST。所以我将从那里开始。
现在,在 BST 文件中找到格式化作者姓名的行。同样,如果您遵循了上一个问题中的建议,那么您已经做到了这一点。对于 abbrvnamed.bst,它看起来像这样:
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
将其更改为:
{ s nameptr "{f{.}.~}{vv~}{ll}{, jj}" format.name$ 't :=
该附加功能{.}
会告诉内置的 BibTeX 函数将format.name$
缩写名字中首字母之间的默认“.␣”替换为“。”。这就是全部内容!
如果你想学习如何自己破解 BST 文件,这里有一个不错的指南,叫做驯服野兽。
选项 2:使用 custom-bib
定制围兜(也称为 makebst)是一款很棒的实用程序,可用于创建您自己的 BST 文件,而无需自己动手。我不会在这里给您任何教程;它附带了大量文档。但它的工作方式是您从多项选择提示中选择一堆选项,它会根据您的选择生成 BST。例如,其中一个提示如下所示:
AUTHOR NAMES:
(*) Full, surname last (John Frederick Smith)
(f) Full, surname first (Smith, John Frederick)
(i) Initials + surname (J. F. Smith)
(r) Surname + initials (Smith, J. F.)
(s) Surname + dotless initials (Smith J F)
(w) Surname + comma + spaceless initials (Smith, J.F.)
(x) Surname + pure initials (Smith JF)
(y) Surname + comma + pure initials (Smith, JF)
(z) Surname + spaceless initials (Smith J.F.)
(a) Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
(b) First name reversed, with full names (Smith, John Fred, Harry Kab Jones)
很酷,不是吗?不幸的是,它实际上没有你想要的确切选项“无空格首字母 + 姓氏”。所以你必须选择其他选项之一,否则最终还是会破解 BST 文件。但如果你喜欢自定义参考书目样式,那么你可能需要熟悉这个实用程序。(事实上,为了弄清楚选项 1 的语法,我使用 custom-bib 生成了两个不同的 BST 文件,一个带有“姓氏 + 首字母”选项,另一个带有“姓氏 + 逗号 + 无空格首字母”选项,然后对它们进行差异化。)