我在网上和 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