|
Здравствуйте все, а особенно Александр Иосифович Роженко!
Тема тогда заглохла, пишу в продолжение:
https://info.vsu.ru/Lists/CyrTeX-ru/Message/7951.html
https://info.vsu.ru/Lists/CyrTeX-ru/Message/7955.html
https://info.vsu.ru/Lists/CyrTeX-ru/Message/7958.html
https://info.vsu.ru/Lists/CyrTeX-ru/Message/7993.html
https://info.vsu.ru/Lists/CyrTeX-ru/Message/7994.html
Кажется, нашёл загвоздку!
Итак...
Если заголовки очень длинные, то для колонтитулов и оглавления часто
изпользуют их сокращённые варианты. Но это не всегда возможно и не
всегда желательно. Для того, чтобы длинные заголовки в оглавлении не
наезжали на номера страниц и хорошо смотрелись, можно увеличить
горизонтальное расстояние между заголовками и номерами страниц.
Средствами LaTeX это делается так:
\newcommand\@tocrmarg{2.55em} --- определено в классе (здесь значение для book)
поменяем:
\makeatletter
\renewcommand{\@tocrmarg}{10em} % LaTeX ToC --- отступ заголовка от номера стр.
\makeatother
а пакет tocloft предоставляет для этого специальную команду:
\usepackage[titles]{tocloft}
\cftsetrmarg{6em} % tocloft --- отступ заголовка от номера стр.
Команда \cftsetrmarg на самом деле представляет собой то же самое:
\newcommand{\cftsetrmarg}[1]{\renewcommand{\@tocrmarg}{#1}}
К сожалению, в классе ncc или при загрузке пакета nccsect не работает
ни то, ни другое. Выяснилось, что картину портит команда \NCC@setpnum,
которая в файле nccsect.sty определена так:
\def\NCC@setpnum{%
\settowidth\@tempdima{\NCC@pnum}%
\edef\@pnumwidth{\the\@tempdima}%
\advance\@tempdima 1em
\edef\@tocrmarg{\the\@tempdima \noexpand\NCC@tocdrift}%
}
Если её выключить, например, так:
\renewcommand*{\NCC@setpnum}{}
то \@tocrmarg снова будет работать. Зато не будет работать команда
\PnumPrototype пакета nccsect для задания ширины места, отведённого
под номера страниц. В файле nccsect.sty она определена так:
\newcommand*{\PnumPrototype}[1]{\def\NCC@pnum{#1}\NCC@setpnum}
\@onlypreamble\PnumPrototype
\def\NCC@setpnum{%
\settowidth\@tempdima{\NCC@pnum}%
\edef\@pnumwidth{\the\@tempdima}%
\advance\@tempdima 1em
\edef\@tocrmarg{\the\@tempdima \noexpand\NCC@tocdrift}%
}
Но к счастью, в LaTeX имеется собственная команда, переопределив
которую, можно задать этот размер. В классе book задано так:
\newcommand{\@pnumwidth}{1.55em}
Я пока не всё проверил, но вроде бы работает. В остальном ncc и пакет
tocloft вроде бы не конфликтуют.
Конечно, если обнулить нужную вещь команду, то будут утрачены какие-то
возможности ncc для настройки оглавления --- проверю со временем. Но
мне лично пакет tocloft нравится больше. Насколько я вижу, возможности
по оформлению одинаковые, но у tocloft настройки намного понятнее для
пользователя.
_____________________________
Непонятно вот что: в ncc есть команда \TOCMarginDrift{размер},
которая, как я понял, как раз и должна менять \@tocrmarg, но у меня
она почему-то не работает даже в «чистом» ncc безо всяких tocloft. В
файле nccsect.sty она определена так:
\newcommand*\TOCMarginDrift[1]{%
\def\@tempa{#1}%
\ifx\@tempa\@empty \let\NCC@tocdrift\@empty
\else \def\NCC@tocdrift{\@plus #1\relax}\fi
}
|
|