编辑:

编辑:

我使用包soul来突出显示文本,例如使用\hl{some text}。它通常运行良好,但当文本包含其他宏时,soul只需跳过它即可。例如:

\usepackage{soul}
\newcommand{\removed}[1]{\st{#1}}
...
\removed{Some articles by \cite{someauthor2013} support this view.}

在 pdf 中显示为Some articles by,剪切宏和所有后续文本。\st和所有其他突出显示宏也会发生同样的情况。

有什么修复方法可以使removed宏更加健壮,可能无需改变输入文本?

谢谢!

解决方案:下面的代码很好地解决了这个问题。

\usepackage[normalem]{ulem}
\newcommand\reduline{\bgroup\markoverwith{\textcolor{red}{\rule[0.5ex]{2pt}{0.4pt}}}\ULon}
\newcommand{\removed}[1]{\reduline{#1}}
...
\removed{This text by \cite{someauthor2013} will be rendered with a red line on it.}

答案1

编辑:

好的,看来你没有正确使用 soul ——\package{soul}显然是错误的。 这样做\usepackage{soul}。 话虽如此,以下代码有效。(这种添加技术{}可能并不总是有效。请参阅soul文档第 2.1 和 2.2 节):

\documentclass{article}
\usepackage{soul}
\newcommand{\removed}[1]{\st{#1}}


\begin{document}
\removed{Some articles by {\cite{Ferrero:1997}} support this view.}
\begin{thebibliography}{}

\bibitem[Ferrero, 1997]{Ferrero:1997}
Fererro, X.Y., 1997. text of teh rest of the reference.

\bibitem[Doe, 1999]{Doe:1999}
Doe, J., 1999. another reference

\end{thebibliography}
\end{document}

在此处输入图片描述

先前的答案:

封闭\cite{someauthor2013}在另外一组里面{},对于这种情况它起作用:

\documentclass{article}
\usepackage{soul}


\begin{document}
\hl{Some articles by {\cite{Ferrero:1997}} and {\cite{Doe:1999}} support this view.}


\begin{thebibliography}{}

\bibitem[Ferrero, 1997]{Ferrero:1997}
Fererro, X.Y., 1997. text of teh rest of the reference.

\bibitem[Doe, 1999]{Doe:1999}
Doe, J., 1999. another reference

\end{thebibliography}
\end{document}

在此处输入图片描述

有了ulem,事情看起来就简单多了:

\documentclass{article}
\usepackage[normalem]{ulem}
\newcommand{\removed}[1]{\sout{#1}}


\begin{document}
\removed{Some articles by \cite{Ferrero:1997} support this view.}
\begin{thebibliography}{}

\bibitem[Ferrero, 1997]{Ferrero:1997}
Fererro, X.Y., 1997. text of teh rest of the reference.

\bibitem[Doe, 1999]{Doe:1999}
Doe, J., 1999. another reference

\end{thebibliography}
\end{document}

相关内容