Работа в системе LaTeX



         

Оглавление, список иллюстраций и прочее - часть 4


Делают они это также с помощью \addcontentsline, при этом ее второй аргумент (" тип записи") будет section для команды \section, subsection для команды \subsection, — одним словом, " внутреннее имя", под которым LaTeX знает тип разделов документа (напомним, что внутреннее имя передается в качестве первого аргумента команде \@startsection). Стало быть, для модификации стиля оформления строк оглавления, соответствующих \section, надо переопределять команду \l@section, для модификации строк оглавления, соответствующих \subsection, надо переопределять \l@subsection и т.д. Чтобы было понятно, как их переопределять, рассмотрим, как они определены в стандарте.

В классе book команда \l@section определена так:

\newcommand{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}}

Смысл трех выражений, стоящих в фигурных скобках после команды \@dottedtocline, таков. Первое выражение — "уровень вложенности" элемента оглавления. Если этот уровень превышает значение счетчика tocdepth, то команда \@dottedtocline ничего в оглавлении не печатает. Второе выражение — отступ строки оглавления от левого поля. Третье выражение определяет, сколько места в строке оглавления TeX отведет на номер раздела. Результат выглядит на печати так: после отступа, указанного во втором выражении, печатается номер раздела, затем, отступя от начала этого номера столько, сколько сказано в третьем выражении, печатается заглавие раздела. Это сделано для того, чтобы заглавия всех разделов печатались в оглавлении одно под другим. После заглавия идут "лидеры" — ряд точек до завершающего строку номера страницы. Если заглавие в строку не укладывается, то оно обычным образом будет перенесено на следующую строку (если есть какие-то неясности, загляните в оглавление к этой книге). Из сказанного следует, что слишком длинный номер раздела может в оглавлении наложиться на заглавие. Средство борьбы с этим — переопределить команду \l@section (или \l@subsection...), увеличив должным образом второй аргумент команды \@dottedtocline.




Содержание  Назад  Вперед