通常,如果终端上有不完整的行,则 等会开始换行\errmessage
。\immediate\write
pdftex '\message{123}\errmessage{hello}\end'
输出:
entering extended mode
123
! hello.
<*> \message{123}\errmessage{hello}
\end
尽管如此,TeX 假定终端输入和输出没有被重定向(可能),因此在这种情况下不在!
单独的行上。
echo 123 | pdftex '\message{123}\read -1 to \aaa\errmessage{hello}\end'
输出:
entering extended mode
123! hello.
<*> \message{123}\read -1 to \aaa\errmessage{hello}
\end
?
有没有办法解决这个问题,强制!
出现在新行上?(也许修改\read
或其他方法允许阅读?)
请注意,即使没有以下情况,也可能会遇到此问题\message
:
echo 123 | pdftex '\input expl3-generic.tex\read -1 to \aaa\errmessage{hello}\end'
输出:
entering extended mode
(/usr/share/texmf-dist/tex/latex/l3kernel/expl3-generic.tex (/usr/share/texmf-dist/tex/latex/l3kernel/expl3-code.tex) (/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def))! hello.
<*> \input expl3-generic.tex\read -1 to \aaa\errmessage{hello}
\end
?
解决此问题的一种可能方法是在\immediate\write 128 {}
每个之后\read
,但如果出现很多\read
而没有任何错误消息等,它将打印许多虚假行。并且\message{}
不执行任何操作。