使用 apalike 书目样式时,如何将字符串“已提交”放入引文标注中

使用 apalike 书目样式时,如何将字符串“已提交”放入引文标注中

我需要引用一篇已提交但尚未发表的期刊文章,我遵循这种方法:

参考文献

@preamble{ " \newcommand{\noop}[1]{} " }
@article{author2015,
  author  = "Author Author", 
  title   = "Title Title",
  year    = "\noop{2015}submitted",
  journal = "Some Journal",
  ... }

在文本中我输入:A study by \citet{author2015}

这使:A study by Author (tted}

所以看起来只能使用 4 个字符。如何才能让“已提交”显示在引文标注中?

文件.tex

\documentclass[11pt,a4paper, twoside]{article}
\usepackage[authoryear]{natbib}
\begin{document}
A study by \citet{author2015}
\bibliographystyle{apalike}
\bibliography{ref}
\end{document}

答案1

您需要修改参考书目样式文件(此处:),apalike.bst以使 BibTeX/LaTeX 在引文标注中打印“submitted”而不是“tted”。我建议您按以下步骤操作:

  • 在你的 TeX 发行版中找到该文件apalike.bst。复制此文件,并将副本命名为myapalike.bst。(不要直接编辑 TeX 发行版的原始文件。)

  • 在文本编辑器中打开该文件myapalike.bst;您用来编辑 tex 文件的编辑器就可以了。

  • 在 中myapalike.bst找到函数calc.label。 (在我的此文件副本中,该函数从第 896 行开始。)

  • 在此函数中,找到以下行:

      year field.or.null purify$ #-1 #4 substring$ 
    

    如果您好奇的话:该指令purify$ #-1 #4 substring$会从字符串中提取最后四个字符year。通常,这将是普通的四位数字年份字符串;但在当前情况下,它是“tted”。

  • 将此字符串更改为

      year field.or.null 
    

    即删除该purify$ #-1 #4 substring$部分。

  • 将文件保存myapalike.bst在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择后者,请确保适当更新 TeX 发行版的文件名数据库。

  • 通过更改宏的参数开始使用修改后的参考书目样式\bibliographystyle。请务必重新运行 LaTeX、BibTeX 和 LaTeX再两次完全传播所有变化。


考虑以下基于您的代码片段的 MWE:

\RequirePackage{filecontents}
\begin{filecontents}{myref.bib}
@preamble{ " \newcommand{\noop}[1]{} " }
@article{author2015,
  author  = "Author Author", 
  title   = "Some Title",
  journal = "Some Journal",
  year    = "\noop{2015}submitted",
}
\end{filecontents}

\documentclass[11pt,a4paper, twoside]{article}
\usepackage[authoryear]{natbib}
\begin{document}
A study by \citet{author2015}
\bibliographystyle{myapalike}
\bibliography{myref}
\end{document}

运行 LaTeX 和 BibTeX 后,该文件\jobname.bbl(包含已排序和格式化的书目条目的文件)如下所示:

 \newcommand{\noop}[1]{}
\begin{thebibliography}{}

\bibitem[Author, \noop{2015}submitted]{author2015}
Author, A. (\noop{2015}submitted).
\newblock Some title.
\newblock {\em Some Journal}.

\end{thebibliography}

观察该术语的\noop{2015}submitted发生两次。它首先出现在指令的可选参数中\bibitem。可选参数用于natbib格式化引文标注。例如,\citet{author2015}将生成Author (\noop{2015}submitted),并且\citep{author2015}将生成(Author, \noop{2015}submitted)。在这两种情况下,LaTeX 都会评估\noop{2015},使引文标注分别看起来像Author (submitted)(Author, submitted)

该术语\noop{2015}submitted稍后再次出现,这次被括号括起来。当然,(\noop{2015}submitted)LaTeX 会将其求值为(submitted),这就是您在排版输出中看到的内容。

相关内容