natbib
与hl
或st
从soul
(或soulutf8
)一起使用会产生Argument of \@citex has an extra }. [{\st\cite]
错误,如前所述其他问题。
虽然一种解决方案是将所有\cite
命令用一对额外的花括号括起来,或者当此方法失败时\mbox
,但这种解决方案可能不是很方便。
特别考虑一下我们有一个文档的情况,出于某种原因,我们被迫使用natbib
来引用(就像使用revtex
文档类时发生的情况一样)。我们有很多文本,\cite
其中包含很多。我们想要定义一个命令\remove
来突出显示要删除的文本,例如\newcommand{\remove}[1]{{\color{red}\st{#1}}}
。
在包含大量 的文本块中使用此命令\cite
可能非常烦人,需要用括号或 将它们全部包裹起来\mbox
。有没有办法定义一个“更智能”的命令,可以\cite
在不修改原始文本的情况下使用它?
链接问题中已经给出了使用\hl
和一起使用的问题的 MWE ,但为了完整性,我将再添加一个:\cite
Tex 文件:
\documentclass{article}
\usepackage{soulutf8}
\usepackage{natbib}
% how can I more smartly define this command, to use it to wrap text containing \cite{...}?
\newcommand{\remove}[1]{{\st{#1}}}
\begin{document}
\remove{\cite{foo}}
\bibliography{bibliography}
\end{document}
书目.bib:
@article{foo,
author = {SomeGuy},
journal = {Somewhere},
title = {Foo}
}
答案1
看起来\sout
from 包是ulem
有效的。