Окружения типа " теорема"
Если вы пишете математический текст, то в этом тексте будет содержаться немалое количество теорем, лемм, определений и тому подобных вещей. Эти элементы математического текста желательно оформлять специальным образом. Например, формулировки теорем часто печатают, для ясности, другим шрифтом, само слово "теорема" также выделяют (третьим) шрифтом и т.д. Чтобы задать такое оформление, в исходном тексте приходится написать довольно много TeX'овских команд, и лучше не повторять этот длинный набор команд много раз, а создать заменяющее его макроопределение, что, в свою очередь, может потребовать некоторого труда (чем-то подобным мы занимались в предыдущих разделах, когда разрабатывали команду \z). Если же вы или редакция, с которой вы имеете дело, не слишком требовательны к деталям оформления, то соответствующие макросы (точнее говоря, новые окружения) легко создать из полуфабрикатов, предоставляемых нам для этих целей LaTeX'ом.
Окружения, используемые в LaTeX'е для оформления фрагментов текста типа "теорема", заранее не определены. Дело в том, что количество различных типов объектов наподобие теоремы, присутствующих в одном тексте, может быть достаточно велико (предложение, утверждение, лемма, определение, замечание,...), так что LaTeX в целях экономии машинной памяти и исходя из того, что на все вкусы таких окружений все равно не напасешься, определять их предоставляет вам. Как это делать, удобнее всего разобрать на примере.
Пусть в нашем тексте присутствуют "предложения". Давайте создадим окружение {predl} таким образом, чтобы можно было, например, писать
\begin{predl} Волга впадает в Каспийское море. \end{predl} \textbf{Доказательство.} См. любую географическую карту.Для создания такого окружения используется команда \newtheorem:
\newtheorem{predl}{Предложение}Как видите, команда \newtheorem имеет два обязательных аргумента: первый - название окружения, которое мы создаем, второй - заголовок нашей "теоремы".
Теперь обсудим, как работают окружения, созданные при помощи команды \newtheorem (будем называть их просто окружениями типа "теорема"). Во-первых, как вы уже заметили, формулировка печатается курсивом, а заголовок — полужирным шрифтом. Во-вторых, абзац, идущий после нашего окружения, начинается с абзацным отступом, если после закрывающей окружение команды \end идет пустая строка, и без отступа в противном случае (так что в этом отношении окружения типа "теорема" ведут себя совершенно аналогично таким окружениям, как {quote}, {itemize} и т.п.). В-третьих, окружение типа " теорема" может иметь необязательный аргумент (как обычно, в квадратных скобках). Текст, стоящий в этих квадратных скобках, будет напечатан в скобках после заголовка "теоремы" и ее номера. Обычно это используется для указания ученого, чьим именем названа "теорема":
При пользовании классами документов, предоставляемыми Американским математическим обществом, появляются дополнительные возможности влиять на оформление "теорем". См. следующий пункт.
Вместе с окружением типа "теорема" автоматически создается и счетчик, хранящий его номер. Имя этого счетчика совпадает с именем окружения (так что в нашем примере счетчик называется predl); чтобы изменить представление на печати номеров наших "теорем", можно обычным образом переопределить соответствующую the-команду. Например, если мы хотим, чтобы предложения нумеровались прописными латинскими буквами, надо в преамбуле написать:
\renewcommand{\thepredl}{\Alph{predl}} " Теоремы", определяемые описанным выше способом, будут иметь сплошную нумерацию на протяжении всего документа. Как мы уже понимаем, это далеко не всегда удобно. Часто хотелось бы сделать так, чтоб, например, в каждом разделе нумерация " теорем" начиналась заново. Для таких целей предусмотрена команда \newtheorem с необязательным аргументом. Этот аргумент ставится после двух обязательных и представляет собой имя того счетчика, которому будет подчинен счетчик нашей " теоремы".
Пусть, например, в нашем тексте есть не только предложения, но и теоремы (без кавычек), и мы хотим, чтобы нумерация теорем начиналась заново в каждом разделе. Тогда можно написать в преамбуле так:
\newtheorem{theorem}{Теорема}[section] После этого можно будет писать, например, вот что:
\begin{theorem} Сумма углов треугольника равна $180^{\circ}$. \end{theorem} Обратите внимание, что, если "теорема" определена таким образом (со счетчиком, подчиненным другому счетчику), то представление ее номера на печати изменяется: при определении
\newtheorem{xyz}[abcd] (счетчик "теоремы" типа xyz подчинен счетчику abcd) команда \thexyz будет определена как
\theabcd.\arabic{xyz} (если вы хотите, чтобы нумерация "теоремы" представлялась на печати иначе, вы опять-таки можете переопределить the-команду).
Наконец, LaTeX предоставляет еще одну возможность нумерации определяемых вами "теорем". Предположим, что кроме теорем в вашем тексте есть еще и леммы, и при этом вы хотите, чтобы леммы и теоремы нумеровались совместно: теорема 2.1, теорема 2.2, затем лемма 2.3, затем теорема 2.4 и т.д. Тогда, предполагая, что окружение {theorem} уже определено, как выше, можно определить окружение {lemma} так:
\newtheorem{lemma}[theorem]{Лемма} В этом случае необязательный аргумент команды \newtheorem располагается между двумя обязательными; этот аргумент - имя того окружения типа "теорема", совместно с которым будет нумероваться определяемая вами "теорема".
Команду \newtheorem можно использовать или с одним необязательным аргументом, или с другим, но не с обоими вместе.