格式化的书目条目中不需要的逗号

格式化的书目条目中不需要的逗号

我对乳胶和相关的东西还很陌生,但我无法让一件事为我工作。

考虑以下 bib 条目:

@book{latexcompanion,
    author    = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

我在参考书目中得到的输出中,姓氏后面有令人恼火的逗号(对我来说):

[2] Goossens, M., Mittelbach, F., and Samarin, A. The LaTeX Companion.
Addison-Wesley, Reading, Massachusetts, 1993.

这是否可能是一些常见的错误,或者我必须深入研究 bst 文件才能修复此问题?在这个特定的例子中,我替换了提供的 bst(是的,我也替换了 .cls 中的样式),而它发生在我在 Bibtex 中找到的文件夹中的 .bst 中(acm.bst)。

任何帮助都将不胜感激。提前致谢。

答案1

正如@AlanMunn 在评论中指出的那样,作者姓氏的格式化和他/她名字的首字母之间存在逗号是不是错误。相反,这实际上是显示作者姓名的一种相当常见的风格选择。

该文件的序言acm.bst包含以下信息:

% ACM Transactions 书目样式(2010 年 12 月 8 日版本)

% 与 abbrv.bst 非常相似,但名字以“姓氏、首字母”的形式出现,并且以 \sc 格式出现。

% 一些日期带括号。

请注意,逗号功能和名称以小写字母排版的事实是明确提到的。

您尝试过使用unsrtbib 样式了吗?另外:如果您使用natbib引文管理包,您可能希望使用unsrtnat而不是unsrt。它是对更古老的 bib 样式的重新实现unsrt,但能够 (a) 处理诸如urlissn和 等字段,isbn以及 (b) 生成作者年份样式的引文标注以及基本的数字样式标注。


假设您希望继续使用acm参考书目样式,并且只是希望姓氏和首字母之间没有逗号,我建议您按以下步骤操作。

  • acm.bst在你的 TeX 发行版中找到该文件的副本。

  • 复制此文件并将副本命名为acm-nocommas.bst。不要直接编辑 TeX 发行版的原始文件。

  • 在文本编辑器中打开文件acm-nocommas.bst。你用来编辑 tex 文件的编辑器就可以了。

  • 在此文件中,找到名为 的函数format.names。(在我的此文件副本中,该函数从第 190 行开始。)

  • 在此函数中,找到

        { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
    

    如果你好奇的话:vvlljj指的是一个人全名的(未缩写的) von、lastname(或姓氏)和 junior 部分,而f.指的是缩写的名字部分。

  • 将此行更改为

        { s nameptr "{vv~}{ll}{ f.}{, jj}" format.name$ 't :=
    

    观察两个变化已应用:(i) 前面不再有逗号f.;(ii) “次要部分”现在放在最后,仍然用逗号与名称的其余部分隔开。我认为以这种方式设置任何“次要部分”至关重要。

  • 将文件保存acm-mod.bst在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择后者,请确保适当更新文本分发的文件名数据库。

  • 在您的主 tex 文件中,将指令更改\bibliographystyle{acm}\bibliographystyle{acm-mod}。接下来,执行完整的重新编译循环:LaTeX、BibTeX,然后再执行两次 LaTeX。

祝您 BibTeX 愉快!


完整的 MWE 及其输出:

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@book{latexcompanion,
  author       = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
  title        = "The \LaTeX{} Companion",
  year         = 1993,
  publisher    = "Addison-Wesley",
  address      = "Reading, Massachusetts",
}
@article{lucas-rapping:1969,
  author       = "Lucas, Jr., Robert E. and Leonard A. Rapping",
  title        = "Real Wages, Employment, and Inflation",
  journal      = "Journal of Political Economy",
  year         = 1969,
  volume       = 77,
  number       = 5,
  pages        = "721--754",
}
\end{filecontents}

\documentclass{article}
\bibliographystyle{acm-mod}

\begin{document}
\cite{latexcompanion}, \cite{lucas-rapping:1969}
\bibliography{mybib}
\end{document}

相关内容