Unixの名前付きパイプfifoでLaTeX を実行しています。fifo のようなものを作成します。
$ mkfifo fifo
次に、LaTeX を次のように実行します。
$ latex fifo
このプロセスはブロックされ、別のシェルから 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 など) はありますか?
読んでくれてありがとう。
編集:
latexのバリアントの代わりにtexを実行すると、次のことが期待どおりに機能することに注意してください。
$ 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}"