Natbib:如何将“author1 AND author2 [YEAR]”更改为“author1 & author2 [YEAR]”

Natbib:如何将“author1 AND author2 [YEAR]”更改为“author1 & author2 [YEAR]”

您知道如何将引文标注中的作者分隔符从“and”更改为“&”吗,即得到“author1&author2 [YEAR]”而不是“author1author2 [年份]"?

我使用natbib引文管理包。

您可以在下面找到我当前的代码(我将引用代码保存在单独的 bib 文件中,因此我没有将其包含在下面的代码中)。

提前谢谢了。

真挚地,

您的每日剂量

我当前的代码如下:

\documentclass{article}
\usepackage[comma]{natbib}
    \setcitestyle{square}
    \renewcommand{\refname}{Bibliography}
    \setlength{\bibsep}{2pt plus 0.3ex}

\title{Title}
\author{Author}
\date{\today}

\begin{document}
\maketitle

As an example, I use \cite{KahnemanTversky1979}, \\
which should yield Kahneman \& Tversky [1979] \\
instead of Kahneman and Tversky [1979].

Does anybody know how I can change the separator for two authors from "and" to "\&"?

\bibliographystyle{ecta}
    \bibliography{bibliography}

\end{document}

答案1

我建议您按如下方式进行。

  • 在您的 TeX 发行版中找到该文件ecta.bst。复制此文件并将副本命名为 。ecta-ampersand.bst(请执行不是直接编辑 TeX 发行版的原始、未重命名的文件。

  • 在文本编辑器中打开文件ecta-ampersand.bst。你用来编辑 tex 文件的程序应该可以。

  • 在里面ecta-ampersand.bst,找到函数的定义bbl.and。(在我的这个文件副本中,函数定义从 l. 228 开始。它应该看起来像这样:

    FUNCTION {bbl.and}
    { "and"}
    
  • 在该函数定义下方,插入以下代码来定义一个名为的函数bbl.ampersand

    FUNCTION {bbl.ampersand}
    { "\&"}
    
  • 接下来,找到 bst 文件中调用的函数format.lab.names。(附注:“lab”是“label”的缩写;该函数创建用于 authoryear 样式引用调用的字符串。)在此函数中,找到以下代码行:

                { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
    

    在这一行中,更改bbl.andbbl.ampersand

  • 将 bst 文件保存在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择第二个选项,请确保适当更新 TeX 发行版的文件名数据库。如果您不确定如何执行上述指令,我建议您选择第一个选项。

  • 在您的主 tex 文件中,更改\bibliographystyle{ecta}\bibliographystyle{ecta-ampersand}。然后,执行完整的重新编译循环:LaTeX、BibTeX 和 LaTeX 再两次。

祝您 BibTeX 愉快!


这是一个将所有这些放在一起的 MWE(最小工作示例)。

在此处输入图片描述

\documentclass{article}

\begin{filecontents}[overwrite]{mybib.bib}
@article{kt79,
  author  = "Kahneman, Daniel and Tversky, Amos",
  year    = 1979, 
  title   = "Prospect Theory: An Analysis of Decision under Risk",
  journal = "Econometrica",
  volume  = 47,
  number  = 2,
  pages   = "263–291",
}
\end{filecontents}

\usepackage[comma,square]{natbib}
\bibliographystyle{ecta-ampersand}
\renewcommand{\refname}{Bibliography}
\setlength{\bibsep}{2pt plus 0.3ex}

\begin{document}
\noindent
\citet{kt79}
\bibliography{mybib}
\end{document}

相关内容