如何在基于 \citet 的引用标注的引用列表中添加“and”?

如何在基于 \citet 的引用标注的引用列表中添加“and”?

我正在编写一份文档,使用natbibplainnat进行作者年份样式的引用,并用于参考书目。我有一个使用 的引用列表\citet,我想在最后一项之前添加单词“and”,即

Roussy 等人(2005a、b)Teixeira 和 Rosa (2006),而不是 Roussy 等人 (2005a,b)特谢拉和罗莎 (2006)

\documentclass[a4paper]{article}
\usepackage[authoryear,round,sort]{natbib}
\bibliographystyle{plainnat}
\begin{filecontents*}{\jobname.bib}
@Article{Roussy2005,
  author  = {Roussy, Jean and Van Vooren, Maurice and Dempsey, B. A. and Guibal, Eric},
  title   = {Influence of chitosan characteristics on the coagulation and the flocculation of bentonite suspensions},
  journal = {Water Research},
  year    = {2005},
  volume  = {39},
  number  = {14},
  pages   = {3247-3258},
}
@Article{Roussy2005a,
  author  = {Roussy, Jean and Van Vooren, Maurice and Guibal, Eric},
  title   = {Influence of chitosan characteristics on coagulation and flocculation of organic suspensions},
  journal = {Journal of Applied Polymer Science},
  year    = {2005},
  volume  = {98},
  number  = {5},
  pages   = {2070-2079},
}
@Article{Teixeira2006,
  author  = {Teixeira, Margarida Ribau and Rosa, Maria João},
  title   = {Comparing dissolved air flotation and conventional sedimentation to remove cyanobacterial cells of \textit{Microcystis aeruginosa}. {Part I}: The key operating conditions},
  journal = {Separation and Purification Technology},
  year    = {2006},
  volume  = {52},
  number  = {1},
  pages   = {84-94},
}
\end{filecontents*}
\begin{document} 
According to \citet{Roussy2005,Roussy2005a,Teixeira2006}
\bibliography{\jobname}
\end{document}

答案1

最快但最肮脏的方法是重新定义\NAT@sep宏:

\makeatletter\def\NAT@sep{ and}\makeatother

或者您可以使用\bibpunct宏(来自 natbib.sty 源):

Use \bibpunct with 6 mandatory arguments:
      1. opening bracket for citation
      2. closing bracket
      3. citation separator (for multiple citations in one \cite)
      4. the letter n for numerical styles, s for superscripts
          else anything for author-year
      5. punctuation between authors and date
      6. punctuation between years (or numbers) when common authors missing

您想要调整第三个参数:

\bibpunct[, ]{(}{)}{ and}{a}{,}{,}

请注意,在所有示例中,“and” 前都需要一个空格。由于它要与标点符号一起使用,因此它应该位于第一个引用之后。

还要注意,这些都是全局解决方案!如果您连续引用了三个或更多个引文,则所有三个引文都由“and”连接。您可能不希望这样。要局部调整分隔符,您可以执行以下操作

According to \citet{Roussy2005,Roussy2005a,Teixeira2006}

\bgroup\makeatletter\def\NAT@sep{ and}\makeatother
According to \citet{Roussy2005,Roussy2005a,Teixeira2006}
\egroup

According to \citet{Roussy2005,Roussy2005a,Teixeira2006}

这将为您提供:

结果

答案2

该软件包的用户指南natbib(参见第 9 页,下半部分)明确不鼓励使用多个参数\citet 除非所引用的作品有相同的作者。( 的情况有所不同\citep。)

因此,不要写

... \citet{Roussy2005,Roussy2005a,Teixeira2006} ...

你应该写

... \citet{Roussy2005,Roussy2005a} and \citet{Teixeira2006} ...

即,您应该\citet从一开始就使用两个单独的指令。

相关内容