Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 43
Текст из файла (страница 43)
AMS-LATEXдекларации для определения теорем, которые не нужно нумеровать. Расширенная версия \newtheorem варьирует стиль форматирования теорем в соответствиис указанным декларацией \theoremstyle. Пакет amsthm вводит также процедуру proof (доказательство), которая автоматически добавляет символ в концедоказательства.8.13.1.ТеоремыМатематические трактаты, как правило, формулируют теоремы и содержат ихдоказательства.
Часто также даются формулировки лемм, аксиом, определений,предложений, суждений, замечаний, случаев и т. д. Поскольку все такие теоремоподобные структуры формируют из текстового потока абзацы с хорошо очерченными границами, их естественно оформлять в виде процедур LATEX’а. Стандартные классы печатных документов LATEX’a не могут предусмотреть все зигзагипытливого ума ученых математиков. Однако взамен они предоставляют авторутекста средство для конструирования отсутствующих процедур в виде декларации \newtheorem:\newtheorem{env}{caption}[within]\newtheorem{env}[theorem]{caption}\newtheorem*{env}{caption}(amsthm)Мы не будем напоминать смысл аргументов env, caption, theorem и within, отсылая Читателя за подробностями и примерами к разделу 7.3, так как первые два изперечисленных трёх вариантов \newtheorem имеются в формате LATEX’а.
Пакетamsthm добавляет *-форму декларации \newtheorem, которая вводит процедуруenv, не использующую автоматическую нумерацию. В результате её примененияпример со стр. 165 теперь выглядит так:\newtheorem*{Fermat}{Теорема Ферма}\begin{Fermat}Нет целых чисел $n>2$, $x$, $y$и $z$ таких, что $x^n+y^n=z^n$.\end{Fermat}8.13.2.Теорема Ферма. Нет целых чиселn > 2, x, y и z таких, чтоxn + y n = z n .Стиль теоремыПакет amsthm вводит понятие «стиль теоремы» и соответствующую декларацию\theoremstyle{style}(amsthm)которая осуществляет выбор стиля style.
От этого выбора зависит, как будетоформлен текст теоремы. Существуют три стиля: plain, definition и remark.Стиль plain, используемый по умолчанию, печатает текст курсивом, тогда какdefinition и remark курсив не используют. Другие детали оформления теоремымогут изменяться в зависимости от выбора класса печатного документа.8.13. Теоремы и теоремоподобные структуры207Теоремоподобная процедура использует тот стиль, который действовал на момент её определения. Следовательно, декларация \theoremstyle должна предшествовать \newtheorem. На практике следует собрать декларации \newtheoremв одном месте входного файла (лучше всего в преамбуле), разделить на группыи перед каждой группой вставить \theoremstyle{style}.\theoremstyle{plain}\newtheorem{Theorem}{Теорема}[section] %\newtheorem{Lemmma}[Theorem]{Лемма}\newtheorem{Proposition}[Theorem]{Утверждение}\newtheorem*{Fermat}{Теорема Ферма}\theoremstyle{definition}\newtheorem{Axiom}{Аксиома}[section]\newtheorem{Sequence}{Следствие}[section]\newtheorem{Example}{Пример}[section]\theoremstyle{remark}\newtheorem*{Remark}{Замечание}\newtheorem{Case}{Случай}В этом примере новые процедуры Theorem, Lemmma и Proposition определенытак, что будут использовать стиль plain и будут нумероваться единым счётчиком Theorem.
Следующая группа процедур: Axiom, Sequence и Example — использует стиль definition, а их нумерация независима в пределах каждого раздела,начинающегося с команды \section. Наконец, процедуры Remark и Case оформляются в стиле remark.
Процедура Remark не нумеруется, а Case имеет сплошнуюнумерацию в пределах всего печатного документа.Если \theoremstyle вообще отсутствует, используется стиль plain.Ещё один вариант стиля теорем, разрешаемый пакетом amsthm, заключаетсяв возможности перестановки номера теоремы и её заголовка (аргумент captionдекларации \newtheorem). В результате перестановки номер теоремы печатаетсяслева от заголовка, а не справа. Перестановка будет осуществлена, если вставитьдекларацию\swapnumbers(amsthm)перед списком деклараций \newtheorem, на которые нужно воздействовать. В результате следующих определений\theoremstyle{definition}{\swapnumbers \newtheorem{Axiom}{Аксиома}[section]}\newtheorem{Sequence}{Следствие}[section]заголовки Аксиомы и Следствия будут напечатаны в форме «1.1. Аксиома.» и«Следствие 1.1.»2088.13.3.Глава 8.
AMS-LATEXДоказательстваПроцедура\begin{proof}[caption] . . . \end{proof}(amsthm)форматирует доказательства теорем.\begin{proof}...следовательно $G(t)=L\gamma!\,t^{-\gamma} + t^{-\delta}\eta(t)$\end{proof}Доказательство.. . . следовательно G(t)t−δ η(t)=Lγ! t−γ +Она печатает заголовок «Доказательство» (или «Proof», если опция russian неуказана при загрузке пакета babel), а в конце доказательства ставит знак («чтои требовалось доказать»).
Процедура proof предназначается для коротких доказательств, занимающих не более одной-двух страниц. Более длинные доказательства целесообразно оформить в виде специального раздела, используя командысекционирования \section или \subsection.Заголовок процедуры proof, печатаемый по умолчанию, хранится в команде\proofname(amsthm)При необходимости \proofname можно изменить при помощи \renewcommand.
Например:\renewcommand{\proofname}{Доказательство}Необязательный аргумент caption процедуры proof служит примерно той жецели. Он позволяет заменить текущее значение заголовка на какое-нибудь иное,например:\begin{proof}[Доказательство Основной Теоремы]Однако на следующий вызов процедуры proof это значение заголовка, естественно, не распространяется.Признак конца доказательства хранится в команде\qedsymbol(amsthm)Её также можно переопределить посредством \renewcommand. Для длинного доказательства, напечатанного без использования процедуры proof, символ вместе со стандартным пробелом перед ним можно набрать, используя команду\qed(amsthm)Размещение символа может не удовлетворить придирчивого Читателя, еслидоказательство заканчивается выключным уравнением или чем-то в этом роде.Выход из затруднительного положения можно найти, разместив \qed в подходящем месте доказательства.8.13.
Теоремы и теоремоподобные структуры\begin{proof}...следовательно\begin{equation}G(t)=L\gamma!\,t^{-\gamma} +t^{-\delta}\eta(t)\qed\end{equation}\renewcommand{\qed}{}\end{proof}209Доказательство.. . . следовательноG(t) = Lγ! t−γ + t−δ η(t)(8.25)Здесь \renewcommand{\qed}{} «обнуляет» команду \qed перед завершением процедуры proof, чтобы она не напечатала признак конца доказательства повторно.Эффект «обнуления» локализован командной скобкой \end между границамипроцедуры proof по обычным правилам группирования, действующим в LATEX’e(раздел 2.4).Бокс — это искусство или спорт?Архив КВНГлава 9Боксы и что там внутриВ переводе с английского языка слово box (бокс) означает ящик. По терминологии LATEX’а боксом называется прямоугольник, который независимо от его размеров и содержимого не может быть расщеплён на части, и поэтому его нельзяпо частям перенести на следующую строку или страницу.
Например, LATEX считает, что каждая буква упакована в свой маленький ящик-бокс, как показано нарис. 9.1. Буква может вылезать за пределы бокса, так что бокс и изображение, за-Рис. 9.1. Бокс в LATEX’е. Изображение буквы g справа выходит за пределы боксаключённое в нём,— это совсем разные вещи. Боксы — это кирпичики, из которыхLATEX строит здание печатного документа. Для успешного строительства LATEXдолжен знать только размеры кирпичиков-боксов, а не то, как устроен каждый изних.
Каждый бокс имеет точку привязки (reference point). Если бокс не вращали,точка привязки расположена на его левой грани. Через точку привязки проходит базисная линия бокса (baseline). Выстраивая из букв слова и строки, LATEXразмещает боксы с запакованными в них буквами так, что все точки привязкирасполагаются на одной базисной линии, а вертикальные грани боксов-букв вслове накрепко склеены, как показано на рис. 9.2. Аналогичным образом LATEXпоступает с боксами, содержащими любые другие объекты, например рисунки.Если между двумя боксами с рисунками нет пробела в исходном тексте, то онибудут склеены так же, как две соседние буквы в слове.Каждый бокс характеризуется высотой, глубиной и шириной, которые обозначаются соответственно как height, depth и width.
Смысл этих параметров211Рис. 9.2. Склейка букв в словодолжен быть понятен из рис. 9.1. Полная высота бокса totalheight есть расстояние между его верхней и нижней гранями, равное сумме height и depth.В предыдущих главах мы уже встречали примеры боксов больших размеров.Такие боксы производит процедура array (раздел 6.4.5), используемая для набора матриц в математических формулах. Неоднократно упоминавшаяся команда\mbox производит так называемые строковые боксы. Всего же существуют боксычетырёх видов:• строковые боксы (LR1 боксы), в которых текст обрабатывается в текстовоймоде, но не разбивается на строки;• текстовые боксы (парбоксы), в которых LATEX работает в текстовой моде;• линейные боксы (плашки), представляющие собой чёрные прямоугольники;• графические боксы (рисунки), образуемые процедурой picture, о котороймы расскажем в данной главе.Команды и процедуры, формирующие боксы, могут использоваться в любом режиме: текстовом, строковом, математическом, графическом.
Приступая к форматированию текста в боксах, LATEX применяет декларации, действовавшие наэтот момент. Исключение составляют боксы в математических формулах. Поскольку специальный математический шрифт применяется только в формулах,внутри текстового (строкового) бокса восстанавливается шрифт, использовавшийся непосредственно перед переключением LATEX’а в математическую моду.Фрагмент текста, переданный в бокс, обычно содержится в аргументе какихлибо команд или теле процедур, поэтому декларации внутри этого фрагменталокальны для соответствующего бокса.Бокс большого размера часто размещают в отдельной строке, для чего используют процедуру center (раздел 5.1).
Ценителям оригинального жанра можно рекомендовать процедуру displaymath, которая допускает краткую запись\[...\] (раздел 6.1). Очень большие текстовые боксы и рисунки размещают какплавающие объекты посредством процедур table или figure (глава 11).Рассмотрим теперь каждый тип боксов в отдельности.1От английского Left to Right (слева направо).2129.1.Глава 9. Боксы и что там внутриСтроковые боксыКоманды\makebox[width][hpos]{lr-text}\framebox[width][hpos]{lr-text}\mbox{lr-text}\fbox{lr-text}печатают текст, обозначенный здесь как lr-text, в строковой моде. Команды\framebox и \fbox отличаются от двух других тем, что обводят бокс рамкой.При отсутствии опций команды \makebox и \framebox совершенно идентичнысоответственно командам \mbox и \fbox. Команды \makebox, \framebox хрупкие, как и большинство команд с необязательными аргументами.Ширина бокса подбирается равной естественной ширине текста, содержащегося в lr-text, за исключением случая, когда у команд \makebox или \frameboxуказан необязательный аргумент width.