如何在 \message 中产生回车符的输出?

如何在 \message 中产生回车符的输出?

标题中全是。如何在 中输出回车符\message。出于调试目的,我需要获取可读的消息。显然,这行不通:\message{A\cr B}输出A\cr B\message{A\\B}产生如下错误

Undefined control sequence.
\\  ->\let \reserved@e
                        \relax \let \reserved@f 

感谢您的帮助 !

答案1

你没有说,但\reserved@a建议你在这种情况下使用乳胶

\message{ab^^Jcde} 

虽然使用乳胶结构更好,例如\typeout\PackageInfo

在普通的 TeX 中,\message如果您设置

\newlinechar=`\^^J

答案2

\message语以与 相同的方式扩展输入,\edef并且需要一些产生“原始”新行的东西来获得所需的效果。另一方面,\\是产生换行符的命令排版,所以在这里失败了(它也不可扩展,因此出现了奇怪的错误)。因此,您需要插入一个等于 的字符\newlinechar。在 LaTeX 格式中,这是^^J

\message{a^^JB}
\stop

对于没有设置的格式(如纯文本),你还需要覆盖

\begingroup
  \newlinechar=`^^J %
  \message{a^^JB}
\endgroup
\end

相关内容