TeX ввод/вывод | Решение Aspose.TeX API для .NET
TeX-файл
Технически любой файл может быть файлом TeX. Ему даже не обязательно иметь расширение .tex. Движок TeX считывает входной сигнал побайтово, пытаясь распознать известные ему команды (т. е. те, которые находятся в его внутреннем состоянии). Он просто сообщает об ошибках в нераспознанных командах и/или запрашивает исправления на терминале (если он работает в интерактивном режиме). Но если вы ожидаете увидеть что-то вроде красиво отпечатанного документа, входные данные должны соответствовать синтаксису TeX и в идеале содержать только команды, известные движку.
ТеХ-вход
Задание TeX выполняется с явно указанным файлом TeX. Итак, мы включаем этот файл во входные данные определенного задания TeX. Кроме того, в TeX есть четыре примитива, относящиеся к вспомогательному вводу:
\input<имя файла>
требует имени файла и начинает обработку этого файла, как только обработка содержащего его файла достигает команды\input
. По достижении конца вспомогательного файла обработка возвращается к файлу, содержащему команду\input
.\openin<4-bit-number>=<имя файла>
также требует имени файла, но он просто открывает файл и сопоставляет его с номером от 0 до 15.\read<number> to <controlsequence>
требует номер, которому сопоставлен файл, и считывает из него по одной строке за раз, чтобы<controlsequence>
соответствовал списку прочитанных токенов.\closein<4-bit-number>
закрывает файл, сопоставленный с этим числом.
Файлы, имена которых передаются командам \input
и \openin
, также включаются во входные данные TeX, и мы будем называть их вспомогательными входными файлами или зависимостями, а файл, указанный для задания, мы будем называть основной входной файл.
Четыре команды могут встречаться либо в основном входном файле, либо во вспомогательном входном файле. Но остерегайтесь циклических зависимостей.
При работе в интерактивном режиме в случае возникновения какой-либо ошибки движок TeX запрашивает исправление на терминале. На этом этапе вы можете захотеть заменить ошибочную команду на новую. И это будет еще один и последний способ предоставления входных данных в TeX, который мы назовем терминальным входом.
Вывод TeX
Как мы упоминали выше, задание TeX выполняется для явно указанного файла. Файл не может содержать данных для верстки. Могут существовать только управляющие последовательности, которые не создают символов для ввода. Но обычно он БУДЕТ содержать такие данные, так что мы получим файл в целевом формате, который должен содержать наш набранный текст (или что-то еще, разрешенное движком и форматом, если они расширены для соответствия дополнительным функциям определенного целевого формата). . Файл будет иметь то же имя, что и файл, указанный в качестве входных данных. Мы назовем этот файл основным выходным файлом. Как мы упоминали выше, для исходного TeX это будет файл в формате DVI. Мы будем называть имена входных и выходных файлов без расширения имя задания.
Кроме того, в TeX есть три примитива, относящиеся к вспомогательному выводу:
\openout<4-bit-number>=<имя файла>
требует имени файла, открывает файл и сопоставляет его с номером от 0 до 15.\write<number>{список токенов}
требует номер, с которым сопоставлен файл, и записываетсписок токенов
в файл.\closeout<4-bit-number>
закрывает файл, сопоставленный с этим номером.
Файлы, имена которых передаются командам \openout
, также включаются в выходные данные TeX, и мы будем называть их вспомогательными выходными файлами.
Когда движок TeX обрабатывает входные данные, он может выводить некоторую отладочную информацию в файл log или trascript. Мы включим этот файл в выходные данные TeX. Одновременно с записью в лог-файл движок TeX может выдавать на терминал менее подробную информацию. И это последний способ, которым движок TeX записывает выходные данные, которые мы будем называть выходными данными терминала.
Режимы взаимодействия TeX
Задание TeX может выполняться в одном из четырех режимов взаимодействия в любой момент времени. Эти режимы переключаются следующими примитивами TeX:
\ пакетный режим
. В двигателе отсутствуют все остановки и выходной сигнал терминала, и поэтому терминал не требуется ни для ввода, ни для вывода.\nonstopmode
. Двигатель пропускает все остановки и, следовательно, требует терминала только для вывода.\ режим прокрутки
. В двигателе отсутствуют остановки по ошибке, и ему требуется терминал как для ввода, так и для вывода.\errorstopmode
. Двигатель останавливается при каждой возможности взаимодействовать.
Aspose.TeX позволяет нам указать режим взаимодействия в качестве опции задания TeX при создании его объекта. Этот режим будет установлен во внутреннем состоянии движка сразу после загрузки формата TeX (если вообще предполагается загрузка какого-либо формата) и переключится в другой режим, как только движок встретит одну из четырёх команд. Значение этой опции по умолчанию сохранит режим взаимодействия, определенный форматом TeX. Если формат не загружен, режим взаимодействия тот же, что установлен командой \errorstopmode
.