将 bst 文件中 vol.(num.) 后的冒号改为逗号

将 bst 文件中 vol.(num.) 后的冒号改为逗号

我需要更改正在使用的文件中的格式.bst。当前格式为:

Beth, T. 和 Gollmann, D. (1989)。公钥算法的算法工程。IEEE 通信领域精选期刊 7 (4): 458–465。

我希望它们如下:

Beth, T. 和 Gollmann, D. (1989)。公钥算法的算法工程。IEEE 通信领域精选期刊,7 (4),458–465。

我需要在期刊名称后添加逗号,并将系列号后的冒号改为逗号。

我应该添加哪些命令以及应该对哪个功能进行更改?

以下功能是否适合添加更改?

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { series empty$
       { "" }
       { series emphasize }
     if$
     swap$ bbl.volume volume tie.or.space.connect output
    }
  if$
}

我在 bst 文件中还有其他我认为它们可能相关的函数,例如:

FUNCTION {format.number.series}
FUNCTION {format.vol.num.pages}

我提前感谢您的帮助。

答案1

你没有提到哪个您正在使用的书目样式文件,因此我假设它是由包提供的natbib(例如plainnatunsrtnat等),或者是由实用程序生成的makebst(由包的作者编写)natbib

在您的.bst文件中,您需要找到该函数format.vol.num.pages;它在文件中看起来像这样plainnat.bst

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  number empty$
    'skip$
    { "\penalty0 (" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":\penalty0 " * pages n.dashify * }
      if$
    }
  if$
}

请注意冒号 ( :),它恰好位于此版本函数的倒数第五行format.vol.num.pages。(根据.bst您使用的文件,它可能位于format.vol.num.pages函数内的不同位置。)将冒号更改为逗号并以新名称保存文件,例如plainnat-mara.bst。您可以将新文件保存到当前工作目录或 TeX 发行版倾向于查找 BibTeX 样式文件的其他目录中。从现在开始请务必参考新样式文件。

相关内容