Лекция 6 Аппарат издания (ссылки, оглавление, индексы)

advertisement
Лекция 6
Аппарат издания
(ссылки, оглавление, индексы)
Библиографические ссылки
• На прошлой лекции я говорил о том, что список литературы
формируется внутри обстановки thebibliography. Каждое
библиографическое описание оформляется на первый взгляд произвольно (на самом деле есть очень жесткие правила, в разных
странах и разных изданиях различные, но нам это сейчас не существенно). Единственное ТеХ-овское ограничение заключается в
том, что каждое описание начинается с команды \bibitem{…},
у которой в скобках написан ключ – условное имя этого описания.
Этот ключ можно (и нужно) использовать при ссылках на данное
издание в тексте, с помощью команды \cite{…}.
• ТеХ заменяет описания и ссылки одинаковыми номерами (хотя
иногда описания не нумеруются, а особым образом кодируются, –
этот вопрос лучше сейчас не рассматривать). Для нас главный
вопрос – как при характерной для ТеХа однопроходной обработки текста обеспечить согласованность номеров.
Согласование номеров ссылок
• Для согласования ТеХ создает и использует специальный файл с
расширением .aux (который используется и для других
целей). Каждое вхождение команды \bibitem в разделе
библиографии формирует строку в этом файле, такого типа
•
•
•
•
\bibcite{AVL}{1}
\bibcite{AndrFal}{2}
\bibcite{4Russians}{3}
\bibcite{Gribov}{4}
• Файл, сохранившийся от предыдущей обработки текста, читается
и по мере сил используется при следующей обработке, которая,
конечно создает свежий вариант этого файла. Если старый и
новый вариант не совпали, ТеХ предупреждает пользователя о
несовпадении.
• Ссылки, не имеющие описаний, отмечаются знаком ? и
информацией в протоколе обработки.
Метки в тексте
• Часто хочется делать в тексте перекрестные ссылки – отправлять
читателя к какому-то месту в прошлом или будущем тексте. Такие
ссылки могут указывать на страницу текста или на нумерованный
объект – раздел текста, упражнение, рисунок, таблицу, формулу или
теорему (или что-то еще). Все такие ссылки организуются по такому
же принципу, как библиографические ссылки.
• В нужном (упоминаемом) месте командой \label{key} ставится
метка с именем key. В любом месте текста на эту метку можно
сослаться. При этом команда \pageref{key} воспроизводит номер
страницы, на которой находится ссылка, а команда \ref{key}
воспроизводит номер объекта. Таким образом, можно писать
• В теореме \ref{t:Euler} на стр. \pageref{t:Euler} было
установлено, что . . .
Информация о метках
• Информация о метках передается, как уже говорилось, через файл
.aux отдельными строками вида
• \newlabel{prikr}{{8.9}{200}}
• \newlabel{Kruskal}{{8.4}{202}}
• Последнее число – всегда номер страницы, а перед ним – номер
объекта, который зависит от типа объекта; автор должен сам
разбираться, раздел это, формула или что-то еще.
• Источником информации для этих данных является команда
\refstepcounter, с которой мы уже встречались. Эта команда
вызывается обычно командами, изменяющими счетчики:
• \chapter
– заголовок главы
• \section
– заголовок параграфа
• \subsection – заголовок подпараграфа.
• Об этих командах нам еще предстоит много говорить.
Рубрикация текста
• В файле .aux есть еще и такие строчки
• \@writefile{toc}{\contentsline {chapter}{\numberline
{1.}Некоторые определения из теории множе\IeC {\cyrs
}\IeC {\cyrt }\IeC {\cyrv }}{6}}
• \@writefile{toc}{\contentsline {section}{\numberline
{1.1.}Основные определения}{6}}
• \@writefile{toc}{\contentsline {section}{\numberline
{1.2.}Прямое произведение}}{7}}
• \@writefile{toc}{\contentsline {section}{\numberline
{1.3.}Разбиения}{9}}
• \@writefile{lof}{\contentsline {figure}{\numberline
{1.1}{\ignorespaces На левом рисунке разбиение
крупнее чем на правом.}}{10}}
Рубрикация (продолжение)
• На самом деле русских букв там нет, они закодированы:
• \@writefile{toc}{\contentsline {chapter}{\numberline {1.}
\IeC {\CYRN }\IeC {\cyre }\IeC {\cyrk }\IeC {\cyro }\IeC
{\cyrt }\IeC {\cyro }\IeC {\cyrr }\IeC {\cyrery }\IeC
{\cyre } \IeC {\cyro }\IeC {\cyrp }\IeC {\cyrr }\IeC {\cyre
}\IeC {\cyrd }\IeC {\cyre }\IeC {\cyrl }\IeC {\cyre }\IeC
{\cyrn }\IeC {\cyri }\IeC {\cyrya } \IeC {\cyri }\IeC
{\cyrz } \IeC {\cyrt }\IeC {\cyre }\IeC {\cyro }\IeC {\cyrr
}\IeC {\cyri }\IeC {\cyri } \IeC {\cyrm }\IeC {\cyrn }\IeC
{\cyro }\IeC {\cyrzh }\IeC {\cyre }\IeC {\cyrs }\IeC {\cyrt
}\IeC {\cyrv }}{6}}
• Я для простоты перекодировал в нормальные буквы все, кроме маленького
синего фрагмента.
Что же значат эти строчки?
• Выпишем снова строчки примера, почти удалив
тексты.
• \@writefile{toc}{\contentsline
{1.}Неко. . .}{6}}
• \@writefile{toc}{\contentsline
{1.1.}Основ. . .}{6}}
• \@writefile{toc}{\contentsline
{1.2.}Прям. . .}}{7}}
• \@writefile{toc}{\contentsline
{1.3.}Разб. . .}{9}}
• \@writefile{lof}{\contentsline
{1.1}{\ignorespaces На ле. . .
{chapter}{\numberline
{section}{\numberline
{section}{\numberline
{section}{\numberline
{figure}{\numberline
ом.}}{10}}
Команда
\@writefile{fn}{txt}
• Мы ясно видим команды, очевидно, записи в файл, у которой
первый параметр – это условное имя файла, а второй параметр –
записываемая строка. Например, две последние строки:
• \@writefile{toc}{\contentsline {section}{\numberline
{1.3.}Разб. . .}{9}}
• \@writefile{lof}{\contentsline {figure}{\numberline
{1.1}{\ignorespaces На ле. . . ом.}}{10}}
• Первая строка записывается в файл с расширением toc, а вторая в
файл с расширением lof. А еще есть файл lot. Это аббревиатуры для
• table of contents
• list of figures
• list of tables
Файлы аппарата книги
• Перечисленные на предыдущем слайде файлы создаются при
завершении работы над документом. Условием их создания
является наличие в документе соответствующих команд
(соответствие очевидно):
• \tableofcontents
• \listoffigures
• \listoftables
• Сами по себе эти команды вызывают построение в месте, где
находятся команды, соответственно оглавления, списка рисунков
и списка таблиц. Файлы toc, lof и lot дают для них
необходимую информацию. Поэтому, очевидно,
• Для построения оглавления и пр. используются файлы
предыдущего пропуска.
• Форматирование оглавления и пр. определяется не файлами
данных, и изменяется дополнительно.
Список упражнений
• Посмотрим, что я должен был бы сделать, если бы захотел иметь
список упражнений по аналогии с уже названными стандартными
списками.
• Мне была бы нужна команда \listofexercises (название
очевидно, и менять его было бы неправильно), которая читает
файл с расширением (каким? Тоже естественно) .loe и
переводит содержимое этого файла в нужную форму.
• Кроме того, файл нужно готовить. Имеется команда записи в
файл, имеющая формат
• \addcontentsline{ext}{key}{entry}
• В нашем случае в качестве ext мы должны записать loe, в
качестве key любое слово (оно используется при формировании
оглавления для определения типа записи, а в упражнениях все
записи равноправны), в entry поля с номером и страницей.
Список упражнений (продолжение)
• Команду \listofexercises нужно писать по аналогии с
\listoftables, которую можно найти в описаниях стилей
ТеХа
• \newcommand\listoftables{% сделаем \listofexercises
•
\section*{\listtablename\@mkboth%
•
{\MakeUppercase\listtablename}%
•
{\MakeUppercase\listtablename}}%
•
\@starttoc{lot}} % сделаем loe
• \let\l@table\l@figure
• Ясно, что здесь нужно ввести команду (прямо и введем)
•
\newcommand\listexercisename{Список упражнений}
• и заменить копирование команды для строки списка
\let\l@exercise\l@figure
Список упражнений (самое трудное)
• Я не смог быстро написать самое трудное место – подготовку
файла для списка упражнений при закрытии документа. На этом я
свой пример и закончу.
Снова про команды рубрикации
•
•
•
•
•
•
•
•
•
Я уже упоминал команды
\chapter
\section
\subsection
К ним еще нужно добавить команды
\part
– заголовок части
\subsubsection – заголовок подпункта
\appendix
– заголовок приложения.
Все эти команды имеют соответствующие им счетчики,
образующие естественную иерархию. Они готовят данные для
ссылок и для оглавления, а также, что очень важно, для так наз.
колонтитулов – специального оформления страницы.
Вариант команд рубрикации с *
• У каждой из перечисленных команд рубрикации есть вариант со
знаком *, например, кроме команды \section есть команда
\section*. При ее использовании не вырабатывается и не
изменяется номер (в данном случае параграфа), и информация о
заголовке не поступает автоматически в оглавление. Если такая
информация требуется, ее нужно добавить так, как это
описывалось раньше.
• Не меняются автоматически и колонтитулы. Но этот вопрос мы
отложим на более позднее время, о колонтитулах нужно говорить
еще много.
Download