我使用包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}