如何在 Plain TeX 中获得 \cancel(删除线)?

如何在 Plain TeX 中获得 \cancel(删除线)?

我在网上和 TexBook 中都搜索过,但找不到命令或包。

请注意,我对 TeX / LaTeX 还很陌生,但目前正在尝试弄清楚如何在 Plain TeX 中做事。

编辑:感谢大家的回答,但我意识到我的问题有些含糊,因为我使用了“删除线”这个词,它通常与水平线有关。我实际上是在寻找斜线删除线,就像这里的一样,除了 Plain TeX。 如何斜划线,例如表示取消?

另外,我正在寻找一种在数学模式下有效的解决方案。

答案1

包裹ulem

Timebandit 用软件包编写了一个解决方案ulem。示例以 LaTeX 格式提供,但该软件包也适用于纯 TeX:

\input ulem.sty

\sout{Hello World}

\bye

结果

包裹soul

另一个 LaTeX 包soul可与纯 TeX 一起使用:

\input soul.sty

\st{Hello World}

\bye

结果

答案2

多年来,这种技术一直用于维护拖船章程。它实际上只适用于短语,并且不会在行尾断开;另外,单词之间的空格是“冻结”的。但如果这些限制适合您的应用程序,那么它就可以可靠地工作。

\newbox\TestBox
\def\Remove #1 {\setbox\TestBox=\hbox{#1}%
        \leavevmode\rlap{\vrule height 2.5pt depth-1.75pt width\wd\TestBox}%
        \box\TestBox\ }
\def\0{\Remove}
\def\Replaceby #1{{\bf #1}}
\def\1{\Replaceby}

\0{Remove this text.}

\1{Replace it by this text}.

\bye

在此处输入图片描述

答案3

如果您使用的是较新的基于 Unicode 的 TeX 引擎之一(xetex 或 luatex),另一种方法是使用 Unicode 组合字符来获得删除效果。效果取决于您使用的字体,我不得不说我对 Arial 的效果有点失望,但效果如下:

在此处输入图片描述

\font \tenrm="[Arial]"
\tenrm


O̶h̶ ̶n̶o̶ ̶I̶ ̶d̶i̶d̶ ̶i̶t̶ ̶w̶r̶o̶n̶g̶!̶


\bye

相关内容