我必须更改 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
从更改apalike
为myapalike
。
另外,在文档的序言中提供以下代码:
\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