|
На вскидку сказать не могу. Надо смотреть Ваш код. Какие классы используете и как. Тогда можно будет покопаться и найти решение. И ещё мне нужно точно понимать чего Вы хотите. Чтобы не грузить рассылку, можете выслать мне примеры на адрес
arozhenko at oapmg point sscc point ru
С уважением,
Александр Роженко
----- Original Message ----- From: "regonly noreply" <CyrTeX-ru@vsu.ru>
To: "Cyrillic TeX Users Group" <CyrTeX-ru@vsu.ru>
Sent: Thursday, July 24, 2008 3:46 PM
Subject: Re: Пакет ?bookmark? - можно ли задать глобальные настройки?
Добрый день!
Александр Иосифович, в этот раз, к сожалению, Ваши коды не работают.
Код для оглавления система переваривает, но результата не даёт.
Я подумал, не может ли это быть связано с тем, что оглавление у меня
заносится в закладки командой \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
================================================
CyrTeX-ru mailing list Archives and Information:
https://info.vsu.ru/Lists/CyrTeX-ru/List.html
|
|