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



         

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


Вернемся последний раз к нашей команде \z. Раз она автоматически нумерует задачи, то неплохо было бы, если б пронумерованные ею задачи можно было метить командой \label и ссылаться на эти метки командой \ref ссылка на счетчик, определенный пользователем} (проблема именно в ней, поскольку команда \pageref, дающая номер страницы, сработает в любом случае). Если коротко, то решение этой проблемы таково: увеличивать на единицу значение счетчика \ctr{zadacha} надо не с помощью команды \addtocounter, которой мы пользовались до сих пор, а с помощью команды \refstepcounter, о которой уже шла речь по другому поводу в предыдущем разделе. Если мы определим команду \z так:

\newcommand{\z}{\par\refstepcounter{zadacha}% \textbf{Задача \arabic{section}.\arabic{zadacha}.} }

то после этого можно будет написать, например, так:

\z Решить уравнение... \z Доказать...\label{prove} \z Найти сумму...

Если теперь в другом месте текста мы сошлемся на помеченную задачу так:

В задаче \ref{prove} предлагалось доказать...

то будет печататься ее номер (тот самый, который LaTeX автоматически ей присвоил). Впрочем, с такими автоматическими ссылками не все будет благополучно: если помеченная нами задача была второй по счету в разделе номер 3, то называться она будет Задача 3.2, а вот ссылка на нее, сгенерированная командой \ref, будет выглядеть просто

В задаче 2 предлагалось доказать...

в то время как хотелось бы автоматически получить В задаче 3.2. Иными словами, надо изменить текст, генерируемый командой \ref. Чтобы узнать, как этого добиться, нам придется познакомиться с еще одной LaTeX'овской конструкцией, связанной со счетчиками.

Мы уже знаем, что значение LaTeX'овского счетчика можно вывести на печать командами \arabic, \roman и т.п. Однако, кроме этого, с каждым счетчиком связана индивидуальная команда, определяющая, в какой форме его значение будет выводиться на печать, и именно в соответствии с этой командой печатается ссылка, сгенерированная с помощью \label и \ref. Имя этой команды получается, если поставить the перед именем счетчика.


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