TeX I/O | Рішення Aspose.TeX API для .NET
файл TeX
Технічно будь-який файл може бути файлом TeX. Для цього навіть не потрібно мати розширення .tex. Механізм TeX читає вхідні дані байт за байтом, намагаючись розпізнати відомі йому команди (тобто ті, що знаходяться у його внутрішньому стані). Він просто повідомляє про помилки щодо нерозпізнаних команд і/або запитує виправлення на терміналі (якщо він працює в інтерактивному режимі). Але якщо ви очікуєте побачити щось на кшталт гарно набраного документа, вхідні дані мають відповідати синтаксису TeX і, в ідеалі, містити лише команди, відомі механізму.
Введення TeX
Завдання TeX виконується з явно вказаним файлом TeX. Отже, ми включаємо цей файл у вхідні дані певного завдання TeX. Крім того, TeX має чотири примітиви, пов’язані з допоміжним введенням:
\input<ім'я файлу>
вимагає імені файлу та починає обробку цього файлу, щойно обробка файлу, що містить, досягає команди\input
. Після досягнення кінця допоміжного файлу обробка повертається до файлу, що містить команду\input
.- `\openin<4-bit-number>=<ім’я файлу>’ також вимагає імені файлу, але він лише відкриває файл і зіставляє його з числом від 0 до 15.
\read<номер> до <контрольної послідовності>
вимагає номера, на який зіставляється файл, і зчитує з нього рядок за раз, щоб<контрольна послідовність>
відповідала списку прочитаних токенів.\closein<4-bit-number>
закриває файл, зіставлений із номером.
Файли, назви яких передаються командам \input
і \openin
, також включені до вхідних даних TeX, і ми будемо називати їх допоміжними вхідними файлами або залежностями, тоді як файл, указаний для завдання, ми називатимемо основний вхідний файл.
Чотири команди можуть з’явитися або в основному вхідному файлі, або в допоміжному вхідному файлі. Але остерігайтеся циклічних залежностей.
Під час роботи в інтерактивному режимі у разі будь-якої помилки механізм TeX запитує виправлення на терміналі. На цьому етапі ви можете замінити помилкову команду новою. І це буде ще один і останній спосіб надання вхідних даних для TeX, який ми називатимемо термінальним введенням.
Вивід TeX
Як ми згадували вище, завдання TeX виконується з явно вказаним файлом. Файл може не містити даних для набору. Можуть існувати лише контрольні послідовності, які не створюють жодних символів для введення. Але зазвичай він БУДЕ містити такі дані, тож ми отримаємо файл у цільовому форматі, який має містити наш набірний текст (або будь-який інший, дозволений механізмом і форматом, якщо вони розширені, щоб відповідати додатковим функціям певного цільового формату) . Файл матиме таке ж ім’я, як і файл, указаний як вхідні дані. Ми будемо називати цей файл файлом main output. Як ми згадували вище, для оригінального TeX це буде файл у форматі DVI. Ми будемо називати імена вхідних і вихідних файлів без розширення назва завдання.
Крім того, TeX має три примітиви, пов’язані з допоміжним виведенням:
- `\openout<4-bit-number>=<ім’я файлу>’ вимагає імені файлу, відкриває файл і зіставляє його з числом від 0 до 15.
\write<номер>{список маркерів}
вимагає номер, на який зіставляється файл, і записуєсписок маркерів
у файл.\closeout<4-bit-number>
закриває файл, зіставлений із номером.
Файли, назви яких передано командам \openout
, також включені до виводу TeX, і ми будемо називати їх файлами допоміжних виводів.
Коли механізм TeX виконує вхідні дані, він може виводити деяку інформацію про налагодження у файл log або trascript. Ми включимо цей файл у вихід TeX. Одночасно із записом у файл журналу механізм TeX може виводити на термінал менш детальну інформацію. І це останній спосіб, у який механізм TeX записує вихідні дані, які ми будемо називати виводом терміналу.
Режими взаємодії TeX
Завдання TeX може виконуватися в одному з чотирьох режимів взаємодії в будь-який момент часу. Ці режими перемикаються наступними примітивами TeX:
\пакетний режим
. Механізм пропускає всі зупинки та випуск терміналу, і, таким чином, термінал не потрібен ні для введення, ні для виведення.\nonstopmode
. Двигун пропускає всі зупинки, тому термінал потрібен лише для виведення.\scrollmode
. Механізм пропускає зупинки через помилки та вимагає терміналу як для введення, так і для виведення.\errorstopmode
. Двигун зупиняється при кожній можливості взаємодії.
Aspose.TeX дозволяє нам вказати режим взаємодії як параметр завдання TeX під час створення його об’єкта. Цей режим буде встановлено у внутрішньому стані движка відразу після завантаження формату TeX (якщо взагалі передбачається завантаження будь-якого формату), і буде переведено в інший режим, щойно движок зустріне одну з чотирьох команд. Стандартне значення цього параметра збереже режим взаємодії, визначений форматом TeX. Якщо формат не завантажується, режим взаємодії такий самий, як і встановлений командою \errorstopmode
.