Лекция 6

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

Upload: dawn-henson

Post on 31-Dec-2015

33 views

Category:

Documents


0 download

DESCRIPTION

Лекция 6. Аппарат издания (ссылки, оглавление, индексы). Библиографические ссылки. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Лекция 6

Лекция 6

Аппарат издания

(ссылки, оглавление, индексы)

Page 2: Лекция 6

Библиографические ссылки

• На прошлой лекции я говорил о том, что список литературы формируется внутри обстановки thebibliography. Каждое библиографическое описание оформляется на первый взгляд про-извольно (на самом деле есть очень жесткие правила, в разных странах и разных изданиях различные, но нам это сейчас не суще-ственно). Единственное ТеХ-овское ограничение заключается в том, что каждое описание начинается с команды \bibitem{…}, у которой в скобках написан ключ – условное имя этого описания. Этот ключ можно (и нужно) использовать при ссылках на данное издание в тексте, с помощью команды \cite{…}.

• ТеХ заменяет описания и ссылки одинаковыми номерами (хотя иногда описания не нумеруются, а особым образом кодируются, – этот вопрос лучше сейчас не рассматривать). Для нас главный вопрос – как при характерной для ТеХа однопроходной обработ-ки текста обеспечить согласованность номеров.

Page 3: Лекция 6

Согласование номеров ссылок

• Для согласования ТеХ создает и использует специальный файл с расширением .aux (который используется и для других целей). Каждое вхождение команды \bibitem в разделе библиографии формирует строку в этом файле, такого типа

• \bibcite{AVL}{1} • \bibcite{AndrFal}{2}• \bibcite{4Russians}{3}• \bibcite{Gribov}{4}• Файл, сохранившийся от предыдущей обработки текста, читается

и по мере сил используется при следующей обработке, которая, конечно создает свежий вариант этого файла. Если старый и новый вариант не совпали, ТеХ предупреждает пользователя о несовпадении.

• Ссылки, не имеющие описаний, отмечаются знаком ? и информацией в протоколе обработки.

Page 4: Лекция 6

Метки в тексте

• Часто хочется делать в тексте перекрестные ссылки – отправлять читателя к какому-то месту в прошлом или будущем тексте. Такие ссылки могут указывать на страницу текста или на нумерованный объект – раздел текста, упражнение, рисунок, таблицу, формулу или теорему (или что-то еще). Все такие ссылки организуются по такому же принципу, как библиографические ссылки.

• В нужном (упоминаемом) месте командой \label{key} ставится метка с именем key. В любом месте текста на эту метку можно сослаться. При этом команда \pageref{key} воспроизводит номер страницы, на которой находится ссылка, а команда \ref{key} воспроизводит номер объекта. Таким образом, можно писать

• В теореме \ref{t:Euler} на стр. \pageref{t:Euler} было установлено, что . . .

Page 5: Лекция 6

Информация о метках

• Информация о метках передается, как уже говорилось, через файл .aux отдельными строками вида

• \newlabel{prikr}{{8.9}{200}}• \newlabel{Kruskal}{{8.4}{202}}• Последнее число – всегда номер страницы, а перед ним – номер

объекта, который зависит от типа объекта; автор должен сам разбираться, раздел это, формула или что-то еще.

• Источником информации для этих данных является команда \refstepcounter, с которой мы уже встречались. Эта команда вызывается обычно командами, изменяющими счетчики:

• \chapter – заголовок главы• \section – заголовок параграфа• \subsection – заголовок подпараграфа.• Об этих командах нам еще предстоит много говорить.

Page 6: Лекция 6

Рубрикация текста

• В файле .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}}

Page 7: Лекция 6

Рубрикация (продолжение)

• На самом деле русских букв там нет, они закодированы:• \@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}}

• Я для простоты перекодировал в нормальные буквы все, кроме маленького синего фрагмента.

Page 8: Лекция 6

Что же значат эти строчки?

• Выпишем снова строчки примера, почти удалив тексты.

• \@writefile{toc}{\contentsline {chapter}{\numberline {1.}Неко. . .}{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}}

Page 9: Лекция 6

Команда \@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

Page 10: Лекция 6

Файлы аппарата книги

• Перечисленные на предыдущем слайде файлы создаются при завершении работы над документом. Условием их создания является наличие в документе соответствующих команд (соответствие очевидно):

• \tableofcontents• \listoffigures• \listoftables• Сами по себе эти команды вызывают построение в месте, где

находятся команды, соответственно оглавления, списка рисунков и списка таблиц. Файлы toc, lof и lot дают для них необходимую информацию. Поэтому, очевидно,

• Для построения оглавления и пр. используются файлы предыдущего пропуска.

• Форматирование оглавления и пр. определяется не файлами данных, и изменяется дополнительно.

Page 11: Лекция 6

Список упражнений

• Посмотрим, что я должен был бы сделать, если бы захотел иметь список упражнений по аналогии с уже названными стандартными списками.

• Мне была бы нужна команда \listofexercises (название очевидно, и менять его было бы неправильно), которая читает файл с расширением (каким? Тоже естественно) .loe и переводит содержимое этого файла в нужную форму.

• Кроме того, файл нужно готовить. Имеется команда записи в файл, имеющая формат

• \addcontentsline{ext}{key}{entry}• В нашем случае в качестве ext мы должны записать loe, в

качестве key любое слово (оно используется при формировании оглавления для определения типа записи, а в упражнениях все записи равноправны), в entry поля с номером и страницей.

Page 12: Лекция 6

Список упражнений (продолжение)

• Команду \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

Page 13: Лекция 6

Список упражнений (самое трудное)

• Я не смог быстро написать самое трудное место – подготовку файла для списка упражнений при закрытии документа. На этом я свой пример и закончу.

Page 14: Лекция 6

Снова про команды рубрикации

• Я уже упоминал команды• \chapter • \section • \subsection • К ним еще нужно добавить команды• \part – заголовок части• \subsubsection – заголовок подпункта• \appendix – заголовок приложения.• Все эти команды имеют соответствующие им счетчики,

образующие естественную иерархию. Они готовят данные для ссылок и для оглавления, а также, что очень важно, для так наз. колонтитулов – специального оформления страницы.

Page 15: Лекция 6

Вариант команд рубрикации с *

• У каждой из перечисленных команд рубрикации есть вариант со знаком *, например, кроме команды \section есть команда \section*. При ее использовании не вырабатывается и не изменяется номер (в данном случае параграфа), и информация о заголовке не поступает автоматически в оглавление. Если такая информация требуется, ее нужно добавить так, как это описывалось раньше.

• Не меняются автоматически и колонтитулы. Но этот вопрос мы отложим на более позднее время, о колонтитулах нужно говорить еще много.