我在 Unix上的命名管道fifo上运行 LaTeX。我像这样创建fifo:
$ mkfifo fifo
然后我像这样运行 LaTeX:
$ latex fifo
在我从另一个 shell 写入 fifo 之前,此过程会阻塞并且没有输出:
$ echo "\\end" > fifo
那么$ latex fifo的输出就变成了:
This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7)
%&-line parsing enabled.
entering extended mode
然而,LaTeX 进程永远不会结束。你怎样才能让 LaTeX 结束?我试过发送它 chr(0) 和 chr(4) (即ctrl-d),但都不起作用。是否有一些命令会告诉 LaTeX 退出(例如 \exit 之类的)?
谢谢阅读。
编辑:
值得注意的是,当您运行tex而不是latex的变体时,以下内容将按预期工作:
$ echo "story\\end" > fifo
(同时,在 tex 控制台中)
$ tex fifo
This is TeX, Version 3.1415926 (Web2C 7.5.7)
(./fifo [1] )
Output written on fifo.dvi (1 page, 212 bytes).
Transcript written on fifo.log.
然而,尽管 Leslie Lamport 在A Document Preparation System LaTeX on page 233 中指出 \end 已被 \end{document} 取代,但以下任何一个都不会结束 LaTeX 会话:
$ echo "\begin{document}story\end{document}"
$ echo "\\begin{document}story\\end{document}"