Інші способи надання основного вхідного файлу TeX | C++
Надання основного вхідного файлу механізму TeX у вигляді потоку
До цього моменту ми лише знали, як передати
основний вхідний файл механізму TeX як ім’я файлу, повністю вказане чи у короткій формі, з розширенням чи без нього. Але є інший
конструктор класу TeXJob
, який приймає потік як перший аргумент. Це зручно, якщо з якоїсь причини ми маємо основний вхідний файл у формі, відмінній від файлу у файловій системі диска. Ось як це можна реалізувати:
1// Create conversion options instance.
2...
3// Create some device.
4...
5// Run LaTeX to XPS conversion.
6System::MakeObject<Aspose::TeX::TeXJob>(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(
7 u"\\documentclass{article} \\begin{document} Hello, World! \\end{document}")), device, options)->Run();
Зауважте, що всі вихідні файли матимуть назву textput. Це тому, що двигун ніде не може отримати іншу назву. textput — назва завдання за умовчанням. Тут і тут наведено відомості про назви посад.
Введення основного вхідного файлу TeX з терміналу
Існує ще один
конструктор класу TeXJob
, який взагалі не дозволяє вказати вхідні дані. Ви можете запитати, що таке завдання TeX буде обробляти? Цього разу нам знадобиться термінал введення. Механізм TeX попросить нас ввести назву файлу з терміналу.
Ось код:
1// Create conversion options instance.
2...
3// Run LaTeX to XPS conversion.
4System::MakeObject<Aspose::TeX::TeXJob>(System::MakeObject<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.