Понимание синтаксиса пакетов LaTeX

Понимание синтаксиса пакетов LaTeX

Я уже несколько лет использую LaTeX для набора математических документов, но у меня такое ощущение, что существует два «вида» LaTeX: тот, в котором я пишу свои документы, и тот, в котором пишутся пакеты.

Моя цель — не написать пакет, а попытаться решить проблемы самостоятельно. Я часто ловлю себя на том, что ищу решения каждой проблемы, с которой сталкиваюсь, и ответы всегда содержат этот синтаксис, о котором я говорю, полный @s и вещей вроде \expandafter, \makeatletter, \makeatother, \catcode. Поскольку я не могу его понять, я просто слепо его копирую.

Какие ресурсы рекомендуются для изучения этого не столь простого материала о латексе?

решение1

Прочтите TeXbook. За него придется заплатить, но оно того стоит: он не только полностью полон (даже лучше, чем TeX By Topic, рекомендованный mafp в комментариях), но и является скорее инструкцией, чем справочником. У него есть один недостаток: он документирует простой формат TeX в дополнение к фактическому базовому языку TeX и полностью игнорирует LaTeX и другие форматы (как и должно быть). К сожалению, он не делает четкого различия между тем, что является встроенной функцией TeX, и тем, что определяется форматом, тогда как TBT делает (вообще не рассматривая формат). На практике это означает, что вам следует один раз просмотреть основной текст, а затем сосредоточиться на опасных изгибах, которые являются справочным материалом.

Я слышал жалобы на то, что TeXbook слишком болтлив или написан плохим стилем. Тот факт, что у него вообще есть стиль, делает его уязвимым для такой критики, но также позволяет ему взаимодействовать с читателем на интуитивном уровне. Если ваша интуиция отличается от интуиции Кнута, в этом нет ничего постыдного, но TeX — возмутительно сложный для понимания язык, поэтому он может помочь оценить слегка эксцентричный ум его создателя.

решение2

LaTeX2e очень сложно программировать; я предлагаю вам использовать экспериментальные версии формата LaTeX3. Чтобы загрузить его, вам нужно всего лишь

\usepackage{expl3}

и документация доступна с texdoc expl3и texdoc source3.

Связанный контент