我需要引用一篇已提交但尚未发表的期刊文章,我遵循这种方法:
参考文献
@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)
,这就是您在排版输出中看到的内容。