是否可以从终端读取一行而不将内容写入日志文件?

是否可以从终端读取一行而不将内容写入日志文件?

问题就在标题里。

例如以下文件a.tex

\ExplSyntaxOn
\ior_str_get_term:nN {} \l_tmpa_tl
\stop

当使用 进行编译时pdflatex a.tex,并在终端上输入一些内容,请注意日志文件上写入相同的内容。

答案1

如果 TeX 知道它是终端,它就会将其回显到日志中。

但是在支持命名管道的系统上,您可以做一些事情。(Linux,或者我在这里在 Windows 上使用 cygwin)

设置管道

mkfifo my_pipe

确认它存在

file my_pipe 
my_pipe: fifo (named pipe)

现在让 tex 读取该内容:

\openin2 my_pipe
\read2 to \xxx

\xxx

\bye

在上面运行 pdftex 它会挂起等待输入,就像您曾经\read-1从 stdin 读取一样。

现在你可以在第二个终端中使用

echo abc > my_pipe

此时pdftex就会完成abc对pdf的运行排版,而不会写入日志。

相关内容