如何使 bibtex 样式文件与 natbib 作者引文兼容

如何使 bibtex 样式文件与 natbib 作者引文兼容

我正在尝试将我的稿件转换为 PloS Comp Bio 格式。他们提供了BibTeX 样式文件。这对于内联引用很有效\usepackage[numbers,sort&compress]{natbib}(即\citep{FooYear}-> [1])。

但是,这个样式文件似乎与 natbib\citet命令不兼容。每当我使用它时,我都会得到\citet{FooYear}->“(author?) [1]”(对作者姓名的引用未解析)。我想要的是显示对作者的引用(即“Foo & Smith [1]”。显然,我可以手动修复这个问题,但我的手稿中有相当多的案例。

如果我使用不同的 BibTeX 样式,则引用可以正常工作,但参考书目格式不正确。

最小示例

如下所示,这是一个最小示例。

\documentclass{article}
\usepackage[numbers]{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
   author = {Test, A. and Foo, B.},
   year = {2001},
   title = {Alpha},
}
@misc{A02,
   author = {Alex, A. and Bar, B.},
   year = {2005},
   title = {Alpha},
}
\end{filecontents}

\begin{document}

% These citations will work but in the apalike bibstyle they will not be sorted
% in citation order (the first citation is [2]).
\citep{A01}, \citep{A02}, \citet{A02} 

% The author name will be undefined with the unsrt bibtex style
\citeauthor{A02}, \citet{A01}

\bibliography{\jobname}
\bibliographystyle{unsrt}
%\bibliographystyle{apalike}

\end{document}

答案1

你观察到:

但是,[plos.bst] 样式文件似乎与 natbib 命令不兼容\citet

您可能混淆了创建 (i) 参考书目和 (ii) 参考书目条目引用这两个方面。第一个方面 —— 确定参考书目中条目的排版方式 —— 由参考书目样式文件(在您的例子中为 plos.bst)处理。第二个方面 —— 确定参考书目条目的引用/参考格式 —— 由 处理natbib

natbib通过加载numbers,您实际上是在指示包创建数字式引用。如果您想要作者年份样式的引用——正如您尝试使用的那样\citet命令所表明的那样——您必须指定authoryear选项。

顺便说一句,当 natbib 设置为执行作者年份样式引用时,指定该选项sort&compress是没有必要的(并且没有效果)。

附录:从原作者的后续评论中,我了解到需要一种“纯”数字和作者年份引用样式的混合体——即作者姓名和相关引用编号的组合。如果这种解释是正确的,则以下命令可能会有用(放在序言中):

\newcommand{\hybridcite}[1]{\citeauthor{#1} \citenum{#1}}

调用\hybridcite{People}(假设这People是参考文献中首先列出的条目的关键,该条目有两位作者,分别名为 Author1 和 Author 2)然后将生成引文Author1 and Author2 [1]

答案2

这个问题提出已经 7 个月了,但是当我遇到同样的问题时,我想与任何寻求解决方案的人分享我在处理这个问题时发现的情况。

如果我们仔细研究natbib.sty就会发现:

 % With standard numerical .bst files, only numerical citations are
 % possible. With an author-year .bst file, both numerical and
 % author-year citations are possible.

几乎不言自明。因此,在尝试编辑原始 .bst 文件后(这对于小修小补来说相当容易,但对于大问题来说不切实际),我最终生成了自己的 .bst 文件。

在任何终端上,只需执行latex makebst并回答提示的问题。确保在被要求时选择Author-year with some non-standard interface而不是。基本上,可执行文件会问你关于你希望参考资料是什么样子的问题,更多信息请访问Numerical as in standard LaTeXSTYLE OF CITATIONSCTAN/定制围兜

相关内容