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



         

Организация автоматических ссылок - часть 2


Например, команда для вывода на печать номера раздела называется \thesection, для вывода на печать номера главы — \thechapter, команды для вывода на печать определенных нами счетчиков slave и master — \theslave и \themaster. При создании счетчика автоматически определяется и соответствующая the-команда. Именно, при создании счетчика по имени, скажем, abcd автоматически определяется команда \theabcd таким образом:

\newcommand{\theabcd}{\arabic{abcd}}

В дальнейшем эту команду можно переопределять:

 \parindent=0cm \newcommand{\theabcd}{\arabic{abcd}} \renewcommand{\theabcd}% {\Roman{abcd}} \setcounter{abcd}{14} Людовика \theabcd{} звали ``Король-Солнце''.
\renewcommand{\theabcd}% {\Roman{abcd}} \setcounter{abcd}{14} Людовика \theabcd{} звали ``Король-Солнце''.

Мы же, чтобы при ссылках перед номером задачи печатался номер раздела, в котором находится эта задача, и точка, переопределим команду \thezadacha так:

\renewcommand{\thezadacha}{\thesection.\arabic{zadacha}}

Если включить эту команду в преамбулу документа, то ссылки на сгенерированные нашей командой \z номера задач будут выглядеть должным образом.

В нашем переопределении команды \thezadacha мы воспользовались командой \thesection, чтобы наши макросы правильно работали с любым классом документов. Дело в том, что при разумном оформлении номер раздела, предшествующий при ссылке номеру задачи, должен печататься таким же образом, как и номер раздела при ссылке на раздел, а это в разных классах делается по-разному: в классе article, например, \thesection — это то же самое, что и \arabic{section} (иными словами, ссылка на раздел, сгенерированная командой \ref, печатает просто номер раздела), а в классе report команда \ref при печати ссылки на раздел печатает не номер раздела, а номер главы, точку и номер раздела. Поскольку мы написали \thesection, все эти тонкости будут учтены автоматически.

Приведем еще один (игрушечный) пример использования счетчиков в макроопределениях, отчасти чтобы еще раз продемонстрировать применение подчиненных счетчиков, а отчасти чтобы убедить читателя, что не боги горшки обжигают. Именно, давайте разработаем свои собственные команды для создания разделов документа, не полагаясь на \chapter, \section и т.п.


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