如何更改 .bst 文件以在出版商和年份之间添加逗号

如何更改 .bst 文件以在出版商和年份之间添加逗号

我在用“latex makebst”创建的 .bst 文件中迷失了方向。对于书籍条目,我选择了选项

%>>PUBLISHER ADDRESS:
%<<PUBLISHER IN PARENTHESES:
%   %: (def) Publisher as normal block without parentheses
% pub-par,%: Publisher in parentheses 
  pub-date,%: Publisher and date in parentheses (Oxford, 1994)
% pub-date,pub-xc,%: Publisher and date in parentheses, no comma (Oxford 1994)
% pub-date,pub-xpar,%: Publisher and date without parentheses Oxford, 1994
% pub-date,pub-xpar,pub-xc,%: Publisher and date, no parentheses, no comma Oxford 1994
%------\ans=d(==pub-date)-------
%>>PUBLISHER IN PARENTHESES:

但是,运行 bibtex 和 pdflatex 后我得到:

(牛津大学出版社,牛津 1961)

我需要在 .bst 文件(或 .dbj 文件)中做哪些更改才能获得所需的结果,即:

(牛津大学出版社,牛津,1961 年)?

bib 文件条目:

@Book{Abragam1961, 
  Title = {The Principles of Nuclear Magnetism}, 
  Author = {Abragam, A.}, 
  Publisher = {Oxford University Press}, 
  Year = {1961}, 
  Address = {Oxford}, 
  Pages = {304},
}

答案1

事实证明,这个问题已经被注意到了这里

虽然它没有说如何修复该merlin.mbs文件,但它告诉你如何修复该.bst文件。

基本上,如下所示:

FUNCTION {format.org.or.pub}

有这样一行:

{ ", " swap$ * * }

替换为:

{ ", " swap$ * ", " * }

它帮我修好了!虽然它仍然不是最理想的,但至少你不需要再摆弄.bib或了.bbl

我怀疑第 6866 行和第 6954 行之间某处有拼写错误merlin.mbs。但我对这种类型的文件不够熟悉,无法自信地摆弄它……也许这里有人可以?

答案2

我迷失在使用“latex makebst”创建的.bst文件中。

如果无法访问完整的 bst 文件,几乎不可能诊断出问题所在。我唯一能给出的建议是重新运行该makebst实用程序。

答案3

我也遇到了同样的问题。玩 .dbj 或 .bst 都无济于事。

但是,如果您只是将年份输入的格式更改为:

year = {, 1961},

你的输出将变成:

(牛津大学出版社,牛津,1961 年)

我意识到这并不能解决根本问题,而且会导致您必须修复所有书籍引用,但至少输出看起来符合您的要求。

相关内容