我怎样才能删除 bst 描述中期刊名称之后和卷之前的逗号?

我怎样才能删除 bst 描述中期刊名称之后和卷之前的逗号?

我正在使用一种显然经过大量编辑的apalikebst 样式,出于某种原因我必须使用它。

不幸的是,这种样式会在期刊名称和卷号之间输出一个逗号,这是我需要避免的。

以下是据称相关的代码片段:

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output              % special for
  output.year.check                 % apalike
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.vol.num.pages output
    }
{ format.article.crossref output.nonnull
  format.pages output
}
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  number empty$
    'skip$
    { " (" number * ")" * *
      volume empty$
    { "there's a number but no volume in " cite$ * 
warning$ }
    'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
%   { pop$ format.pages }
    { ": " * pages n.dashify * }
%   { ", " * pages n.dashify * }    % changed from ":" for vol,pgs -- BJR 10/5/89
    { ": " * pages n.dashify * }    % changed from ":" for vol,pgs -- BJR 10/5/89
      if$
    }
  if$
}

我怎样才能以最少的更改删除此代码?再次总结一下,我希望

作者姓名(年份) 文章标题 期刊名称 卷(期号): 页数

代替

作者姓名(年份)文章标题。期刊名称,卷(号):页数

编辑:完整文件可以在这里找到:https://pastebin.com/RZmmiqyh

编辑 2:我特别想寻找一种解决方案,它也可以处理“正在印刷”的条目,即尚未分配卷数、编号和页码。相反,在期刊名称后应该出现一个冒号,在冒号后应该打印一条注释,例如“正在印刷”。

例子:

作者姓名(年份)文章标题。期刊名称:正在出版

Bibtex 条目示例:

@Article{Author2018,
  Title                    = {How to make Bibtex do what I want},
  Author                   = {Adrian A. Author},
  Journal                  = {Journal of Bibtexing},
  Year                     = {2018},
  Note                     = {in press},
}

答案1

我建议您按如下方式进行:

  • 在文本编辑器中打开修改后的副本apalike.bst。(您用来编辑 tex 文件的程序就可以了。)

  • 紧接着该函数output.check,添加以下3行代码:

    FUNCTION {add.blank}
    {  " " * before.all 'output.state :=
    }
    
  • article函数中,找到以下行

       { journal emphasize "journal" output.check
    
  • 紧接着这一行之后(也就是紧接着这一行之前format.vol.num.pages output),插入一个包含以下文本的新行:

         add.blank
    
  • 保存 bst 文件

  • 再次运行 LaTeX、BibTeX 和 LaTeX 以重新创建格式化的参考书目

祝您 BibTeX 愉快!


附录回答 OP 的后续问题,关于如何处理“印刷中”的条目,即尚未发布且volumenumberpages字段尚不可用的条目。

我认为你应该把“正在印刷”的信息放在这个year字段里,不是字段note。如果文章尚未发表,最好在年份字段中写上“正在出版”;不知不觉中,出版年份可能会从 2018 年滑落到 2019 年甚至 2020 年……可选:使用指令\noopsort帮助 BibTeX 确定如何对条目进行排序。并且,\unskip在条目的volume字段中放置一个指令以撤消指令的输出add.blank

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@preamble { "\providecommand\noopsort[1]{}" }
@Article{Author:InPress,
  Title     = {Thoughts},
  Author    = {Adrian A. Author},
  Journal   = {Journal of Bib\TeX{}ing},
  Year      = {\noopsort{2019}In Press},
  volume    = {\unskip},
}
\end{filecontents}

\documentclass{article}
\usepackage[round]{natbib}
\bibliographystyle{apalike-nocomma} % modified form of 'apalike.bst'
\begin{document}
\nocite{*}
\bibliography{mybib}
\end{document}

相关内容