有没有办法控制 bibtex gost 风格中的“et al”?

有没有办法控制 bibtex gost 风格中的“et al”?

我的文档中的参考文献应按照gost包以及biblatex-gost

我只biblatex-gost需要一个功能,而普通的 bibtex gost 似乎缺少这个功能。我需要控制et al使用前剩余的作者姓名数量。在 biblatex-gost 中,这由maxnames = 3(4、5,等等) 控制。我找不到 gost 包的此类选项(由于兼容性问题,我更愿意使用它)。有没有办法控制这个数字?

一个解决方案是可能的:复制我使用的 .bst 文件并使用解决方案对其进行修补从这里,这也意味着潜在的兼容性问题。有没有更直接的解决方案?

答案1

你写了

一个解决方案是可能的:复制我使用的 .bst 文件并对其进行修补...这也意味着潜在的兼容性问题。有没有更直接的解决方案?

如果您正确修改现有 bst(参考书目样式)文件的副本,我看不出您可能会遇到哪些“潜在的兼容性问题”。

我认为您最感兴趣的是ugost2008n参考书目样式,而您想要实施的主要更改是修改格式化参考书目条目中显示作者数量的截断标准。默认标准是 4,这意味着如果条目有4 位或更少的作者(或编辑),则显示所有作者,而如果该条目有5 位或更多作者(或编辑),仅显示前 3 个名字加上“et al”。

要将截止标准更改为 5,我建议您按以下步骤操作:

  • 在您的 TeX 发行版中找到该文件ugost2008n.bst并复制该文件。将副本命名为ugost2008n5.bst

  • 找到函数format.names,它从我的文件副本的第 767 行开始。(我有该文件的 1.2d 版本,日期为 2016/02/18。)该函数的前几行应如下所示:

    FUNCTION {format.names}
    {
      's :=
      #1 'nameptr :=
      s num.names$ 'numnames :=
      numnames 'namesleft :=
        { namesleft #0 > }
        { s nameptr
          "{vv~}{ll}{~jj}{~ff}" format.name$ 't :=
          nameptr #1 >
            { nameptr #4 =
              numnames #4 > and
                { "others" 't :=
                  #1 'namesleft := }
                'skip$
              if$
    
  • 要将截断数从 4 更改为 ,只需将 的两个实例更改#4#5

  • 将文件保存ugost2008n5.bst在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择后一种方法,请确保适当更新 TeX 发行版的文件名数据库。

  • 通过更改指令开始使用新修改的书目样式

    \bibliographystyle{ugost2008n}
    

    \bibliographystyle{ugost2008n5}
    

    请务必重新运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。

祝您 BibTeX 愉快!

相关内容