调整 BibTeX 样式以提供所有首字母

调整 BibTeX 样式以提供所有首字母

我使用的是 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 能够在输出中正确生成多个首字母。编辑数据库是解决此问题的唯一方法。

相关内容