Краткое содержание
Это занятие завершает третий раздел курса, посвящённый структуре документа. Оно восстанавливает цепочку решений и механизмов, ведущую от класса документа к собственной преамбуле, и указывает в каждом звене, какой принцип используется и на каком занятии он установлен; соотносит достигнутое с планом курса и уточняет, какие вопросы, лишь намеченные, остаются следующим разделам; повторяет в итоговом тесте навыки входного теста; и заканчивается шестью задачами повышенной трудности, более сложными, чем задачи отдельных занятий, которые требуют соединить несколько занятий, чтобы спланировать диссертацию по её правилам оформления, предсказать нумерацию и ссылки книги и найти причину сбоев в документах, разделённых на файлы, которые не компилируются или лгут.
Цели обучения
- Восстанавливать порядок решений и механизмов раздела, указывая принцип, на который опирается каждый из них.
- Объяснять, как нумерация, оглавление, ссылки и частичная компиляция зависят от вспомогательных файлов.
- Отличать то, что раздел установил, от того, что он лишь наметил и что разовьют следующие разделы.
- Находить причины сбоев в документах, разделённых на несколько файлов, которые не компилируются или компилируются с ложными номерами, и упорядочивать исправления.
- Планировать класс, страницу, части, ссылки и файлы диссертации по правилам, которым она должна соответствовать.
Чего достиг раздел
Раздел ставил целью дать документу архитектуру, номера, оглавление и ссылки которой остаются верными при всех его изменениях. Цель достигнута с опорой на то, что введение объявило известным из предыдущих разделов: проходы компиляции, деление на преамбулу и тело документа и логическую разметку. Поэтому пройденный путь можно прочесть как одну цепочку из пяти отрезков.
Классы документов и страница
Занятие о классах документов и странице установило, что класс решает, какие рубрики существуют, что делает \maketitle, есть ли аннотация и различаются ли чётные и нечётные страницы; отсюда оно вывело критерий выбора между article, report и book по структуре и способу печати и представило классы KOMA-Script с опцией es-noquoting, которой требует их сочетание с испанским языком в версии TeX Live этих примеров. Оно рассмотрело опции класса, объяснило, почему поля зависят от длины строки и как задать их с помощью geometry, и закончилось стилями страницы, которые некоторые команды класса навязывают сами.
Разделы, оглавление и приложения
Занятие о разделах, оглавлении и приложениях набрало данные заголовка и аннотацию, упорядочило уровни рубрикации и установило, что два независимых счётчика, secnumdepth и tocdepth, решают, что нумеруется и что попадает в оглавление. Оно объяснило, что оглавление набирается из того, что записал предыдущий проход, без предупреждения, когда оно устаревает; что \appendix меняет нумерацию того, что следует за ней; и что у книги три части с двумя нумерациями страниц, порядок которых не безразличен.
Перекрёстные ссылки
Занятие о перекрёстных ссылках установило принцип, от которого зависит всякая ссылка: метка запоминает последний номер, присвоенный перед ней, внутри своего окружения. Из него оно вывело, где ставится метка в каждом элементе, почему метка перед подписью рисунка ссылается на раздел и почему у раздела без номера нет собственного номера, на который можно сослаться. Оно показало, что после изменения одна компиляция печатает прежние номера со всей видимостью правильности, и представило hyperref, который нужно загружать в конце пакетов, и cleveref, который идёт после него и, пока \crefname не задаст русские названия, пишет английские.
Длинные документы
Занятие о длинных документах распределило документ между основным файлом и частями без преамбулы. Оно отличило \input, буквальную подстановку, от \include, которая начинает страницу, пишет собственный вспомогательный файл и допускает \includeonly, чья нумерация зависит от вспомогательных файлов предыдущей полной компиляции. Оно установило, что пути записываются от папки основного файла, что в Texmaker назначается главный документ, и рассмотрело ошибки, свойственные разделённым документам, среди них две молчаливые: часть, которую \include не находит, и часть с преамбулой, чей \end{document} завершает диссертацию.
Макросы и собственная преамбула
Занятие о макросах и собственной преамбуле превратило логическую разметку в метод: \newcommand с аргументами и с необязательным аргументом, защита, не позволяющая переопределить занятое имя, пробел, теряющийся после команды без аргументов, \NewDocumentCommand, собственные окружения, аргументы которых существуют только в открывающей части, и преамбула, вынесенная в файл или в пакет, который не должен навязывать класс, язык и место hyperref.
Следующая схема соединяет пять отрезков в одну цепочку. Каждый узел столбца есть решение или механизм, пронумерованный в том порядке, в каком они опираются друг на друга, и соединённый дугой с предыдущими звеньями, которые он использует; вокруг расположены опоры, то есть принципы, к которым цепочка обращается снова и снова, и каждая соединена сплошной линией со звеньями, которые на неё опираются, и пунктирной со звеном, где она устанавливается, кроме тех, что установлены в предыдущих разделах: они изображены кольцами. Нажатие на опору выделяет все звенья, которые её используют, а каждое звено ведёт к занятию, где оно изучается.
Опоры цепи
- AПроходы. Движок записывает во вспомогательные файлы номера, заголовки и страницы на одном проходе и использует их на следующем. Устанавливается в первом разделе. В этом модуле принимается без доказательства.
- BПреамбула и тело. Преамбула настраивает и загружает пакеты, а тело набирает; то, что только определяет или сохраняет, может стоять в обоих местах. Устанавливается в первом разделе. В этом модуле принимается без доказательства.
- CСодержание и форма. Автор объявляет, чем является каждая вещь, а решение, принятое в другом месте, определяет, как она выглядит. Устанавливается в предыдущих разделах. В этом модуле принимается без доказательства.
- DКласс решает. Класс документа решает, какие рубрики существуют, что набирает заголовок, есть ли аннотация, как распределяются страницы и какой стиль навязывают его команды. Устанавливается в: 1. Три стандартных класса.
- EЧто запоминает метка. Метка запоминает последний номер, присвоенный перед ней, внутри своего окружения, не зная, к чему она привязана. Устанавливается в: 11. Метки и ссылки.
- FПорядок загрузки. Пакеты загружаются в том порядке, в каком они прочитаны, и более поздний может отменить сделанное более ранним: hyperref идёт в конце, а cleveref после него. Устанавливается в: 13. Гиперссылки.
- GОсновной файл. Компилируется всегда основной файл; части суть фрагменты его тела, без преамбулы, и их пути записываются от папки основного файла. Устанавливается в: 16. Команда include.
Участок 1 Классы документов и страница
- Выбирать класс по структуре и способу печати документа.
- Объявлять опции класса и предсказывать их действие.
- Задавать поля с помощью geometry, не удлиняя строку сверх меры.
- Предсказывать и менять стили страницы, верхние и нижние колонтитулы.
Три стандартных класса. У article нет глав; у report они есть, с заголовком и аннотацией на отдельных страницах; book печатает с двух сторон и не имеет аннотации.
Опирается на: B (Преамбула и тело). Доказывается в уроке: Классы документов и параметры страницы.
KOMA-Script. scrartcl, scrreprt и scrbook соответствуют стандартным классам с европейскими решениями; с babel на испанском им нужна в этой версии опция es-noquoting.
Использует: 1. Три стандартных класса. Опирается на: C (Содержание и форма). Доказывается в уроке: Классы документов и параметры страницы.
Опции класса. Бумага, кегль, одна или две стороны, титульная страница, начало глав и черновой режим объявляются в первой строке.
Использует: 1. Три стандартных класса. Опирается на: D (Класс решает). Доказывается в уроке: Классы документов и параметры страницы.
Поля. geometry вычисляет страницу по нескольким размерам; ширина полосы набора задаёт длину строки, от которой и страдает читатель.
Использует: 3. Опции класса. Опирается на: B (Преамбула и тело). Доказывается в уроке: Классы документов и параметры страницы.
Стили страницы. Стиль решает, каковы колонтитулы;
\maketitleи\chapterнавязывают своей странице стиль plain, а fancyhdr или scrlayer-scrpage составляют собственные стили.Использует: 1. Три стандартных класса, 4. Поля. Опирается на: D (Класс решает). Доказывается в уроке: Классы документов и параметры страницы.
Участок 2 Разделы, оглавление и приложения
- Набирать заголовок и аннотацию в соответствии с классом.
- Выбирать уровень рубрикации и предсказывать нумерацию и оглавление.
- Получать оглавление и списки, зная, от какого прохода они зависят.
- Упорядочивать приложения и части книги.
Заголовок и аннотация.
\title,\authorи\dateсохраняют,\maketitleнабирает; окружение abstract есть в article и report, но не в book.Использует: 1. Три стандартных класса. Опирается на: D (Класс решает), B (Преамбула и тело). Доказывается в уроке: Разделы, оглавление и приложения.
Уровни рубрикации. Семь уровней, от части до подпараграфа; глава существует только в report и book, и иерархия не выбирается по размеру заголовка.
Использует: 1. Три стандартных класса. Опирается на: D (Класс решает). Доказывается в уроке: Разделы, оглавление и приложения.
Нумерация и оглавление. secnumdepth решает, какие уровни нумеруются, а tocdepth, какие попадают в оглавление; форма со звёздочкой не нумерует и не расходует номер.
Использует: 7. Уровни рубрикации. Опирается на: C (Содержание и форма). Доказывается в уроке: Разделы, оглавление и приложения.
Оглавление и списки. Оглавление набирает то, что предыдущий проход записал в файл .toc, и не предупреждает, когда оно устаревает.
Использует: 7. Уровни рубрикации, 8. Нумерация и оглавление. Опирается на: A (Проходы). Доказывается в уроке: Разделы, оглавление и приложения.
Приложения и части книги.
\appendixменяет нумерацию того, что следует за ней; в book вступительная, основная и заключительная части имеют две нумерации страниц, а приложения идут перед\backmatter.Использует: 7. Уровни рубрикации, 5. Стили страницы. Опирается на: D (Класс решает). Доказывается в уроке: Разделы, оглавление и приложения.
Участок 3 Перекрёстные ссылки
- Размещать и называть метки.
- Предвидеть, что напечатает ссылка после одного или двух проходов.
- Загружать hyperref и cleveref в их порядке.
- Ссылаться с названием и номером или по заголовку.
Метки и ссылки.
\labelотмечает место,\refи\pagerefпишут его номер и страницу, за два прохода.Использует: 7. Уровни рубрикации. Опирается на: A (Проходы). Доказывается в уроке: Перекрёстные ссылки.
Где ставится метка. После команды, присваивающей номер, и внутри того же окружения: после
\section, после\caption; с префиксом, говорящим, что она обозначает.Использует: 11. Метки и ссылки. Опирается на: E (Что запоминает метка). Доказывается в уроке: Перекрёстные ссылки.
Гиперссылки. hyperref превращает ссылки, оглавление и сноски в гиперссылки, а разделы в закладки, и загружается в конце пакетов.
Использует: 11. Метки и ссылки, 9. Оглавление и списки. Опирается на: B (Преамбула и тело). Доказывается в уроке: Перекрёстные ссылки.
Ссылки с названием. cleveref пишет название и номер; без русских названий он пишет английские («section»), а русские задаются командой
\crefname; nameref ссылается по заголовку.Использует: 13. Гиперссылки, 12. Где ставится метка. Опирается на: E (Что запоминает метка), F (Порядок загрузки). Доказывается в уроке: Перекрёстные ссылки.
Участок 4 Длинные документы
- Выбирать между
\inputи\includeдля каждой части. - Предсказывать, что сохраняет
\includeonly. - Организовывать папки и назначать главный документ.
- Распознавать ошибки разделённых документов, шумные и молчаливые.
Команда input.
\inputвставляет файл так, как если бы его текст был написан на её месте, не разрывая страницу и не создавая вспомогательных файлов.Опирается на: B (Преамбула и тело). Доказывается в уроке: Длинные документы.
Команда include.
\includeначинает страницу до и после, пишет собственный вспомогательный файл для каждой части и не может быть вложенной.Использует: 15. Команда input, 7. Уровни рубрикации. Опирается на: A (Проходы). Доказывается в уроке: Длинные документы.
Частичная компиляция.
\includeonlyнабирает только выбранные части, а остальные нумерует по их вспомогательным файлам, которые должны происходить из полной компиляции, выполненной после их последнего изменения.Использует: 16. Команда include, 11. Метки и ссылки. Опирается на: A (Проходы). Доказывается в уроке: Длинные документы.
Папки и главный документ. Основной файл в корне, части в папках, пути от основного файла, простые имена, а в Texmaker основной файл назначен главным документом.
Использует: 16. Команда include. Опирается на: G (Основной файл). Доказывается в уроке: Длинные документы.
Ошибки разделённых документов.
\inputбез файла останавливает компиляцию;\includeбез файла лишь отмечает «No file»; часть с преамбулой завершает диссертацию на своём\end{document}.Использует: 16. Команда include, 18. Папки и главный документ. Опирается на: G (Основной файл), B (Преамбула и тело). Доказывается в уроке: Длинные документы.
- Выбирать между
Участок 5 Макросы и собственная преамбула
- Определять команды с аргументами и одним необязательным.
- Различать определение, переопределение и предоставление и избегать потерянного пробела.
- Определять собственные окружения.
- Собирать преамбулу в файл или в пакет.
Собственные команды.
\newcommandопределяет команду не более чем с девятью аргументами, первый из которых может быть необязательным со значением по умолчанию; она называет повторяющуюся функцию.Опирается на: C (Содержание и форма). Доказывается в уроке: Макросы и собственная преамбула.
Занятые имена и пробелы.
\newcommandотвергает существующее имя, а\renewcommandнесуществующее; команда без аргументов поглощает следующий за ней пробел.Использует: 20. Собственные команды. Опирается на: B (Преамбула и тело). Доказывается в уроке: Макросы и собственная преамбула.
Собственные окружения.
\newenvironmentопределяет открывающую и закрывающую части; его аргументы существуют только в открывающей, а\NewDocumentEnvironmentдопускает их и в закрывающей.Использует: 20. Собственные команды. Опирается на: C (Содержание и форма). Доказывается в уроке: Макросы и собственная преамбула.
Собственная преамбула. Преамбула выносится в файл, читаемый командой
\input, или в пакет .sty, который не навязывает класс, язык и место hyperref.Использует: 20. Собственные команды, 21. Занятые имена и пробелы, 15. Команда input, 13. Гиперссылки. Опирается на: F (Порядок загрузки), C (Содержание и форма). Доказывается в уроке: Макросы и собственная преамбула.
К математике. Цепочка останавливается там, где архитектура завершена и её остаётся заполнить: нумерованные уравнения и теоремы, на которые будут ссылаться метками этого раздела, составляют предмет следующего.
Загрузка содержимого…