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

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

Ми почнемо зі створення спеціального формату.

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

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

 1// Create a custom TeX format file
 2
 3// Create TeX engine options for no format upon ObjectTeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectIniTeX);
 5
 6// Specify a file system working directory for the input.
 7options.InputWorkingDirectory = new InputFileSystemDirectory(DataDir);
 8
 9// Specify a file system working directory for the output.
10options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
11
12// Run format creation.
13TeXJob.CreateFormat("customtex", options);
14
15// For further output to look fine.
16options.TerminalOut.Writer.WriteLine();

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

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

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

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

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

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

 1// Typeset a TeX file using a custom TeX format
 2
 3// Create the file system input working directory.
 4// Create the format provider using the file system input working directory.
 5// We use the project output directory as our custom format file is supposed to be located there.
 6
 7using (FormatProvider formatProvider =
 8    new FormatProvider(new InputFileSystemDirectory(OutputDir), "customtex"))
 9{
10    // Create conversion options for a custom format upon ObjectTeX engine extension.
11    TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX(formatProvider));
12    options.JobName = "typeset-with-custom-format";
13    
14    // Specify the input working directory. This is not required here as we are providing the main input as a stream.
15    // But it is required when the main input has dependencies (e.g. images).
16    options.InputWorkingDirectory = new InputFileSystemDirectory(DataDir);
17    
18    // Specify a file system working directory for the output.
19    options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
20
21    // Run the job.
22    new TeXJob(new MemoryStream(Encoding.ASCII.GetBytes(
23            "Congratulations! You have successfully typeset this text with your own TeX format!\\end")),
24            new XpsDevice(), options).Run();
25
26    // For further output to look fine.
27    options.TerminalOut.Writer.WriteLine();
28}

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

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

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

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

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.