\citet 和 \citep 在使用 natbib 的作者之间使用“and”或“&”时采用不同的样式

\citet 和 \citep 在使用 natbib 的作者之间使用“and”或“&”时采用不同的样式

是否可以同时使用“and”和“&” natbib?我已经尝试解决这个问题很长时间了,但似乎无法解决这个问题。我所能做的就是在两者上都使用“and”或“&”。

我想要实现的目标:

\citet: “Given_a 和 Given_b (2013)”

\citep:“(Given_a 和 Given_b,2013 年)”

答案1

据我所知,natbib不支持这一点。但当然,黑客攻击总是有可能的...尝试将其放在你的序言中(假设最初两个命令都产生了一个and):

\usepackage{natbib}
\usepackage{xstring}
\makeatletter
\let\origNAT@nmfmt\NAT@nmfmt
\def\NAT@nmfmt#1{%
  \ifNAT@swa
    \exploregroups\expandarg
    \StrSubstitute{#1}{ and }{ \& }[\mynatfmttemp]%
  \else
    \def\mynatfmttemp{#1}%
  \fi
  \origNAT@nmfmt{\mynatfmttemp}%
}
\makeatother

相关内容