我正在使用命令来删除一个单词或一个句子;然而,我想知道是否可以在不使用括号和的\sout{some text}
情况下删除一组文本。{
}
与 类似的内容{\color{red} some text}
,\textcolor{red}{some text}
或者类似于 的内容\begin{sout}
(\end{sout}
这不起作用!)
答案1
这使用了我的包的变体censor
来完成删除线,因为\xblackout
该包的宏可以跨段落边界工作(但不能跨数学,OP澄清说没有必要)。
为了使\xblackout
宏作为环境运行,我使用了environ
的包功能\BODY
。即便如此,我还是必须通过中间宏进行\soutrefunexp
一次扩展\BODY
,才能使其易于消化\xblackout
。
\documentclass{article}
\usepackage{environ,censor,calc}
\NewEnviron{mysout}
{\soutrefunexp{\BODY}}
%%%%%%%%%%%
\censorruleheight=.1ex %THICKNESS OF CENSOR RULE
\newlength\nextcharwidth
\makeatletter
\renewcommand\@cenword[1]{%
\setlength{\nextcharwidth}{\widthof{#1}}%
\censorrule{\nextcharwidth}%
\kern -\nextcharwidth%
#1}
\makeatother
\newcommand\soutref[1]{\censorruledepth=.55ex\xblackout{#1}}
\newcommand\soutrefunexp[1]{\expandafter\soutref\expandafter{#1}}
%%%%%%%%%%%
\begin{document}
What is this?
Another paragraph.
\begin{mysout}
What is this?
Another paragraph.
\end{mysout}
What is this?
Another paragraph.
\end{document}
替换\xblackout
为\blackout
会产生以下略有不同的结果: