如何修改 apalike.bst 以删除“作者(年份)”后的句点(.)?

如何修改 apalike.bst 以删除“作者(年份)”后的句点(.)?

我必须更改 apalike.bst 的哪一部分才能删除“作者(年份)”后的句点。

而不是“作者(年份)”。我需要“作者(年份)”

答案1

这是一个解决方案,可以避免我在对@Qwerty 自己的答案的评论中发现的问题。

首先复制文件apalike.bst;将副本命名为myapalike.bst。在 中myapalike.bst找到函数output.year.check。用以下代码替换整个函数:

FUNCTION {output.year.check}
{ year empty$
  { "empty year in " cite$ * warning$ }
  { write$
      " (" year * extra.label * ")\removeperiod" *    
  mid.sentence 'output.state :=
    }  
if$
}

")请注意,和之间现在没有空格\removeperiod"

将文件保存myapalike.bst在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择第二个选项,您可能还需要更新 TeX 发行版的文件名数据库。并且,将指令的参数\bibliographystyle从更改apalikemyapalike

另外,在文档的序言中提供以下代码:

\makeatletter
\newcommand{\removeperiod}{\@ifnextchar.{\@gobble}\relax}
\makeatother

答案2

复制apalike.bst文件并将其粘贴到所需的 .tex 和 .bib 文件所在的位置。将其重命名,(例如)myapalike.bst。要进行编辑,请使用某些文本编辑器(我使用了记事本)打开myapalike.bst。搜索FUNCTION {output.year.check}. 现在按如下方式修改它:

FUNCTION {output.year.check}
{ year empty$
  { "empty year in " cite$ * warning$ }
  { write$
      " (" year * extra.label * ") \removeperiod" *    
  mid.sentence 'output.state :=
    }  
if$
}

还请在文档前言中添加以下代码:

\makeatletter
\newcommand{\removeperiod}{\@ifnextchar.{\@gobble}\relax}
\makeatother

相关内容