Альтернативные методы предоставления основного входного файла TeX | Питон

Передача основного входного файла в движок 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.
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.