soul 包 \hl 与 \cite 给出错误:“@citex 有一个额外的}”

soul 包 \hl 与 \cite 给出错误:“@citex 有一个额外的}”

以下 MWE 给出了错误。这应该可以工作,不是吗?

\documentclass{article}
\usepackage{color,soul}
\begin{document}
\hl{A statement \cite{hong_groups_2004}}
\end{document}

错误如下:

! Argument of \@citex has an extra }.
<inserted text> 
                \par 
l.4 \hl{A statement \cite{hong_groups_2004}}

答案1

尝试\cite{hong_groups_2004}用一对额外的花括号 ( {}) 括起来,没有那些,灵魂可以使用 -command 做一些有趣的事情\cite

\documentclass{article}
\usepackage{color,soul}
\begin{document}
\hl{A statement {\cite{hong_groups_2004}}}
\end{document}

第 2.1 节和第 2.2 节手动的描述了一些问题和可能的解决方案。此外,我建议你使用更强大的soulutf8Heiko Oberdiek 的指导,以避免将来可能出现的错误。soulutf8,可以使用utf8,如果您使用除美国英语以外的其他语言,这是必须的。

新 MWE:

\documentclass[UKenglish]{article}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{color,soulutf8}

\begin{document}
\hl{A statement {\cite{hong_groups_2004}}}

Normal text.

\hl{Highlighted text with æøåÆØÅ}

\end{document}

编辑:如果额外的大括号 ( {}) 不能解决错误,请尝试将命令括在 a 中\mbox{},即\mbox{\cite{hong_groups_2004}}

我最好的建议是阅读手册第 2.3.1 节,看看你是否能认出那里描述的一些边界情况。这可能会给你一些关于可能解决方案的提示。

相关内容