Інші вихідні формати перетворення TeX | Python

Малоймовірно, що зараз вам знадобиться конвертувати файл TeX, написаний у форматі, відмінному від LaTeX. Однак, якщо ви з будь-якої причини вивчаєте мову TeX або внутрішню частину TeX, це все ще можливо. У будь-якому випадку Aspose.TeX для Python дозволяє конвертувати файли, написані у форматі Plain TeX, а також дозволяє створювати власні формати та набирати документи, розроблені в цих форматах.

Для початку ми створимо власний формат.

Створення власного формату

Давайте пам’ятати, що файл формату є двійковим представленням внутрішнього стану механізму TeX.

 1# Create TeX engine options for no format upon ObjectTeX engine extension.
 2options = TeXOptions.console_app_options(TeXConfig.object_ini_tex)
 3# Specify a file system working directory for the input.
 4options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
 5# Specify a file system working directory for the output.
 6options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
 7
 8# Run format creation.
 9TeXJob.create_format("customtex", options)
10
11# For further output to look fine.
12options.terminal_out.writer.write_line()

Як бачите, код схожий на код для перетворення файлу TeX. Однак є кілька відмінностей.

По-перше, у цьому випадку ми використовуємо конфігурацію завдання TeXConfig.object_ini_tex. Ця конфігурація гарантує, що стан двигуна є «незайманим», тобто внутрішні параметри мають значення за замовчуванням, а набір керуючих послідовностей узгоджується з набором примітивів. У нашому прикладі набір примітивів розширено у статті Aspose.TeX і Object TeX.

Після цього ми продовжуємо налаштування вхідних і вихідних робочих каталогів, як зазвичай. Вхідний робочий каталог має містити вихідний файл основного формату та всі його залежності.

І друга головна відмінність полягає в методі, за допомогою якого ми виконуємо роботу. У цьому випадку ми використовуємо статичний метод create_format(), який у поєднанні з параметрами вимагає, щоб ім’я основного вихідного файлу збігалося з ім’ям формату.

Набір файлу TeX у вашому спеціальному форматі

Тепер, коли ми створили власний формат TeX, ми можемо приступити до набору файлу TeX, написаного в цьому форматі. Ось код:

 1# Create the format provider using the file system input working directory.
 2# We use the project output directory as our custom format file is supposed to be located there.
 3with FormatProvider(InputFileSystemDirectory(Util.output_directory), "customtex") as format_provider:
 4    # Create conversion options for a custom format upon ObjectTeX engine extension.
 5    options = TeXOptions.console_app_options(TeXConfig.object_tex(format_provider))
 6    options.job_name = "typeset-with-custom-format"
 7    # Specify the input working directory. This is not required here as we are providing the main input as a stream.
 8    # But it is required when the main input has dependencies (e.g. images).
 9    options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
10    # Specify a file system working directory for the output.
11    options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
12
13    # Run the job.
14    TeXJob(BytesIO("Congratulations! You have successfully typeset this text with your own TeX format!\\end".encode('ascii')),
15           XpsDevice(), options).run()
16
17    # For further output to look fine.
18    options.terminal_out.writer.write_line()

Щоб указати формат, нам потрібно створити екземпляр класу FormatProvider. У конструкторі параметрів ми використовуємо конфігурацію TeXConfig.object_tex(), яка вимагає нашого провайдера формату як аргумент і завантажує формат поверх «незайманого» стану механізму.

Код, що залишився, повинен бути вам знайомий, оскільки він використовує функції, які обговорювалися раніше в цьому посібнику.

Набір файлу TeX у форматі Plain TeX

Якщо ми видалимо постачальника формату з наведеного вище коду, механізм завантажить формат за замовчуванням, яким є Object TeX у його четвертому сенсі. Таким чином, якщо у вас є файл TeX, написаний у форматі Plain TeX, ви можете перетворити його в будь-який підтримуваний цільовий формат за допомогою цього підходу.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.