Краткое содержание
Это занятие открывает третий раздел курса, посвящённый структуре документа. Оно объясняет, зачем нужен раздел: перейти от хорошо набранного текста предыдущего раздела к длинному документу с собственной архитектурой, части которого нумеруются, перечисляются в оглавлении, ссылаются друг на друга и распределяются по нескольким файлам; представляет пять его занятий и нить, которая их связывает, от класса документа и страницы до собственной преамбулы; уточняет, что считается известным из предыдущих разделов; напоминает, откуда происходят формы академических документов; формулирует задачу, которую решает раздел: документ, ссылки и номера которого написаны вручную, начинает лгать, как только он меняется; и показывает, что эта архитектура одинаково служит диссертации по физике и диссертации по истории.
Цели обучения
- Описать последовательность содержания раздела и объяснить, что каждое занятие даёт следующему.
- Распознать, что раздел считает известным из предыдущих, и при необходимости повторить это.
- Объяснить на примере, почему внутренние ссылки не пишут вручную.
- Распознать в академических жанрах разных дисциплин структуру, набирать которую учит раздел.
Входной тест
Прежде чем проходить раздел, полезно измерить исходную точку. Этот тест служит самопроверкой: он не оценивается, и его единственная цель состоит в том, чтобы направить учёбу. Первые два вопроса повторяют то, что раздел считает известным из предыдущих; следующие десять касаются, по два и по порядку, пяти занятий раздела. Тому, кто никогда не набирал длинный документ, не стоит ждать, что он ответит на них верно: каждый ответ, верный или нет, объясняет суть дела и называет занятие, в котором она разбирается. Те же навыки снова измеряются в конце, на итоговом занятии.
Перед началом раздела оцени свою отправную точку. Это короткая самопроверка: она не оценивается, а результат хранится только в твоём браузере.
Вопрос 1Из предыдущих разделовПосле первой компиляции документа ссылка, сделанная командой
\ref, выглядит как два вопросительных знака, а журнал просит скомпилировать ещё раз. Что происходит?Так бывает, но тогда предупреждение о неопределённой ссылке сохранилось бы и после повторной компиляции; здесь журнал просит именно ещё один проход.\refи\labelвходят в ядро LaTeX и не требуют пакета.Удаление ничего не даёт: следующий проход запишет его заново, и ссылка по-прежнему будет ждать ещё одного прохода.Движок читает исходный текст только один раз; то, что он записывает в файл.auxна одном проходе, он читает в начале следующего. Поэтому ссылкам и оглавлению нужно не меньше двух проходов.Повторить: Компиляция и исправление ошибок
Вопрос 2Из предыдущих разделовВ эссе названия произведений отмечаются командой
\trud{…}, определённой в преамбуле как\newcommand{\trud}[1]{\emph{#1}}, вместо того чтобы писать\textit{…}в каждом месте. Что это даёт?Сегодня результат похож; выигрыш появляется, когда меняются требования и названия нужно отличать от прочего курсива.Скорость заметно не меняется; преимущество касается сопровождения, а не производительности.Ничто в определении не переносит их в оглавление; оно задаёт только их вид.Команда называет функцию, название произведения, а её определение задаёт внешний вид. Это логическая разметка, и этот раздел превратит её в метод с помощью собственной преамбулы.Повторить: Оформление со смыслом
Вопрос 3Студент пишет диссертацию с
\documentclass{article}и делит текст командами\chapter{…}. Что происходит при компиляции?Класс не переводит уровень деления, которого не знает: команды в нём нет.Уровни деления зависят от класса; поэтому выбор класса есть первое решение о структуре.Неизвестная команда вызывает ошибку; движок не пропускает её молча.Каждый класс определяет свои уровни деления: вreportиbookесть\chapter;articleначинается с\section. Диссертацию с главами пишут в классе, в котором они есть.Повторить: Классы документов и параметры страницы
Вопрос 4Университет требует поля 2,5 сантиметра на бумаге A4. Как правильно их задать?
a4paperвыбирает формат бумаги; поля класс определяет по своим пропорциям, а не по требованиям университета.Это не меняет поля, а сдвигает текст, и\hspaceв начале строки, полученной переносом, исчезает; кроме того, это была бы визуальная разметка в теле документа.Размер шрифта не меняет поля страницы.geometry по нескольким размерам вычисляет все размеры страницы, так что они задаются один раз и согласованы между собой.Повторить: Классы документов и параметры страницы
Вопрос 5В документе класса
articleперед\tableofcontentsнаписано\setcounter{tocdepth}{1}. Что показывает оглавление?Число задаёт наибольшую глубину, а не единственный уровень: попадают уровни до 1, то есть разделы.Оглавление пусто только после первой компиляции, из-за проходов;tocdepthего не опустошает.Нумерацией управляет другой счётчик,secnumdepth;tocdepthрешает только, что попадает в оглавление.tocdepthзадаёт самый глубокий уровень, попадающий в оглавление: вarticleраздел имеет уровень 1, а подраздел уровень 2. Подразделы по-прежнему нумеруются в тексте; они лишь исчезают из оглавления.Повторить: Разделы, оглавление и приложения
Вопрос 6В документе класса
articleпосле команды\appendixнаписаны две команды\section. Как они нумеруются?\appendixсуществует именно для того, чтобы изменить нумерацию; без неё приложения были бы просто ещё несколькими разделами.Приложения имеют номер, буквенный, и попадают в оглавление.Нумерация приложений в стандартных классах использует прописные буквы.\appendixсбрасывает нумерацию разделов и переводит её на прописные буквы; вreportиbookона делает то же с главами.Повторить: Разделы, оглавление и приложения
Вопрос 7Автор пишет
\label{sec:methods}в строке перед\section{Методы}, а это раздел 2. Какой номер печатает\ref{sec:methods}?Близости в исходном тексте недостаточно: важен порядок. Написанная раньше, метка не видит номера раздела 2.Метка существует и записывается; после второго прохода она печатает номер, хотя и не тот, который нужен.Ошибки нет; метка ставится после заголовка, а не внутри и не перед ним.\labelне знает, что идёт после неё: она запоминает последний номер, присвоенный перед ней, здесь номер раздела 1. Поэтому её пишут сразу после\section{…}.Повторить: Перекрёстные ссылки
Вопрос 8Что меняется в документе при загрузке пакета hyperref?
Нумерация не меняется; hyperref превращает её в гиперссылки.Проходы по-прежнему нужны: гиперссылки опираются на те же данные вспомогательного файла.Эти названия определяет babel в зависимости от языка; hyperref их не трогает.hyperref не меняет ни номеров, ни текста: он добавляет навигацию. Поэтому его загружают ближе к концу преамбулы, после почти всех пакетов, поведение которых он изменяет.Повторить: Перекрёстные ссылки
Вопрос 9Чем в главном файле диссертации
\include{chapter1}отличается от\input{chapter1}?Они различаются разрывом страницы, вспомогательными файлами и возможностью компилировать только некоторые части.\inputпринимает любой файл, в преамбуле или в теле документа.Ни одна из них не меняет файлы: обе читают их при компиляции.\includeпредназначена для глав: она начинает страницу, ведёт собственный вспомогательный файл для каждой части и допускает выбор;\inputгодится для любого фрагмента, даже внутри абзаца или в преамбуле.Повторить: Длинные документы
Вопрос 10Преамбула диссертации содержит
\includeonly{chapter3}, а тело включает пять глав командами\include. Что даёт компиляция, если диссертация уже была целиком скомпилирована раньше?\includeonlyрешает, какие главы набираются; остальные в PDF не появляются.Так было бы, если бы остальные\includeудалили; с\includeonlyнумерация сохраняется.Остальные файлы на месте; они просто не набираются.Для каждой исключённой главы LaTeX читает вспомогательный файл, оставленный её последней компиляцией, так что нумерация остаётся нумерацией полного документа.Повторить: Длинные документы
Вопрос 11Преамбула содержит
\newcommand{\emph}[1]{\textbf{#1}}. Что происходит?Так сделала бы\renewcommand;\newcommandотказывается переопределять.Имя обозначает одну команду; две команды с одним именем существовать не могут.Определения выполняются в преамбуле, и отвергнутое определение есть ошибка.Эта защита не даёт нечаянно заменить команду LaTeX или пакета. Если её действительно нужно переопределить, используют\renewcommand, понимая, что при этом теряется.Повторить: Макросы и собственная преамбула
Вопрос 12Что печатает
\velichina{5}{km}, если в преамбуле есть\newcommand{\velichina}[2]{#1~#2}?#1есть первый написанный аргумент, 5, и в определении он идёт первым.Тильда является зарезервированным символом: в определении она действует как неразрывный пробел и не печатается.\newcommandпринимает до девяти аргументов, пронумерованных от#1до#9.[2]объявляет два аргумента, а#1и#2получают их по порядку: число и единицу, соединённые тильдой. Команда называет функцию и гарантирует, что тильду никогда не забудут.Повторить: Макросы и собственная преамбула
Загрузка содержимого…