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



   Застеклить квартиру пластиковыми окнами цена остекление балконов и лоджий под ключ цена.        

Отношение подчинения между счетчиками - часть 2


Разумеется, в момент выполнения команды \newcounter с необязательным аргументом счетчик, имя которого дается в квадратных скобках, должен уже существовать.

Надо еще уточненить, в каких случаях значение подчиненного счетчика устанавливается в нуль. В самом деле, пусть счетчик slave подчинен счетчику master; тогда команда

\addtocounter{master}{1}

никоим образом не повлияет на значение подчиненного счетчика \slave: изменение значений счетчика влияет на значения подчиненных ему счетчиков только в том случае, если значение подчиняющего счетчика изменялось с помощью специальных команд. Таких команд всего две, из них чаще всего используется \refstepcounter: она увеличивает на единицу значение указанного ей счетчика, а значения всех подчиненных ему счетчиков устанавливает в нуль. Пусть, например, в нашем тексте определены два счетчика:

\newcounter{master} \newcounter{slave}[master]

Тогда после выполнения команд

\setcounter{master}{10} \setcounter{slave}{10}

значения обоих счетчиков станут равны

10
, после выполнения команды

\addtocounter{master}{1}

значение счетчика master станет равно

11
и значение счетчика slave не изменится, а вот после выполнения команды

\refstepcounter{master}

значение счетчика master станет равно

12
, в то время как значение счетчика slave станет равно нулю.

Наряду с \refstepcounter существует еще одна команда, изменяющая значение счетчика таким образом, что значения всех подчиненных ему счетчиков устанавливаются в нуль. Эта команда называется \stepcounter; она также увеличивает на единицу значение счетчика, имя которого является ее аргументом, и при этом обнуляет все подчиненные ему счетчики, но она непригодна для организации автоматических ссылок, вследствие чего область ее применения более ограничена.

Хороший пример использования подчиненных счетчиков дают стандартные LaTeX'овские классы документов. Например, в классе book перед началом обработки текста выполняются следующие команды:

\newcounter{part} \newcounter{chapter} \newcounter{section}[chapter] \newcounter{subsection}[section] \newcounter{subsubsection}[subsection] \newcounter{paragraph}[subsubsection] \newcounter{subparagraph}[paragraph]

Стало быть, нумерация глав не зависит от нумерации частей (если третья часть книги завершается десятой главой, то четвертая часть начинается с одиннадцатой главы), а нумерация разделов уже начинается заново в каждой главе.




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