Латех ввода/вывода | Aspose.TeX для .NET
файл LaTeX
Если у нас есть файл TeX, имеющий следующую структуру, мы назовем этот файл файлом LaTeX:
1\documentclass{<a document class>}
2% Preamble
3...
4\begin{document}
5% Document body
6...
7\end{document}
где <класс документа>
— это имя
класса документа, который представляет собой входной файл TeX, определяющий внешний вид страниц и макросов выходного документа, которые наиболее подходят для определенного типа документа.
Честно говоря, вы можете вставлять примитивные управляющие последовательности перед \documentclass{}
, например \nonstopmode
и т. д. Но каждый макрос LaTeX проверяет, находится ли он в нужной части файла.
Стоит отметить несколько особенностей TeX input и output в контексте работы с файлами LaTeX.
Выходной файл LaTeX
Типичное задание LaTeX создает вспомогательный выходной файл с именем
имя задания и расширением .aux. Этот файл обычно содержит справочные данные, которые движок собирает во время выполнения задания, если вы, скажем, задаете метки для математических формул (уравнений), а затем ссылаетесь на них где-то в тексте. Если вы не используете ничего подобного, этот файл содержит только управляющую последовательность \relax
(которая является одним из примитивов TeX). Так что не удивляйтесь.
Хотя примитивы \openout
, \write
и \closeout
не запрещены, пакеты являются наиболее подходящим местом для них. Поэтому вам лучше использовать их в своих собственных пакетах, если вы их разрабатываете.
Другие части вывода произвольны, также следуют общей концепции вывод TeX и зависят от того, что именно должен делать ваш файл (программа) TeX, какие пакеты (см. ниже) вы используете и т. д.
Входной файл LaTeX
Вышеупомянутый файл .aux одновременно является обязательной частью ввода в LaTeX. Алгоритмически LaTeX не может выполнить эти задачи, связанные со ссылками, за один запуск, поэтому одно и то же задание необходимо запустить дважды: первый раз для сбора данных, второй раз для использования этих данных. Многие программные системы на основе LaTeX автоматически запускают задания LaTeX дважды. Спойлер: в API Aspose.TeX есть опция, которая позволяет нам контролировать такое поведение.
Другая обязательная часть — класс документа. Файл класса документа, в свою очередь, может неявно зависеть от других файлов, которые, таким образом, также включаются во входные данные LaTeX.
Если вы хотите использовать функции, выходящие за рамки базового LaTeX и его классов документов, но поддерживаемые определенной реализацией механизма TeX, то вы обычно используете пакет, о котором вы должны уведомить механизм в преамбуле. Пакет LaTeX — это файл или группа файлов, объединенных под одним именем, которые предоставляют такие функции. Чтобы уведомить движок, вам нужно использовать команду \usepackage
с именем пакета и опускаемыми параметрами, если пакет их определяет.
Например,
1\usepackage[a6paper,landscape]{geometry}
Хотя примитивы \input
, \openin
, \read
и \closein
не запрещены, пакеты являются наиболее подходящим местом для них. Поэтому вам лучше использовать их в своих собственных пакетах, если вы их разрабатываете.
Другие части ввода произвольны, также следуют общей концепции TeX input и зависят от того, что именно должен делать ваш TeX-файл (программа), какие пакеты вы используете и т. д.