BibTeX:如何删除作者首字母后的句号?

BibTeX:如何删除作者首字母后的句号?

我对作者姓名首字母有疑问。我应该在作者列表后面加一个句号,但是当作者姓名首字母只有一个时,它看起来像:“Smith, J.”。有两个句号,一个来自首字母,一个来自作者列表的末尾。我该如何添加一个条件,即如果首字母后面有一个句号,列表末尾就不会再有其他句号?非常感谢。

编辑:

我已经使用在线 bst 生成器创建了 bst 文件。但是我将作者列表后的逗号改为句号(通过在 .bst 中将“,”替换为“。”)。我没有找到列表后有句号的 bst。我现在 bst 中存在“if”,我希望它可以解决问题,但我不知道如何使用它。

以下是围兜条目:

@ARTICLE{historie_kniha,
   author = {Beekman, G.},
    title = "{I. O. Yarkovsky and the Discovery of 'his' Effect}",
  journal = {Journal for the History of Astronomy},
     year = 2006,
    month = feb,
   volume = 37,
    pages = {71-86},
   adsurl = {http://adsabs.harvard.edu/abs/2006JHA....37...71B},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

编辑#2:bst 文件在那里: http://pastebin.com/Ar0S3a27

答案1

感谢您发布文件链接.bst。通过检查该函数format.names和其他一些主要语法块,似乎 (i) 样式文件被编程为期望为所有作者提供完整名字,而不仅仅是首字母,并且 (ii).在 和 之间插入一个“点”( )全部围兜入口的区块。

在此阶段,您有两个选择 - 除了对 .bst 文件的某些部分进行重大重写之外:

  • 将条目的名称字段更改为author = "Beekman, George"
  • 将条目的名称字段更改为author = "Beekman, G"——没有尾随点(因为样式文件会为您提供点)

就我个人而言,我建议你选择前一种方式。虽然前期工作量较大,但也有两个好处:(a)无论期刊要求你使用bibgen参考书目格式,你都可以完全遵守该格式,这可能会让你在期刊编辑面前赢得加分 :-);(b)你只需要这样做一次。而且,如果你将来决定向其他期刊提交论文,而这些期刊也要求提供作者和编辑的全名,那么你就万事俱备了。

供您参考,如果输入作者的名字为“George”,则排版条目如下所示(顺便问一下,哪种语言将“February”呈现为“únor”?):

在此处输入图片描述

\RequirePackage{filecontents}
\documentclass{article}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{historie_kniha,
   author = {Beekman, George},
    title = "{I. O. Yarkovsky and the Discovery of `his' Effect}",
  journal = {Journal for the History of Astronomy},
     year = 2006,
    month = feb,
   volume = 37,
    pages = {71-86},
   adsurl = {http://adsabs.harvard.edu/abs/2006JHA....37...71B},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
\end{filecontents*}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\bibliographystyle{bibgen}
\begin{document}
\cite{historie_kniha}
\bibliography{\jobname}
\end{document}

相关内容