我对 TeX 的语言格式感到困扰。
我的意思是我想知道为什么CR
会转换为空格并且%
必须位于行末以避免出现此问题。更糟糕的是,空白行意味着段落的结束。
我知道这些函数在大多数情况下都很有用。但在宏或类似的东西中,它们让我很困扰;我想很多软件包编写者也是如此。
我的问题是“我可以使用一些宏(例如\catcode
)来使这些函数无效吗?”和“我可以让 TeX 完全自由形式吗?”
答案1
TeX 是一种排版系统,因此标准设置偏向于文档“文本”:正常惯例对此很有效,但代价是“编程”工作量略多。(TeX 编程模型的其他部分在这方面需要更多“工作”,但这是另一个问题。)
当然可以修改标准行为。例如,在expl3
用于 LaTeX3 编程的语言中(正在进行的工作),设置基于类似于
\catcode`\^^I = 9 %
\catcode`\ = 9 %
\catcode`\^^M = 10 %
\endlinechar = `\ %
\relax
Hello world
more text
\bye
您可以将其修改为
\catcode`\^^M = 10 %
\endlinechar = `\ %
\relax
Hello world
more text
\bye
如果您只希望更改行尾行为。请注意,这需要您使用 明确添加段落\par
。