|
Добрый день!
Александр Иосифович, в этот раз, к сожалению, Ваши коды не работают.
Код для оглавления система переваривает, но результата не даёт.
Я подумал, не может ли это быть связано с тем, что оглавление у меня
заносится в закладки командой \pdfbookmark{Contents}{Tableofcontents}
(чтобы "Оглавление" не попадало в само оглавление, а только в
закладки)?
На код для индекса система заругалась, что нельзя в горизонтальном
режиме, поэтому я убрал "\makeatletter ... \makeatother". После этого
заругалась, что "Undefined control sequence" - исправил опечатку
(разные T в "MyTempMacro").
После этого, как и с оглавлением, компилируется, но без нужных изменений.
(Алфавитный указатель попадает и в закладки, и в оглавление при помощи
\addcontentsline{toc}{chapter}{\indexname}.)
Пока ничего не добился - знаний маловато...
----------------------------
Про разницу \Index, \ndex, \Theindex, \theindex, \the и т.п. я понял -
это разные вещи с исторически сложившимися сходными названиями. Надо
просто запомнить и не путать.
23.07.08, Alexander I Rozhenko<CyrTeX-ru@vsu.ru> написал(а):
>
> ----- Original Message -----
> From: "regonly noreply" <CyrTeX-ru@vsu.ru>
> To: "Cyrillic TeX Users Group" <CyrTeX-ru@vsu.ru>
> Sent: Wednesday, July 23, 2008 10:34 AM
> Subject: Re: Пакет ?bookmark? - можно ли задать глобальные настройки?
>
>
>> Александр Иосифович!
>>
>> Спасибо Вам огромное! Ваша идея работает!
>> Сейчас я сделал определения для каждого типа заголовка:
>>
>> % -----------------------------------------------------------
>> \let\OriginalPart\part
>> \def\part{\bookmarksetup{bold}\OriginalPart} % Часть - жирная закладка
>>
>> \let\OriginalChapter\chapter
>> \def\chapter{\bookmarksetup{bold}\OriginalChapter} % Глава - жирная
>> закладка
>>
>> \let\OriginalSection\section
>> \def\section{\bookmarksetup{bold}\OriginalSection} % Раздел - жирная
>> закладка
>>
>> \let\OriginalSubsection\subsection
>> \def\subsection{\bookmarksetup{bold=false}\OriginalSubsection} %
>> Подраздел - обычная
>>
>> \let\OriginalSubsubsection\subsubsection
>> \def\subsubsection{\bookmarksetup{bold=false}\OriginalSubsubsection} %
>> Подподраздел - обычная
>>
>> \let\OriginalParagraph\paragraph
>> \def\paragraph{\bookmarksetup{bold=false}\OriginalParagraph} %
>> Параграф - обычная
>>
>> \let\OriginalSubparagraph\subparagraph
>> \def\subparagraph{\bookmarksetup{bold=false}\OriginalSubparagraph} %
>> Подпараграф - обычная
>> % -----------------------------------------------------------
>>
>> Я попытался сразу задавать "отмену", например так:
>>
>> % -----------------------------------------------------------
>> \let\OriginalChapter\chapter
>> \def\chapter{\bookmarksetup{bold}\OriginalChapter}
>>
>> \addto\OriginalChapter\chapter
>> \def\chapter{\def\bookmarksetup{bold=false}\OriginalChapter} % ошибки
>> % -----------------------------------------------------------
>>
>> или так
>>
>> % -----------------------------------------------------------
>> \let\OriginalChapter\chapter
>> \def\chapter{\bookmarksetup{bold}\OriginalChapter}
>>
>> \addto\@chapter{\def\bookmarksetup{bold=false}} % ошибки
>> % -----------------------------------------------------------
>>
>> и ещё как-то, но либо получаю ошибки, либо нету никаких изменений.
>>
>> Поэтому пришлось дать определение для КАЖДОГО заголовка, иначе все
>> последующие закладки (точнее - нижеследующих уровней иерархии) будут
>> как предыдущие (тоже жирными).
>>
>> Попытался найти описание команды \addto (правда ли, что она добавляет
>> в конец) - не нашёл. Возможно, это есть в книге Кнута, но у меня есть
>> только скан русского издания и английский очень плохой PDF. Я пока не
>> читал, только заглядывал. Оба без возможности поиска, а быстро найти
>> нужное вручную в такой толстенной книге не представляется возможным.
>> Впрочем, \addto нет в предметном указателе, так что и Кнут может не
>> помочь...
>
> Я ошибся. Команду \addto добавляет содержимое в конец. Но использовать её
> можно только с командами без параметров, которые в конце не вызывают других
> команд, берущих параметры из входного потока. Команда определена в пакете
> Babel (файл babel.def).
>
>> Идём дальше. Осталось задать закладки для Библиографии, Предметного
>> указателя и Оглавления (ну и для списка таблиц, формул, иллюстраций
>> тоже).
>
>> % -----------------------------------------------------------
>> \let\OriginalTableofcontent\tableofcontent
>> \def\tableofcontent{\bookmarksetup{bold,color=red165}\OriginalTableofcontent}
>> %не работает!
>>
>> \let\OriginalPrintindex\printindex
>> \def\printindex{\bookmarksetup{bold,color=red165}\OriginalPrintindex}
>> %не работает!
>> % -----------------------------------------------------------
>
> В заголовке оглавления используется одна из стандартных команд вывода
> секций, в зависимости от класса документа. Например, в классе book
> используется \chapter. Если Вы хотите изменить способ оформления закладки
> для содержания, поступайте так
>
> \let\OriginalTableofcontent\tableofcontent
> \def\tableofcontent{\begingroup
> \def\chapter{\bookmarksetup{bold,color=red165}\OriginalChapter}%
> \OriginalTableofcontent\endgroup}
>
> Данное переопределение команды \chapter ограничивается только командой
> \tableofcontent. Вне её будет действовать старое переопределение.
>
> При выводе индекса используется окружение theindex, внутри которого
> заголовок оформляется достаточно специфически. Так в классе book
> используется низкоуровневая команда \@makeschapterhead, которую можно
> аналогичным образом подменить например так:
>
> \makeatletter
> \let\OriginalIndex\theindex
> \def\theindex{\let\MyTempMacro\@makeschapterhead
> \def\@makeschapterhead{\bookmarksetup{bold,color=red165}\MytempMacro}%
> \OriginalIndex}
> \makeatother
>
> Можно, конечно после \OriginalIndex ещё восстановить старое значение команды
> \@makeschapterhead так:
>
> \OriginalIndex \let\@makeschapterhead\MyTempMacro}
>
> но это не обязательно, поскольку оно само восстановится при выходе из
> окружения theindex.
>
>> Это не работает. Если заменить Tableofcontent\tableofcontent и
>> Printindex\printindex на Thetableofcontent\thetableofcontent - тоже.
>> Кстати, в чём разница между the и без него, а также между заглавной
>> буквой и строчной в данном месте?
>
> Разница в том, что это разные команды. Есть специальная команда \the,
> которую можно применять к переменным, счётчикам и другим регистрам TeX'а.
> Она печатает текстовое значение регистра. В остальных случаях the в названии
> команды обычно ничего не означает и появилось исторически. Например, у
> окружения theindex приставка the отличает его от команды \index, которая уже
> определена. Поясню в чём особенность обработки окружений. Последовательность
>
> \begin{foo}
> ...
> \end{foo}
>
> практически эквивалентна командам
>
> \begingroup
> \foo
> ...
> \endfoo
> \endgroup
>
> Это, конечно, не совсем точно, поскольку в командах \begin и \end
> выполняется ещё несколько дополнительных действий, но по сути можно считать
> эти последовательности команд эквивалентными. Как видите, каждому окружению
> соответствует пара команд (\foo и \endfoo). По этой причине нельзя было
> назвать окружение для предметного указателя так: \begin{index}...
> \end{index}, поскольку команда \index уже есть и она служит совсем для
> других целей. Её переопределять с закладками бессмысленно.
>
>> Theindex\theindex не работает тоже, зато работает Index/index
>> (подобрал методом тыка, а не с понятием, к сожалению):
>>
>> % -----------------------------------------------------------
>> \let\OriginalIndex\index
>> \def\index{\bookmarksetup{bold,color=red165}\OriginalIndex}
>> % -----------------------------------------------------------
>>
>> но портит всю картину, меняя цвет и некоторых других закладок:
>>
>> http://s61.radikal.ru/i172/0807/63/d26b6fdbd35e.png (также в приложении)
>>
>> Я очень не люблю неопределённости и хотел бы знать, почему так
>> происходит, хотя проблему можно решить, явно ЗАДАВ ЦВЕТ ДЛЯ ВСЕХ
>> закладок:
>>
>> % -----------------------------------------------------------
>> \let\OriginalPart\part
>> \def\part{\bookmarksetup{bold,color=[rgb]{0,0,0}}\OriginalPart} %
>> Часть - жирная чёрная закладка
>>
>> \let\OriginalChapter\chapter
>> \def\chapter{\bookmarksetup{bold,color=[rgb]{0,0,0}}\OriginalChapter}
>> % Глава - жирная чёрная закладка
>>
>> \let\OriginalSection\section
>> \def\section{\bookmarksetup{bold,color=[rgb]{0,0,0}}\OriginalSection}
>> % Раздел - жирная чёрная закладка
>>
>> \let\OriginalSubsection\subsection
>> \def\subsection{\bookmarksetup{bold=false,color=[rgb]{0,0,0}}\OriginalSubsection}
>> % Подраздел - обычная чёрная
>>
>> \let\OriginalSubsubsection\subsubsection
>> \def\subsubsection{\bookmarksetup{bold=false,color=[rgb]{0,0,0}}\OriginalSubsubsection}
>> % Подподраздел - обычная чёрная
>>
>> \let\OriginalParagraph\paragraph
>> \def\paragraph{\bookmarksetup{bold=false,color=[rgb]{0,0,0}}\OriginalParagraph}
>> % Параграф - обычная чёрная
>>
>> \let\OriginalSubparagraph\subparagraph
>> \def\subparagraph{\bookmarksetup{bold=false,color=[rgb]{0,0,0}}\OriginalSubparagraph}
>> % Подпараграф - обычная чёрная
>>
>>
>> \let\OriginalIndex\index
>> \def\index{\bookmarksetup{bold,color=red165}\OriginalIndex} %
>> Алфавитный указатель - жирная тёмно-красная закладка - портит всю
>> картину, меняя цвет и некоторых других закладок, поэтому вид остальных
>> надо задавать явно.
>> % -----------------------------------------------------------
>>
>> Уф-ф-ф...
>>
>> Осталось разобраться с Оглавлением и его "младшими братьями", а также
>> с Библиографией (которую я пока не трогал). Буду пока пробовать, а от
>> всех TeXпертов с нетерпением жду умных мыслей :)
>>
>
>
> --------------------------------------------------------------------------------
>
>
>> ================================================
>> CyrTeX-ru mailing list Archives and Information:
>> https://info.vsu.ru/Lists/CyrTeX-ru/List.html
>>
>>
>
>
> ================================================
> CyrTeX-ru mailing list Archives and Information:
> https://info.vsu.ru/Lists/CyrTeX-ru/List.html
>
>
|
|