Я использую jinja в python для рендеринга файла .tex, а затем я хочу использовать xelatex для рендеринга его в pdf. Хотя мне удалось заставить его работать с промежуточным файлом, я бы предпочел не иметь промежуточный файл.
Я хочу попробовать сделать это с трубкой. Я пишу в трубу следующим образом, после запуска рендера jinja2:
with open("./utils/xelatex_pipe", "w") as pipe:
pipe.write(output)
Кажется, это нормально, потому что, если я запускаю cat ./utils/xelatex_pipe
, я получаю ожидаемые данные (файл .tex).
Сейчас я пытаюсь настроить bash-скрипт, который прослушивает этот канал и запускает xelatex для всего, что проходит через него. Я пробовал что-то вроде этого:
pipe=./xelatex_pipe
xelatex -output-directory=/tmp/ $pipe
Это не работает. Кажется, что он обрабатывает каждую строку индивидуально, что, очевидно, заставляет xelatex сходить с ума ... Я думаю, что мне нужно собрать все строки в файл, но я не уверен, как сделать что-то вроде ", пока есть строки в конвейере объедините их с некоторой переменной, а затем запустите xelatex для этой переменной, если строк больше нет "