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



         

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


\leftskip + \parfillskip = @pnumwidth - \@pnumwidth =0,

от края, так что номер страницы будет все-таки прижат вправо.

Между \@pnumwidth и \@tempdima есть существенная разница. Команда \@pnumwidth всегда определяет только место, отводимое на номер страницы, и эту команду можно переопределять в стилевом пакете. С другой стороны, параметр \@tempdima используется LaTeX'ом для самых разных целей (в основном — для временного хранения различных длин в процессе каких-то вычислений), и он может измениться в процессе выполнения очень многих LaTeX'овских команд, так что присваивать ему какое-то значение в стилевом пакете совершенно бессмысленно — все равно после этого оно сто раз изменится. Как мог заметить читатель, значение этому параметру присваивается в начале исполнения команды \l@chapter, и именно это значение принимается в расчет в дальнейшем. Поэтому, если вы захотите отводить на номер главы, скажем, 2em вместо 1.5em, то вам придется переопределить команду \l@chapter, заменив третью строку на

\@tempdima=2em

Нужда в таком переопределении \l@chapter возникает, например, если мы переопределяем команду \thechapter, чтобы номер печатался римскими цифрами (как в книге, которую вы читаете). Далее, #1 - это, как уже было сказано, номер и заглавие главы. Точнее говоря, на месте #1 печатается такой текст (будем считать, что глава называется "Все о слонах"):

\makebox[\@tempdima][l]{\thechapter}Все о слонах

Таким образом, величина отступа от левого поля до названия главы всегда равна \@tempdima; если номер занимает больше места, чем \@tempdima, то он наложится на название.

Команда \hfil в двенадцатой строке обеспечивает пробел между названием главы и номером страницы. Если вы хотите заполнить этот пробел лидерами, можете в определении \l@chapter заменить \hfil на, скажем,

\leaders\hbox to .5em{\hss.\hss}\hfil

(автор не гарантирует, что именно при таком выборе параметров лидеры будут выглядеть красиво).

Наконец, команды \pagebreak[3] в начале и \nopagebreak[3] в конце играют следующую роль: первая из них призывает LaTeX не печатать, по возможности, строку оглавления, соответствующую главе, внизу страницы, а вторая — не разрывать страницу сразу после строки, посвященной главе (опять же по возможности).




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