Я запускаю LaTeX на именованном канале fifo в Unix. Я создаю фифо вот так:
$ 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)?
Спасибо за чтение.
ИЗМЕНИТЬ:
Примечательно, что при запуске tex вместо варианта latex следующее работает должным образом:
$ echo "story\\end" > fifo
(между тем в консоли текс)
$ 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.
Однако, хотя Лесли Лэмпорт отмечает в Система подготовки документов LaTeX на стр. 233, что \ end был заменен на \ end {document}, ни одно из следующих действий не завершает сеанс LaTeX:
$ echo "\begin{document}story\end{document}"
$ echo "\\begin{document}story\\end{document}"