Другие параметры управления TeX | Java

Каждый пример создаёт TeXOptions для LaTeX и задаёт один параметр. Передайте эти настройки в TeXJob, предоставьте подходящие входные данные LaTeX и задайте рабочую папку вывода перед запуском задания. Импортируйте com.aspose.tex.TeXOptions, TeXConfig и классы из выбранного примера: Interaction, com.aspose.tex.rendering.XpsSaveOptions или PdfSaveOptions, а для примера даты — java.util.Calendar/GregorianCalendar. Обрабатывайте или объявляйте исключения в вызывающем методе. Примеры растеризации и подмножеств шрифтов используют PdfSaveOptions; выполняйте вывод через совместимый PdfDevice. Примените лицензию согласно руководству по лицензированию.

Как установить режим взаимодействия

Как мы упоминали здесь, Aspose.TeX для Java позволяет нам установить начальный режим взаимодействия, в котором запускается движок. Вот как мы это делаем:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.setInteraction(Interaction.NonstopMode);

Как задать имя задания

Когда мы передаем основной входной файл в качестве имени файла, мы получаем выходные файлы с тем же именем, но с другими расширениями. Движок TeX называет имя входного файла имя задания и использует его для выходных файлов, за исключением случаев, когда записываются вспомогательные файлы с явно указанными другими именами. Когда мы передаем основной входной файл как поток, движок TeX использует имя задания по умолчанию — texput. В обоих случаях мы можем переопределить имя задания, назначив соответствующий параметр преобразования.

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.setJobName("my-job-name");
Example-JobName.java hosted with ❤ by GitHub

Как «остановить время»

В LaTeX есть функция автоматического создания заголовка на основе некоторых определений в преамбуле. Этот заголовок обычно содержит текущую дату. Возможно, мы захотим заморозить дату в каком-то желаемом значении. Вот как это можно сделать:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.setDateTime(new GregorianCalendar(2022, Calendar.DECEMBER, 18).getTime());
Example-DateTime.java hosted with ❤ by GitHub

Как игнорировать недостающие пакеты

Файл LaTeX может ссылаться на пакеты, недоступные в библиотеке Aspose.TeX for Java. Обычно движок останавливается с ошибкой при попытке загрузить такой пакет. Используйте ignoreMissingPackages(true), чтобы пропускать недоступные пакеты. Это не предоставляет команды, которые эти пакеты определяют; входные данные не должны зависеть от таких команд.

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.ignoreMissingPackages(true);

Как избежать наращивания лигатур

Обычно движок TeX создает лигатуры для определенных пар символов, если шрифт предоставляет необходимые для этого данные. Мы можем указать движку пропустить построение лигатуры с помощью следующего кода:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.noLigatures(true);
Example-NoLigatures.java hosted with ❤ by GitHub

Как повторить работу

Как мы уже упоминали выше относительно меток и ссылок, бывают случаи, когда нам может потребоваться выполнить одно и то же задание дважды. Вот как это можно сделать:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new XpsSaveOptions());
4options.repeat(true);
Example-Repeat.java hosted with ❤ by GitHub

Как превратить математические формулы в растровые изображения

Иногда нам может потребоваться иметь математические формулы в виде растровых изображений, а не набирать их шрифтами. Для этой цели может служить следующий вариант:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new PdfSaveOptions());
4options.getSaveOptions().rasterizeFormulas(true);

Как превратить графику в растровые изображения

Движок ObjectTeX позволяет включать графические файлы в растровых форматах (PNG и JPG), а также в форматах PS(EPS) и XPS(OXPS). Последние два формата обычно содержат векторные элементы и тексты. Чтобы растрировать их и включить в виде сплошных изображений, мы можем использовать следующую опцию:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new PdfSaveOptions());
4options.getSaveOptions().rasterizeIncludedGraphics(true);

Как подмножество шрифтов

Подмножество шрифта ограничивает встроенный шрифт глифами, используемыми в документе. Влияние на размер вывода зависит от шрифта и способа его встраивания устройством вывода. Задайте параметры сохранения перед включением subsetFonts(true), как показано ниже:

1// Configure options, then pass them to a TeXJob with suitable LaTeX input and output.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3options.setSaveOptions(new PdfSaveOptions());
4options.getSaveOptions().subsetFonts(true);
Example-SubsetFonts.java hosted with ❤ by GitHub