![更强大的删除线/划掉线](https://linux22.com/image/477409/%E6%9B%B4%E5%BC%BA%E5%A4%A7%E7%9A%84%E5%88%A0%E9%99%A4%E7%BA%BF%2F%E5%88%92%E6%8E%89%E7%BA%BF.png)
我总是用这个ulem
包来删除不需要的文本,就像这样
\documentclass{article}
\usepackage{ulem}
\begin{document}
\xout{Lorum ipsum dola blah blah blah.}
\sout{Lorum ipsum dola blah blah blah.}
\end{document}
这种方法效果很好,但不太稳健:即使受影响的文本中出现段落中断也会导致此方法抛出编译错误。
我有兴趣了解更强大的方法,可以用来删除或划掉大段文本(例如整个章节)。至少,这意味着引用、公式、段落分隔符和分页符不会造成问题。如果章节标题和表格等内容也能被删除就更好了。如果 LaTeX 还可以使用类似 TiKz 的东西来智能地划掉受影响文本中的数字(也许这要求太高了,但这个社区以前就让我感到惊讶!),那就锦上添花了。
我非常乐意接受实现此目的的其他方法(例如,一个想法是让 TiKz 计算受影响材料的形状并在其上绘制适当大小的斜阴影矩形,但我不知道该怎么做)。我最感兴趣的是听听人们是否知道解决这个问题的任何方法。
答案1
\xout
这只是在和周围放置了一个段落解析包装器\sout
,如下所示\xoutpars
和\soutpars
。
然而,这不会解决诸如数学等问题。
\documentclass{article}
\usepackage{ulem,lipsum}
\newcommand\xoutpars[1]{\let\helpcmd\xout\parhelp#1\par\relax\relax}
\newcommand\soutpars[1]{\let\helpcmd\sout\parhelp#1\par\relax\relax}
\long\def\parhelp#1\par#2\relax{%
\helpcmd{#1}\ifx\relax#2\else\par\parhelp#2\relax\fi%
}
\begin{document}
\xout{Lorum ipsum dola blah blah blah.}
\sout{Lorum ipsum dola blah blah blah.}
Now we start. \xoutpars{This is a test
...of multiple paragraphs.
And now a third.}
Now we start. \soutpars{This is a test
...of multiple paragraphs.
And now a third.}
\end{document}