在纯 TeX 中使用 |...| 定义内联逐字并使用 ||...|| 逐字显示的最简单方法是什么?

在纯 TeX 中使用 |...| 定义内联逐字并使用 ||...|| 逐字显示的最简单方法是什么?

我一直在尝试使用 for inline 和 for display 在 plain 中定义逐字环境TeX|...|最好||...||使用一种简单的方法来改变,以便可以切换空格的可见性(例如注释掉一行代码或使用不同的字符,如*...***...**)。

我知道这tugboat.sty定义了这一点(见行1632-1963),但这是一个非常漫长的过程,坦率地说很难理解。我想知道最简单的方法TeX是什么。

我还看到了一些关于纯文本逐字记录的问题TeX(见定义一个特殊的逐字命令如何以纯 TeX 显示代码片段),但它们都使用命令(例如\verb{...}\verbatim ...\endverbatim)。

这是出于我自己的好奇心,为了更好地理解TeX,并用于我自己的简单TeX文档。

答案1

如果这是您想要的,这里有一个简短的实现(可能不是很强大)。

\catcode`|=\active
\def|{\begingroup \def\do##1{\catcode`##1=12 }\dospecials \verbA}
\def\verbA#1{\ifx|#1\catcode`|=12 \expandafter\verblong \else \verbshort#1\fi}
\long\def\verbshort#1|{\tt#1\endgroup}
\edef\tmp{\long\def\noexpand\verblong##1\string|\string|}
    \tmp{$$\hbox{\tt#1}$$\endgroup}



lorem ipsum |{fjasdf&@(^#(%%| dolor ||\bye|\end|| \bye

输出

相关内容