2009-09-18 6 views
2

Я бегу LaTeX по именованной трубе fifo на Unix. Я создаю ФИФО как-так:Позвоните LaTeX по именованной трубе (fifo)?

$ mkfifo fifo 

Я затем запустить LaTeX как-так:

$ latex fifo 

Этот процесс блоков и не имеет выхода, пока я не пишу в FIFO из другой оболочки:

$ echo "\\end" > 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)?

Спасибо за чтение.

EDIT:

Следует отметить, что при запуске текс вместо варианта латекса затем следующие работы, как и ожидалось:

$ 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. 

Ho Веверу, хотя Лэмпорт отмечает в А система подготовки документов LaTeX на странице 233, что \ конец был заменен \ конец {документ}, ни один из следующих заканчивает LaTeX сессию:

$ echo "\begin{document}story\end{document}" 
$ echo "\\begin{document}story\\end{document}" 

ответ

2

Я хотел бы предложить разрешить ваша оболочка направить ФИФО трубу стандарта в

latex < fifo 

Когда я делаю это, я получаю этот выход: первый.

This is pdfeTeXk, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2009.3.25) 18 SEP 2009 14:25 
entering extended mode 
file:line:error style messages enabled. 
%&-line parsing enabled. 

, а затем после того, как эхо команды:

**\end 

* 
! Emergency stop. 
<*> \end 

End of file on the terminal! 
+0

brianegge: Большое спасибо за ответ - это определенно работает, но оно взрывается с -interaction = nonstopmode, и он загромождает журналы, например. "(Введите команду или скажите' \ end ') ". –

1

Если я эхо пустой строки в ФИФО первого и затем эхо остальной части документа, он отлично работает.

mkfifo test 
latex test 

Другие консоли:

echo "" > test 
echo "\documentclass{report}\begin{document}asdf\end{document}" > test 

Первая консоль:

xdvi test 

Я думаю, что LaTeX делает два прохода файла, тогда как TeX не делает.На первом проходе LaTeX пытается что-то определить, затем он закрывает файл и снова открывает его для второго прохода.

+0

@dreamlax: Спасибо, что ответили. Я получаю следующую ошибку, когда я пытаюсь это сделать (с xelatex):! Ошибка LaTeX: отсутствует \ begin {document}. Для получения дополнительной информации см. Руководство LaTeX или LaTeX Companion. Тип H для немедленной помощи. ... l.1 o cumentclass {report} \ begin {document} asdf \ end {document} –

+0

@dreamlax: Я отмечаю, что он отлично работает с обычным LaTeX. Мальчик. –

+0

@Brian: О, человек, звучит как большая паутина сложных проблем. , , что произойдет, если вы повторите одно и то же дважды в xelatex вместо того, чтобы сначала повторять пустую строку? – dreamlax

Смежные вопросы