\message 中的输出格式

\message 中的输出格式

是否有可以在 pdfTeX 版本 3.14159265-…(TeX Live 2017)中使用\message\typeout格式化打印字符串的字符代码列表或概述?

我知道^^J哪个是换行符。还有其他吗?

\documentclass{minimal}\makeatletter
\message{^^J==> Hello^^JWorld! <==^^J}
\typeout{^^J==> Hello^^JWorld! <==^^J}
\@@end

答案1

\message对其参数进行完全扩展。不可扩展的标记将表示为其自身;控制序列将在(如果为非负)之前,\escapechar并在其后加上空格(如果它们是控制字)。如果\newlinechar为非负,则相应的字符将产生换行符。

下面的纯 TeX 文件lupino.tex展示了其特点。

\def\Now#1{Now#1}

\message{^^J\Now\space you can^^J\relax^^J}

\newlinechar=`^^J

\message{^^J\Now\space you can^^J\relax^^J}

\escapechar=-1

\message{^^J\Now\space you can^^J\relax^^J}

\end

控制台输出将是

This is TeX, Version 3.14159265 (TeX Live 2018) (preloaded format=tex)
(./lupino.tex ^^JNow you can^^J\relax ^^J 
Now you can
\relax 

Now you can
relax 
 )
No pages of output.
Transcript written on lupino.log.

pdftex如果你运行而不是 则没有什么区别tex

Plain TeX 不会设置\newlinechar,LaTeX 会将其设置为 10,方法是

\newlinechar=`^^J

答案2

本质上\message没有其他格式,^^J不是内置的,任何带有代码值的字符\newlinechar都不会打印,而是强制换行。乳胶源有:

\newlinechar`\^^J

相关内容