Иные методы предоставления входного файла TeX | Python
Передача основного входного файла в движок TeX с использованием потока.
До сих пор мы только узнали, как предоставить основной входной файл движку TeX как имя файла, в полной или сокращенной форме, с расширением или без него. Однако в классе TeXJob доступен еще один конструктор, который принимает поток в качестве первого аргумента. Это полезно, если по какой-то причине основной входной файл не находится в виде файла в файловой системе диска. Вот пример того, как это можно реализовать:
1# Create conversion options instance.
2...
3# Create some device.
4...
5# Run LaTeX to XPS conversion.
6TeXJob(BytesIO(r"\documentclass{article} \begin{document} Hello, World! \end{document}".encode("ascii")),
7 XpsDevice(), options).run()
Обратите внимание, что все выходные файлы будут называться «texput». Это связано с тем, что у движка нет доступа ни к какому другому имени. texput
— это имя задания по умолчанию. Более подробную информацию о названиях заданий вы можете найти в параграфах
Вывод TeX и
Как задать имя задания.
Ввод основного входного файла TeX через терминал
В классе TeXJob доступен еще один конструктор, который вообще не позволяет нам указывать входные данные. Вам может быть интересно, что будет обрабатывать такое задание TeX. В этом случае нам нужно будет использовать входной терминал. Движок TeX предложит нам ввести имя файла из терминала.
Вот код:
1# Create conversion options instance.
2...
3# Run LaTeX to XPS conversion. When prompted, enter the /-separated path to the LaTeX file.
4TeXJob(XpsDevice(), options).run()
Как только он запустится, движок приостановится и будет ждать, пока мы введем имя файла (с путем или без него, с расширением или без него):
А вот как это будет выглядеть на выходном терминале (консоли):
1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
2entering extended mode
3**<path_to_the_file>/hello-world.ltx
4(<path_to_the_file>/hello-world.ltx
5LaTeX2e <2011/06/27>
6(article.cls
7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
8(size10.clo))
9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.xps (1 page).
13Transcript written on hello-world.log.