Краткое содержание
В этом уроке мы научимся определять собственные команды и окружения и собирать их в преамбулу, которую можно использовать повторно. Урок объясняет, почему стоит называть функции текста, а не повторять их внешний вид; представляет \newcommand с обязательными аргументами и с необязательным аргументом, имеющим значение по умолчанию, команды \renewcommand и \providecommand, а также ошибку, возникающую, когда имя уже занято; кратко показывает \NewDocumentCommand, современный интерфейс, встроенный в ядро LaTeX; разбирает пробел, теряющийся после команды без аргументов; определяет окружения с помощью \newenvironment, с их кодом открытия и закрытия; и учит выносить преамбулу в отдельный файл, будь то файл, читаемый командой \input, или пакет .sty, с вниманием к порядку загрузки пакетов и к лаконичности целого.
Цели обучения
- Обосновывать определение собственной команды функцией, которую она называет, а не экономией набора.
- Определять команды с обязательными аргументами и с необязательным аргументом и предсказывать результат каждой формы их использования.
- Различать
\newcommand,\renewcommandи\providecommandи истолковывать ошибку, вызванную уже занятым именем. - Предвидеть и предотвращать потерю пробела после команды без аргументов.
- Определять окружения с аргументами и распознавать, какая часть определения может их использовать.
- Организовывать собственную преамбулу в отдельном файле или в пакете, решать, что из этого уместнее, и упорядочивать загрузку пакетов.
Зачем определять собственные команды
В уроке об осмысленном оформлении была изложена главная мысль: каждая пометка оформления должна отвечать некоторой функции текста, а собственная команда называет эту функцию, тогда как её определение, записанное один раз в преамбуле, задаёт внешний вид. В этом уроке механизм изучается подробно. Сначала стоит уточнить, что мы выигрываем, потому что от этого зависит, когда определять команду имеет смысл, а когда нет.
Выигрыш тройной. Во-первых, смысл: \ponyatie{сущее} говорит, чем является слово, тогда как \textit{сущее} говорит лишь, как оно выглядит, и исходный текст читается как размеченный текст, а не как перечень типографских распоряжений. Во-вторых, единообразие: если векторы всегда пишутся через \vect, не может случиться так, что по недосмотру одни выйдут полужирными, а другие со стрелкой. В-третьих, соглашение меняется в одном месте: если диссертационный совет, журнал или научный руководитель потребуют другое обозначение, достаточно изменить одну строку преамбулы, и изменение коснётся всего документа. Отсюда следует критерий: собственной команды заслуживает то, что выполняет узнаваемую функцию и повторяется; не заслуживает её единичная настройка, которая пишется на своём месте и не повторяется.
Загрузка содержимого…