![\citet 和 \citep 在使用 natbib 的作者之间使用“and”或“&”时采用不同的样式](https://linux22.com/image/262793/%5Ccitet%20%E5%92%8C%20%5Ccitep%20%E5%9C%A8%E4%BD%BF%E7%94%A8%20natbib%20%E7%9A%84%E4%BD%9C%E8%80%85%E4%B9%8B%E9%97%B4%E4%BD%BF%E7%94%A8%E2%80%9Cand%E2%80%9D%E6%88%96%E2%80%9C%26%E2%80%9D%E6%97%B6%E9%87%87%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E6%A0%B7%E5%BC%8F.png)
是否可以同时使用“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