Текст
                    ББК 32.973-018.1 72.4 74 76.17
Беляков Николай Сергеевич,
Палош Виталий Евгеньевич,
Садовский Петр Алексеевич
для всех: Оформление учебных и научных работ в системе
M.: Книжный дом «ЛИБРОКОМ», 2009. — 208 с.
Настоящая книга посвящена набору и верстке текстов в системе TftX, широко
используемой в мире для оформления математических и технических
материалов. Читатель познакомится с основами языка T^X и его расширения ЖЩХ.
На основе дистрибутива Mik'^jX рассмотрены основные возможности системы
ВД^Х с учетом доступных пакетов расширений. Приведены примеры и показаны
варианты использования возможностей системы.
Приведенные предметный указатель и приложения позволяют использовать
книгу в качестве справочника.
Книга может быть полезна школьникам, студентам, аспирантам и
преподавателям всех направлений, научным работникам и инженерам всех отраслей, а также
всем тем, кто интересуется оформлением печатных работ и хочет максимально
аккуратно готовить тексты для печати.
Издательство «Книжный дом "ЛИБРОКОМ"».
117312, Москва, пр-т Шестидесятилетия Октября, 9.
Формат 60x90/16. Печ. л. 13. Зак.№2409.
Отпечатано в OOO «ЛЕНАНД».
117312, Москва, пр-т Шестидесятилетия Октября, llA, стр 11.
ISBN 978-5-397-00650-7
© Книжный дом «ЛИБРОКОМ», 2009
НАУЧНАЯ И УЧЕБНАЯ ЛИТЕРАТУРА
E-mail: URSS@URSS.ru
Каталог изданий в Интернете:
http://URSS.ru
Тел./факс: 7 (499) 135~42-16
URSS Тел./факс: 7 (499) 135~42^6
7062ID95615
785397 006507 >
Все права защищены. Никакая часть настоящей книги не может быть воспроизведена
или передана в какой бы то ни было форме и какими бы то ни было средствами, будь то
электронные или механические, включая фотокопирование и запись на магнитный носитель,
а также размещение в Интернете, если на то нет письменного разрешения владельца.


Оглавление Введение ... . 6 Глава 1. О системе T^jX . .. 8 § 1. История создания системы 8 § 2. Установка системы ... . . . 10 § 3. Предварительная настройка .. 13 Глава 2. Основной файл . . . . . . . . 14 § 1. Базовые определения . . . . . . . 14 § 2. Форматы вывода системы 'ЩХ . .. . . 15 § 3. Структура исходного файла .. .. .. ,. . . 17 § 4. Синтаксис языка ГЩХ 18 §5. Понятие класса документа .. .. . . . ... 20 §6. Основной текст документа . ...". . 22 § 7. Стандартные классы 24 Глава 3. Набор простого текста .. .. . . 25 § 1. Простой текст .... .. 26 § 2. Переносы слов ... 30 § 3. Знаки препинания и символы 32 §4. Абзацы и концевые строки ...-..,. . . . . 35 § 5. Неразрывные конструкции . . . . . 44 Глава 4. Особенности азбук и шрифты . . .. . . 46 § 1. Особенности азбук 46 § 2. Размер шрифта . .. 49 § 3. Начертание и насыщенность .. . 52 § 4. Цвет шрифта . . .. . 55 § 5. Подключение других шрифтов .. 58 Глава 5. Разметка страницы . . . . . .. .. . . 63 § 1. Изменение размеров листа . . 63 § 2. Задание размеров полей . 65 § 3. Разрывы страниц 71 §4. Многоколоночный набор . . .-. .. 71 Глава 6. Секционирование и рубрикация 74 § 1. Стандартное секционирование. 74 § 2. Создание многоуровневой рубрикации . . 76 § 3. Создание оглавления . .. .. .. 78 § 4. Переименование оглавления ... . 80
4 Оглавление § 5. Нестандартное секционирование 81 § 6. Ссылки на рубрику • 82 Глава 7. Общее оформление 84 § 1. Нумерация страниц 84 § 2. Ссылки на страницы 85 § 3. Сноски 86 § 4. Линии и подчёркивания 87 § 5. Списки и перечисления §9 § 6. Специальные окружения 96 § 7. Создание списка литературы 100 Глава 8. Таблицы 103 § 1. Плавающие объекты 103 § 2. Структура простой таблицы 106 § 3. Основы построения простых таблиц 107 § 4. Таблица как плавающий объект 116 § 5. Многостраничные таблицы 117 Глава 9. Рисунки в ЭДвХ'е 121 § 1. Встроенные графические примитивы 121 § 2. Рисование простейших объектов 123 § 3. Импортирование графики 127 § 4. Рисунок как плавающий объект 130 § 5. Обтекание текстом 131 Глава 10. Формулы 133 § 1. Набор формул 134 § 2. Пробелы, индексы, скобки 136 § 3. Включение текста в формулы 140 § 4. Векторы, дроби, корни и подчёркивание 141 § 5. Зарезервированные команды 144 § 6. Знаки суммы, интеграла и предела 145 § 7. Матрицы и системы уравнений 148 § 8. Выравнивание и нумерация формул 152 § 9. Шрифты в математическом режиме 155 § 10. Фантомы 156 § 11. Примеры 157 Глава 11. Макроопределения 163 § 1. Создание новых команд 163 § 2. Счётчики 167 § 3. Окружения 174 § 4. Параметры длины 176 § 5. Изменение стандартных заголовков 179
Оглавление ( 5 Ресурсы сети Интернет . 181 Список литературы . . 182 Приложения . . . . . . 183 I. Диакритические знаки .. 183 II. Строчные греческие буквы . . . . . , . . . . .. 183 III. Прописные греческие буквы . . 183 IV. Готический алфавит . 184 V. Некоторые другие буквы .. . . . . 184 VI. Специальные символы . . . . . . . . . . . . . . . 184 VII. Бинарные операции . . ; 185 VIII.MaTeMaTH4ecKHe операторы .. 186 IX. Бинарные отношения . 186 X. Стрелки ... . 187 XI. Карточные символы 188 XII. Параметры стандартных классов 189 ХШ.Кириллические шрифты . . . .. . 189 Предметный указатель . . . 193
Введение ттгСПОЛЬЗОВАНИЕ компьютерных средств подготовки тек- Jti-CTOB не только экономит время, но и позволяет представлять полученные результаты более качественно и наглядно. Можно сказать, что оформление домашнего задания или типового расчёта, курсового проекта или дипломной работы, статьи в научный журнал или рецензии играет не последнюю роль. Более того, набор научно-технических текстов существенно затрудняется из-за многочисленных «специальных символов», а некоторые из них, относящиеся к совсем уж специфическим областям математики, фонетики и пр., не всегда так просто найти в текстовом редакторе. Во многих случаях набор текста затрудняется и из-за путаницы в ссылках на элементы библиографии, формулы или части работы. Для преодоления возникших трудностей во многих вузах и НИИ нашей страны преподаётся и используется система набора текстов на основе ГЩХ'а. Эта система завоевала популярность благодаря своей относительной простоте и колоссальным возможностям, заложенным в неё при создании. В результате многочисленных изменений и переработок, было написано множество дополнений, расширяющих возможности системы, например, для набора не только математики или простого текста, но и написания нот и даже отображения шахматных партий. К сожалению, русскоязычной литературы, посвящённой системе T^jK, очень мало [4-6,8,9], и многие из этих книг уже недоступны либо устарели. Предлагаемая читателю книга является попыткой восполнить пробел на основе систематизации опыта работы авторов с гЦцК'ом. Авторы попытались описать не только свойства и черты самой системы ЖЩХ2е, но и правила набора и некоторые особенности русского языка, обозначить самые интересные моменты, подчеркнуть разные стороны написания работы и даже затронуть проблемы, связанные с книгоизданием. Настоящий учебник имеет развитый аппарат для поиска информации, позволяющий использовать его как справочник.
Введение 7 Все ключевые понятия, которые определяются в тексте впервые или которые следует выделить и запомнить, даны полу- жирным курсивом. Первое упоминание ключевого понятия, а также отдельные моменты, на которые следует обратить внимание, выделены светлым курсивом. Расширенияфайлов, все команды системы ТЩХ и их параметры,названияпакетов и стилевых файлов приводятся шрифтом печатной машинки. Для удобства ссылок и восприятия многие примерыснаб- жены иерархической нумерацией. Так, пример 2.1 — этопер- вый пример в главе 2 и т. д. В некоторых главах примеры приводятся по ходу текста без выделения и не нумеруются. Как правило, в первой части примера показывается то, что необходимо получить, а во второй — код или реализация. Дополнительная справочнаяинформацияотмечена симво- лом-QD, а предупреждение о возможной ошибке — символом ®. В тексте книги используются ссылки, облегчающие поиск нужных определений и других сведений. Такие ссылки указывают, как правило, номерглавы или страницу даннойкниги. Иногда в сносках приводится дополнительная информация об источнике или ссылка на источники, не вошедшие в явном виде всписоклитературы. Все ключевые понятия приведены в предметном указателе, помещённом в конце книги. Для изучения материала учебника требуется знаниеоснов компьютерной грамотности, в частности, работы в среде Microsoft Windows, a также желательно знание основ программирования на любом языке, которое, несомненно, облегчит восприятие и понимание материала. Авторы надеются, что эта книга поможет студентам или аспирантам, а такжевсем заинтересованным не только освоить основы гЩХ'а, но и почерпнуть что-нибудь новое об оформлении работ, книгоиздании и вёрстке. Все интересующие Вас вопросы можно присылать по адресу: tex.manual@gmail.com Авторы обязательно рассмотрят их все и постараются дать ис- черпывающийответ.
ГЛАВА 1 О СИСТЕМЕ Вистинном виде ГЩХ — произносится как русское «тех» — это компьютерный язык, созданный специально для набора и вёрстки математических или технических текстов. Его название происходит от греческого слова «тех^т/», что в переводе на русский язык означает «искусство» или «мастерство». § 1. История создания системы В начале 70-х годов XX века американский математик Дональд Кнут (Donald E. Knuth), готовя к изданию второй том книги «Искусство программирования» и просматривая пробные оттиски страниц, пришёл к выводу, что качество отпечатанного текста было очень низким. Однако, будучи серьёзным учёным — математиком и программистом, — он обратился за помощью в ту сферу науки, где и был профессионалом, а именно к цифровому представлению текста, который в простейшем виде является размещением нулей и единиц (т. e., выражаясь более образно, «есть чернила» — «нет чернил») на шаблоне листа. Поэтому Кнут начал прорабатывать и анализировать «традиционно» лучшие по типографским меркам правила набора текстов и способы создания новых шрифтов, поскольку подходящих для него шрифтов просто не существовало. Он искренне полагал, что вся работа займёт не более полугода, но, как оказалось, он ошибся: создание новой системы заняло около 10 лет. В эти годы вместе с ним работала целая команда математиков и программистов, получавшая поддержку Американского математического общества. Примерно через год после начала работы над этой системой, Кнута пригласили на заседание Американского математического общества для чтения лекции. Такая честь выпадает наиболее выдающимся учёным и исследователям, чья работа не связана напрямую с «чистой» математикой (например, физика, астрономия, компьютерные технологии и пр.). На таком
§ 1. История создания системы заседании лектор может вести рассказ на любую интересную тему, и Кнут решил осветить один из аспектов программирования как вспомогательного средства математики. Работа, которую он представил, была посвящена двум системам: ГЩХ для набора текстов и METflFONT для разработки шрифтов. Он рассказал не только о концепции типографского мастерства вообще, но и привёл математические рассуждения, на основании которых были созданы эти программы (вчастно- сти, к ним относится теория кривых Безье). Его выступление выглядело так, словно обе эти программы были уже готовы для работы. Система Т^Хпоявилась как раз на заре персональных компьютеров и с самого начала стала популярна средиматемати- ков и физиков, астрофизиков и астрономов, других ученых и исследователей, которые хотели аккуратно и красиво оформлять свои статьи и труды, но были вынуждены вписывать необходимые символы, недоступные на печатной машинке. Как оказалось, эта система была больше похожа на исследовательский проект, нежели на законченный программный продукт. Тем не менее были в системе и привлекательные черты: — она была рассчитана на использование непосредственно самим автором текста, который единственно знает, о чём и как нужнонаписать; — она создавалась как научное исследование и поэтому распространяется бесплатно; — она была доступна на любой платформе, любом компьютере и операционной системе, не требовательна к ресурсам и создана таким образом, чтобы исходный файл, содержащий инструкции форматирования, был удобным, практичным и обеспечивал одинаковый результат на любой машине илисистеме и т. д. Чтобы создать эту систему и наконец издать свои книги, Кнуту пришлось проработать все особенности книгоиздания (таблицы и рисунки, сноски, колонтитулы, интервалы, размеры пробелов и т. п.), воплотив идеи в новой и оригинальной концепции — новом компьютерном языке.
10 Глава 1. О системе Язык T^jX — язык разметки, в чём-то напоминающий HTML1 и его обобщение XML2. Команды этого языка являются командами низкого уровня, но позволяют создавать макроопределения, поэтому сложно сказать, есть ли у него вообще ограничения. Вследствие этого разными программистами создаются целые библиотеки или пакеты, содержащие такие макроопределения, и возможности системы многократно расширяются. Таким образом, 'Ц^Х — это система набора и вёрстки текстов, позволяющая создавать высококачественные математические тексты. Ядром этой системы является специальный язык программирования. Хотя и этот язык, и сама система имеют одно и то же название — ТЩК, изначально так назывался только разработанный Кнутом язык. Впоследствии он в чистом виде практически не использовался, а входил в виде базовой составной части — ядра — в следующее поколение систем, которые сейчас и называются одним именем ГЩХ. Поскольку ГЩХ является языком разметки низкого уровня (как ассемблер для языков программирования), то набор текстов с его помощью довольно трудоёмок. Эта проблема побудила Лесли Лампорта (Leslie Lamport) написать всеобъемлющий макропакет ЖЩХ, выполняющий большую часть рутинных действий и позволяющий набирать работы высокого типографского качества с меньшими усилиями. Сейчас этот пакет, достигший версии WF$tL2s, является основным инструментом набора текстов, оттеснив обычный TfjX (PlainT^K). § 2. Установка системы Для создания и редактирования документов T^X необходимо установить: - операционную систему семейств Microsoft Windows (98, Me, 2000, XP, Vista3) или Linux/Unix (Mac OS); - одну из реализаций Т^Х'а (это MiMgX для Microsoft Windows, r^XLive, fpr^X, emTgX и т. д.); 1HyperText Markup Language. 2eXtensible Markup Language. 3C некоторыми ограничениями — см. miktex.org/2.7/Issues.aspx
§ 2. Установка системы 11 — программу-интерпретатор языкaPostScript (например, бесплатную AFPL/GPL GhostScript4 версий 7.14 истар- ше), если она не входит в дистрибутив реализации (для дистрибутива MikTeX — если его версия младше 2.4); — Adobe Reader5 версии старше 5 для просмотра PDF файлов; — программу-редактор для создания самих документов ГЩК (WinEdt, TeXnic Center и т. д.). Возможно, будет необходимо установить какие-либо дополнительные программы как для поддержки функционирования, так и для расширения возможностей системы Tgfc. Для комфортной и стабильной работырекомендуется установка операционной системы Microsoft Windows XP с Service Pack 1 или более поздним и Adobe Reader версии 7 или старше — в данном случае не потребуется установки никаких обновлений илидополнительных утилит. Одной из самых распространённых свободных реализаций T^X'a является MiMJjjX, в состав которого входит ббльшая часть необходимых для работы пользователякомпонент: сам ГЩХ, METflFONT, '^jXware, МЕТЯРОЫТ\уаге,шрифты Computer Modern, вариант транслятора pdrQ3X, dvipdfm, Yap — программа для просмотра dvi-файлов, различные утилиты и средства настройки системы ГЩХ, а также практически все свободно распространяемые шрифты и макропакеты. пг\ В данном учебнике будем считать понятия T^X, ЖЩХ и LU Mik^jX синонимами, поскольку для рядовогопользова- теля, поставившего цель набрать документ, а не изучить эти системы, различия между ними не так уж существенны. Дистрибутив М1кгЩХ доступен на официальномсайте про- екта www.miktex.org. Для работы с Т^Х'омнеобходимо сначала получить этот дистрибутив, а затемустановить его на компьютер. Дистрибутив можно либо заказать на сайте 4www.ghostscript.com, sourceforge.net/project/showfiles.php?group.id=1897 5www. adobe. com/products/acrobat/readstep2. html
V2 Глава 1. О системе TfcX (в виде диска CD-R/DVD-R за определённую плату), либо бесплатно загрузить с официального сайта6. шьъ Если на компьютере установлен первый вариант операци- lMMjJI ^*^ онной системы Microsoft Windows 98, то перед установкой Mik'^X необходимо обновить часть системных библиотек с помощью пакета обновлений 50comupd.exe7. Сама установка осуществляется за несколько этапов: 1) Запуск программы Setup Wizard8. 2) Выбор набора пакетов. 3) Выбор типа установки (общая для всех или отдельная). 4) Выбор папку, в которую будет производиться установка. Отметим, что, поскольку T^X состоит из множества (более 40 000) файлов маленького размера, то занимаемое им место может быть существенно больше указанного в программе установки. В частности, при установке на диск объёмом 40 Гб набор пакетов Total (занимаемое место по данным программы установки — 800 Мб) системы ГЩХ займёт около 900 Мб, если файловой системой диска является NTFS; и более 1900 Мб, если файловая система — РАТ32. Это связано с некоторыми особенностями размещения файлов на диске9. 5) Указание основного размера листа бумаги (A4/Letter) и поведения установленной системы при отсутствии нужного пакета — установить сразу («Yes»), не устанавливать («No») или спросить у пользователя («Ask me first»). 6) Проверка правильности параметров установки. 7) Ожидание завершения процесса загрузки. 8) Завершение Setup Wizard. 6В зависимости от выбранного типа установки, размер загружае- файлов может изменяться от 45 до 530 Мб. Подробности — на http://miktex.org/2.7/Setup.aspx 7vw. microsoft. com/msdownload/ieplatform/ie/comctrlx86. asp 8Файл setup-2.7. xxxx. exe — находится в той же папке, что и дистрибутив MiWEX. 9Более подробную информацию можно найти в базе данных Microsoft Software Developer Network (MSDN).
§ 3. Предварительная настройка 13 § 3. Предварительная настройка После установки необходимо провести некоторую настройку гЩХ'а для обеспечения поддержки переносов в русском языке. Для этого нужно запустить программу Mik'^jX Options (элемент Settings группы MikT^X 2.7 стартового меню MS Windows), перейти на вкладку Languages, отметить russian и нажать кнопку <Применить> (<Apply>). После этого необходимо перейти на вкладку General и обновить файлы форматов Maintenance —► <Update Formats>.
ГЛАВА 2 ОСНОВНОЙ ФАЙЛ ГЛАВНОЙ задачей, которая ставится перед автором, когда он хочет использовать систему ЖЩХ для своих целей — например, оформления текста, является создание и формирование исходного файла. § 1. Базовые определения В дальнейшем под документом будем понимать форматированный определённым образом текст (например, книгу, курсовую работу, отчёт и т. п.), получаемый в результате компьютерной обработки, который в зависимости от цели можно распечатать, вывести на экран, переслать по почте и т. д. Исходным или основным файлом будем называть файл, содержащий текст документа и определённые команды. Такой файл по традиции имеет расширение tex. Выходной файл — это файл, создаваемый в результате обработки исходного файла программой-транслятором для вывода на экран или принтер. Принцип работы системы состоит в том, что транслятор считывает исходный файл, подключает нужные библиотеки — пакеты, преобразует и создаёт выходной файл, который используется для вывода на экран или печать. Проиллюстрируем процесс работы «циклом», приведённым на рис. 2.1. Хотя такой цикл выглядит несколько неестественно, он наглядно показывает способ работы в системе. При трансляции исходного файла в текущей папке создаётся ещё ряд файлов. j_ Редактор .tex 1 Пакеты [-> Доп. файлы .aux .toc .bbl .log —* 4— Рис Транслятор .tex->.dvi .tex->.pdf Просмотр t— Печать документа . 2.1
2. Форматы вывода системы TfeX Пусть, например, исходный файл называется LaTeXl.tex. Тогда в процессе трансляции могут быть созданы следующие файлы: — LaTeXl. aux — отвечает за перекрёстные ссылки, в нём содержится информация о настройках языка, а также параметры всех ссылок и объектов, на которые уже можно ссылаться; — LaTeXl. toc — отвечает за содержание (оглавление), в нём находится информация обо всех элементах секционирования документа, страницах, на которых они появляются, а также некоторая другая информация; — LaTeXl. lof — отвечает за список рисунков; — LaTeXl. lot — отвечает за список таблиц; — LaTeXl. log — содержит копию информации о ходе трансляции (иногда вместо него присутствует текстовый файл LaTeXl.txt); — LaTeXl. idx, LaTeXl. ilg и LaTeXl. ind — отвечают за предметный указатель. Если для создания списка литературы использовалась система BibT^X, то дополнительно будет создан файл LaTeXl .bbl. § 2. Форматы вывода системы Как уже упоминалось, система ГЩК может переводить текст в следующие форматы: DVI (Device Independent), PDF (Portable Document Format) и PS (PostScript). Все эти форматы являются платформжьнезависимыми, однако каждый из них имеет свои особенности, которые зачастую предопределяют их использование. Формат DVI очень хорошо подходит для предварительного просмотра текста в процессе набора, вёрстки и пробной печати. Однако, хотя он и называется «device independent» и одинаково хорошо приспособлен для вывода на печать или экран, при переносе с одной системы на другую может некорректно отображаться, поскольку зависит от настроек программной среды: наличия шрифтов, вспомогательных средств и пр. Язык PostScript, базирующийся на языке Forth, является одним из платформно-независимых языков описания страниц и
16 Глава 2. Основной файл использует векторную форму описания. При этом подразумевается, что устройство (будь то дисплей, принтер, плоттер) самостоятельно выполняет преобразование векторного представления в растровое с учётом своей разрешающей способности. Для каждого из устройств результирующее растровое изображение будет различным, однако размеры, положение, координаты вершин объектов и прочие геометрические параметры обязаны совпадать. Компания Adobe обладает лицензией на все реализации PostScript, что, с одной стороны, значительно влияет на цену устройств, поддерживающих этот язык, а с другой — обеспечивает почти полную совместимость с любой компьютерной платформой. Чрезвычайно широкое распространение PostScript нашел на платформе Apple Macintosh. Язык имеет средства описания прямых линий, углов, прямоугольников и кривых третьего порядка, возможность отображения линий любой толщины и любого цвета (цвет может быть представлен в моделях Pseudo-Greyscale, RGB и CMYK). Текст полностью интегрирован с графикой, а текстовые символы, как предопределённые, так и пользовательские, могут быть объектами любого графического оператора. PostScript позволяет описывать растровые изображения любого разрешения с использованием различных цветовых моделей. Общая система координат поддерживает комбинации следующих преобразований: масштабирование, поворот, зеркальное отображение. Преобразования применяются одновременно ко всем элементам страницы, включая текст, графические примитивы и растровые изображения. Вторая версия — PostScript Level 2 (старое название Sup- га) — обеспечила, кроме того, платформно-независимое отображение цвета, сжатие данных и улучшенные алгоритмы преобразования полутоновых изображений. В последней реализации — Adobe PostScript 3 — ядро интерпретатора претерпело значительные изменения, по сравнению с предыдущей версией увеличилась производительность. Encapsulated PostScript был создан для обеспечения межплатформенной переносимости рисунков в формате PostScript. Основное отличие EPS заключается в том, что возможности
§ 3. Структура исходного файла 17 формата ограничиваются описанием одной страницы. Объекты страницы EPS не влияют на изображения, находящиеся за пределами этой страницы. Файл EPS может содержать растровый эскиз изображения для предварительного просмотра (чаще всего в формате TIFF). Для просмотра файлов PS (EPS) необходима программа- интерпретатор языка PostScript, например GhostScript и программа просмотра GSView, или редакторы, воспринимающие данный формат — Adobe Illustrator, Corel Draw, Adobe Acrobat. Вчисле прочих данный формат воспринимает и Adobe Acrobat Reader. Формат PDF был создан компанией Adobe как универсальный формат для хранения и переноса данных на разных вычислительных платформах. Файлы формата PDF «весят» больше, чем файлы DVI, но основным их преимуществом является «истинная» платформенная независимость (проблема с наличием шрифтов решается путём интегрирования использованных символов шрифта в документ, что положительно сказывается на внешнем виде и отрицательно — на объёме) и неизменность при печати. Являясь по сути графическим объектом, этот формат прекрасно отображает графику (рисунки многих форматов, 6т JPEG доЕРЭ), поддерживает «художественное» оформление текста и создание презентаций с гиперссылками. В отличие от формата DVI, в файл формата PS, EPS или PDF можно внедрить символы используемых шрифтов (или, в случае PS/EPS — сохранить символы как кривые), что позволяет на любом компьютере или печатающем устройстве увидеть в точности такой результат, какой необходим — даже если соответствующая гарнитура отсутствует. § 3. Структура исходного файла Рассмотрим структуру исходного файла — того текстаи тех «включений», которые в нём находятся и после трансляции преобразуют его до неузнаваемости. Этот файл можно, достаточно чётко разделить на две части: преамбулу и основной текст.
18 Глава 2. Основной файл Основной текст — это непосредственно та часть исходного файла, которая будет выводиться в выходной файл с теми или иными преобразованиями в зависимости от команд, включённых в него, после трансляции — обработки в соответствии с этими командами-указаниями системой TgX. Следовательно, структуру основного файла можно представить в следующем виде: Начало исходного файла Преамбула: определения и настройки Основной текст: смысловая часть текста и включённые в неё команды Конец исходного файла nr~| Важно отметить, что исходный файл не должен содер- ^BJ жать какие бы то ни было выделения цветом, шрифтовые выделения, разбивку на страницы и другие «художественные» элементы. Транслятор должен получить «чистый» текстовый файл (ASCII-файл), поэтому наиболее простыми вариантами для набора могут служить «Блокнот», редакторы под MS-DOS или специальные гЩХ-редакторы. § 4. Синтаксис языка Для дальнейшего и более детального изучения строения исходного файла и его содержания рассмотрим особенности синтаксиса языка системы ГЩХ и языка макроопределений ЖЩХ. Команды и макроопределения, составляющие разметочную часть языка ГЩХ, имеют ряд особенностей и легко отличаются от обычного текста. Для их написания используются наиболее редкие для повседневных документов символы. В тексте исходного файла можно использовать латинские и русские буквы А. . .Z, а.. .z, А.. .Я, а.. .я, цифры 0.. .9, символы: . , : ; ! ? ( ) [ ] > < - * / С | < > + = " *
§ 4. Синтаксис языка TfeX Крометого, существует десять зарезервированных символов: \Ч } $ & # У. ^ - ~ Их употреблениев тексте может привести к ошибке или нежелательным последствиям — в большинстве случаев, если даже и не будет ошибки, результат вряд ли совпадёт с ожидаемым. Отметим, что символы «|», «<» и «>» могут смело встречаться и в командах, но их использование в обычном тексте не приведёт к ошибке, правда, результат может быть неожиданным. Команда — это последовательность символов, которая воспринимается транслятором не как обычный текст, а как указание для совершения какого-либо действия надтекстом или документом. Команда системы Т^Х — это либо одиночный символ {, }, $, % &, либо последовательность символов, которая начинается с «\», например \newpage, \usepackage[T2A]{fontenc} и т. д., в общем случае имеет вид: \<название> [<параметры>] {<параметры>}... {<параметры>} Заметим, что символ «\» и <название команды> не разделяются пробелом. Окончанием команды является ближайший идущий после неё пробел, переход на новую строку или лю- бойсимвол, не являющийся командойили буквой латинского алфавита. В квадратных скобках, как правило, указываются необязательные параметры, а в фигурных — обязательные. Пара символов { и } используется как ограничители групп текста, которые входят в состав сложных команд или над которым производится некоторое действие. Символ $ иногда может встречаться в сложных командах, а также (как и символы _ и ^) он используется при наборе математических формул. пг\ Любая последовательность символов, идущая после % до LbJ ближайшего перехода на новую строку, рассматривается как комментарий и, следовательно, ни он, ни вся строка не воспринимаются транслятором.
20 Глава 2. Основной файл лвь Во всех примерах начало и конец строки-названия отме- ^^ чены открывающей и закрывающей угловыми скобками < и > соответственно. Они не являются частью команды и введены только для обозначения символьных последовательностей (имён) как единого целого. § 5. Понятие класса документа Как уже указывалось выше, T^X, являясь, в некотором роде, языком разметки, позволяет с лёгкостью кардинально поменять вид документа (например, сделать из статьи на бумаге формата A4 методическое пособие на листе B5), изменив всего лишь одну строчку документа, определяющую так называемый класс документа. Стиль документа или класс документа — это тип того документа, который создаёт автор. От выбора этого типа зависят исходные размеры границ листа и текстовых полей, способы секционирования и другие настройки. Вообще говоря, это короткое определение является одним из самых важных: именно от намерений автора зависит выбор класса документа и, следовательно, выбор оформления и встроенных параметров. Расположение команды для определения класса документа регламентировано: она находится в самом начале исходного файла. Таким образом, структуру исходного файла можно упрощённо представить следующим образом: \documentclass[<параметры класса>]{<класс документа>} % Определения и настройки \usepackage[<параметры пакета>]{<пакет>} °/0 Определения и настройки 7o Основной текст документа Команда \documentclass[<napaMeTpbi класса>]{<класс документа>} имеет два параметра.
§ 5. Понятие класса документа 21 Заключённые в квадратные скобки <параметры класса> определяют размеры листа, шрифта, режима вывода текстаи т. д. Квадратные скобки указывают на то, что этот параметр является кео5лзагаелъш>ш,следовательно, если его опустить (и опустить сами скобки), то все настройки будут ставиться «по умолчанию», например, \documentclass{<Knacc документа>} Параметр <класс документа>, заключённый в фигурные скобки, является строго обязательными представляет собой название класса, которому соответствует одноимённый файл <класс flOKyMeHTa>.cls При начале трансляции файл соответствующего Knacca*.cls сначала ищется в текущей папке, вкоторой лежит исходный файл, а затем, при его отсутствии, в корневых каталогах гЩХ'а, указанных в программе «MikT^jX Options» на вкладке «Roots», в том порядке, в котором они указаны (обычно это каталоги localtexmf и texmf). Поэтому, при создании своих классов или использовании нестандартных, соответствующий файл класса с расширением cls проще всего, да и лучше, поместить в папку, где находится исходный файл. Под определениями и настройками подразумеваются любые настройки документа: поля, шрифты и многое-многое другое. Все они должны находиться после определения класса и до начала основного текста. Пакет — это набор макрокоманд или макроопределений, расширяющих возможности системы и оформленных в виде отдельного «стилевого» файла <naKeT>.sty, где последовательность <пакет> — имя соответствующего пакета. Для того чтобы загрузить пакеты сдополнительными макроопределениями для расширения функциональных возможностей системы, была введена команда \usepackage[<параметры пакета>]{<пакет>}
22 Глава 2. Основной файл которая также имеет два параметра; <параметры пакета> определяют особенности подгружаемого пакета (или пакетов) и могут быть опущены. В этом случае можно как ставить пустые квадратные скобки, так и опускать их. Например, следующие две команды эквивалентны: \usepackage[]{<пакет>} \usepackage{<naKeT>} Параметр <пакет> определяет непосредственно сам пакет (точнее, его имя), воплощённый в одноимённом файле под названием <пакет>. sty. Заметим также, что эта команда допускает перечисление нескольких пакетов, имена которых указываются через запятые, например, \usepackage{<naKeTl>,<пакет2>,...,<пакетЫ>} Файл, соответствующий этому пакету, ищется в том же порядке, что и файл класса. лй^ Если были указаны какие-либо параметры, то они переда- ^*^ ются всем пакетам, указанным в аргументе \usepackage. Так как этими пакетами могут поддерживаться не все параметры, то следует быть осторожным. § 6. Основной текст документа Для определения основного текста исходного файла введём важное понятие окружения. Окруэюением будем называть «сдвоенную» команду системы ЖЩХ, выполняющую определённые операции над текстом, заключённым в «тело окружения». В общем случае эта команда может иметь следующий вид: \begin{<HMH окружения>}[<параметры>] <Тело окружения> \end{<HMH окружения>}
§ 6. Основной текст документа 23 Параметр <имя окружения> является обязательным и представляет собой строку — название окружения. Дополнительные <параметры> зависят от конкретного окружения и будут оговорены отдельно. Под <телом окружения> будем понимать ту часть текста, к которой применяется данное окружение, т. e. текст, заключённый между командами начала \begin{<mM окружения>} и окончания \end{<HMH окружения>} окружения. Окружения в системе ЖЩК играют очень важнуюроль, а их количество и разнообразие очень сильно упрощает работу над текстом и вёрстку документа. Следует отметить, что каждому началу окружения begin всегда должен соответствовать свой end с тем же самым названием, иначе транслятор выдаст сообщение об ошибке. Основным текстом будем называтьвесь текст, поме- щённыйвoкpyжeниedocument. Таким образом, можно максимально конкретизировать общую структуру документа: УоНачало исходного файла % Начало преамбулы \documentclass{<^acc>} °/0 Определения, настройки и подключаемые пакеты У. Конец преамбулы % Начало основного текста \begin{document} °/0 Смысловая часть текста и команды форматирования \end{document} У. Конец основного текста УоКонец исходного файла Преамбула заканчивается строкой \begin{document}, т. e. началом основного текста. Основной файл всегда заканчивается строкой \end{document}. Любой текст, идущий после нёё, не воспринимается Т^Х'оми выводиться не будет.
24 Глава 2. Основной файл § 7. Стандартные классы Рассмотрим основные стандартные классы, которые описаны в системе ЖЩК. Класс article — статья — лучше всего подходит для набора небольших статей, курсовых работ и проектов, заметок, докладов и т. п. В этом классе по умолчанию установлен односторонний набор (поэтому поля на всех страницах одинаковы), сквозная нумерация всех нумеруемых объектов (сносок, формул, таблиц, рисунков). Наверно, в большинстве случаев это наиболее приемлемый класс, поэтому именно он рекомендуется в студенческих работах. Класс report — отчёт — предназначен для набора отчётов по научной и исследовательской работе. Этот класс поддерживает по умолчанию двусторонний набор, но ещё не дотягивает до того, чтобы набирать книги без сложных предварительных настроек. Класс book — книга — в большинстве случаев используется для создания брошюр и книг. При использовании этого класса документ будет оформлен как книга: двусторонняя разметка страницы (учитываются правые и левые поля, нумерация страниц), колонтитулы, особенности оформления рубрик (например, главы автоматически начинаются с новой нечётной страницы) и многое другое. Каждый класс имеет ряд определённых особенностей, которые были заложены при их создании, например, глубину вложения и оформление разделов, их нумерацию, оформление титульных листов, оглавлений и многое другое. Однако эти классы построены по одной схеме, да и отличие состоит не в каких-то ключевых моментах, а скорее в некоторых частностях. Тем не менее создание классов представляет собой сложный и очень трудоёмкий процесс, впрочем, как и их видоизменение. Приведённые выше основные классы документа имеют свои возможные <параметры класса>, которые более подробно рассмотрены в приложениях в конце книги (стр. 189). Некоторые из этих свойств будут вводиться по ходу изложения.
ГЛАВА 3 НАБОР ПРОСТОГОТЕКСТА КАК уже упоминалось ранее, после трансляции в выходном файле будет выведен непосредственно тот текст, который находится в окружении document. Именно здесь и набирается содержательный текст любого документа. Рассмотрим текст исходного файла простейшего документа: \documentclass{article} \usepackage[T2A]{fontenc} \usepackage[cpi251]{inputenc} \usepackage[russian]{babel} \begin{document} Здесь набирается простой текст. Как и любой другой, впрочем, \end{document} Это простейший пример исходного файла с подключённым русским языком и корректными переносами. Вид исходного текста в общем случае оговаривался в предыдущей главе. Такой текст сохраняется в исходном файле, файл транслируется, и на выходе получается следующий результат (при просмотре в программе, соответствующей формату выходного файла): на листе формата A4 внизу будет стоять номер l,a вверху страницы будет выведена надпись: Здесьнабирается простой текст. Как и любой другой, впрочем. Остановимся сразу на трёх командах: \usepackage[cpl251]{inputenc} \usepackage[T2A]{fontenc} \usepackage[russian]{babel}
26 Глава 3. Набор простого текста Первая команда загружает пакеты, которые определяют, какую входную кодировку должен использовать WF$i. Для Microsoft Windows стандартной кодировкой является cpl251, для операционных систем семейства UNIX/Linux — koi8-R, для MS DOS-cp866, а для Mac OS-maccyr. Вторая команда загружает пакеты, определяющие кодировку шрифта. В данном случае загружается кодировка T2A, которая используется при русскоязычном наборе. Кодировка шрифта для набора латинского шрифта (английского языка) загружается по умолчанию. Третья команда загружает пакеты и файлы, которые позволяют использовать и вводить русский язык, корректно расставлять русские переносы. Именно поэтому в качестве необязательного параметра указан russian. Для английского языка нужно указать english. Если набор производится сразу на двух языках попеременно, то тогда можно написать \usepackage[russian, english]{babel} Последний указанный язык считается основным языком документа и используется во всех не оговорённых особо случаях. Переключение между языками осуществляется с помощью команды \selectlanguage: \selectlanguage{russian} Это русский текст, \selectlanguage{english} And this is English text. Языки, указываемые в команде \selectlanguage, должны быть первоначально загружены как опции пакета babel. Ниже будут рассмотрены особенности набора простого текста. Все примеры набираются в основном тексте исходного файла — в окружении document. § 1. Простой текст Простым или сплошным текстом называется текст, набираемый шрифтом одного типа и размера. Шрифт включает в себя все буквы одного алфавита с относящимися к ним знаками препинания, цифрами и специальными символами. Например, ниже приведён русский вариант шрифта Computer
§ 1. Простой текст 27 Modern (без изменения его атрибутов), который можно получить в выходном файле: абвгдеёжзиклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ 1234567890 . ,: ;! ? «»<>„«*/ + --- №#$%&()[.]{} Данныесимволы можно свободно получить в тексте, однако простой ввод с клавиатуры некоторых из них (например, символов «$» или «&») приведёт к ошибке при трансляции. Отметим ещё раз, что многие из этих символов не входят в допустимый синтаксис языка, а часть допустимых является зарезервированными и не используется в обычном тексте. Ниже будет рассказано, как преодолеть эти трудности. Обычный текст складывается из слов, а те, в свою очередь, из букв. Буквы русского алфавита практически никогда не вызывают проблем при наборе. Однако может возникнуть трудность с написанием буквы «ё» — бывают случаи, когда она не выводится адекватно в выходном файле1. Её можно заменить следующим образом: \"e ё \"E Ё Строгое соблюдение технических правил набора любого текста обеспечивает художественное единство издания и является обязательным как при наборе простого текста, так и при всех других видах набора. Современные системы, и ГЩХ не является исключением, позволяют облегчить соблюдение всех этих правил. В отличие от ручного набора, машинный набор гораздо более быстрый и простой. Однако «компьютерможет сложить рифму, но никогда не заменит поэта». Поэтому многие вещи и соблюдение ббльшей части правил придётся выполнять вручную или специально оговаривать их при наборе. Слова исходного текста, набранные из букв и символов, которые разрешены синтаксисом языка T^jX, отделяются одним *B частности, заглавная буква «Ё» часто просто не выводится.
28 Глава 3. Набор простого текста или несколькими пробелами. Переход на новую строку тоже рассматривается как пробел. Если поставить два пробела или десять вместо одного, результат будет одинаковым, например: Одинипробел. Один пробел. Многоииииииипробелов. Много пробелов. Как видно из примера, пробелы складываются в один, но растяжимый. Здесь и далее символ «u» обозначает обычный пробел при вводе в исходном файле. Правда, растяжимость пробелов может отличаться: между предложениями пробел растягивается несколько больше, чем между соседними словами в одном предложении. Пробелы в максимальной степени увеличиваются в конце предложения после точки, вопросительного и восклицательного знаков. Если точка или закрывающая скобка после точки в тексте не заканчивают предложение, после них нужно ставить принудительный обычный пробел \u, например2: Этоибылитов.\иПетровиИ.иИ.\u(проф.)\иизигорода. Для того чтобы сделать пробел определённой длины, можно использовать следующие команды: Пробел между Пробел между Пробел~между Пробел между Пробел\ между Пробел между Пробел\,между Пробел между Пробел\епзк1р{}между Пробел между Пробел\;между Пробел между Лробел\диасК}между Пробел между Пробел^диасК}между Пробел между Пробел\Ьзрасе{15тт}между Пробел между Обычный пробел и команда «\u» эквивалентны (разумеется, только между словами одного предложения), а команда ~ задаёт неразрывной пробел. Команда 2Этот пример, вообще говоря, искусственный, поскольку между сокращением вида «тов.» и пр. ставится неразрывный пробел, речь о котором пойдёт ниже.
§ 1. Простой текст 29 \Ьзрасе{<длина>} используется для создания пробела определённой длины. Параметр <длина> определяет количество единиц пробела. Отметим, что единицы измерения — pt (пункты), mm (миллиметры), cm (сантиметры), in (дюймы)-ставятсясразу после числа без пробела, т. e. lOpt, 5cm, 6in и т. д. Допустимыотри- цательные и нулевые величины. Если длина пробела меньше единицы, например, \hspace{0.8cm}, то можно опускать ноль и писать \hspace{. 8cm} — обе записи равнозначны. Например: Пробел между Пробел\Ьзрасе{12р^между Пробел\Ьзрасе{10тт}между Пробел\Ьзрасе{1.5ст}между Пробел\Ьзрасе{0.51п}между Пробел\Ьзрасе{.51п}между Пробел\Ьзрасе{-0.5ст}между Пробел между Пробел между Пробел между Пробел между Пробел между Пробел между Пробфбажду Пробелмежду Опять же следует обратить внимание на то, что в исходном тексте после таких команд может — и должен — стоять всего один пробел. Если поставить больше одного пробела, то в вы- ходномфайле пробел увеличится, например: Пробел\епзк±р{}между Пробел\епзк1римежду Пробел\епзк1рОиимежду Пробел\диасК}между Пробел\диас!Оииимежду Пробел\Ьзрасе{15пнп}между Пробел\Ьзрасе{15тт}имежду npo6en\hspace{15mm}uuuuMeHfly Фигурные скобки после команд \enskip, \quad и пр. не иг- рают особенной роли. Иногда они ставятся для того, чтобы показать конец команды. А очень часто после команды в исходном файле ставится просто один пробел. Пробел Пробел Пробел Пробел Пробел Пробел Пробел Пробел между между между между между между между между
30 Глава 3. Набор простого текста § 2. Переносы слов Ещё одним средством системы по выравниванию текста по ширине текстового поля являются переносы. В самой системе заложены хорошие правила переноса слов русского языка, и подключение этих правил при установке описано в разделе Предварительная настройка, а при создании файла — в самом начале этой главы. Одним из основных требований ко всякому набору является требование соответствия всех строк заданному формату и длине. Г^Х по умолчанию выставляет выравнивание простого текста «по ширине», расставляя переносы таким образом, чтобы строки получались примерно одинаковой длины. Это достигается, в первую очередь, за счёт растяжимых пробелов между словами, которые равномерно увеличиваются до нужного размера, чтобы строка была заданной длины. Поэтому при вводе не нужно расставлять переносы — T^X сделает это самостоятельно, если, конечно, были подключены пакеты переноса (см. §3 главы 1). Однако очень часто система просто не в состоянии перенести слова по одной ей понятной причине. Это, прежде всего, слова с дефисами (в этом случае ГЩХ делает перенос только на месте дефиса), слова с буквой «ё» и сложные слова. Переносы часто затрудняют чтение текста, портят вид правого края полосы, но, к сожалению, являются неизбежными. Желательно стремиться к набору без переносов, но в случае автоматического компьютерного набора это всего лишь рекомендация. Правда, следует постараться не допускать более трёх - четырёх переносов подряд, поскольку правый край абзаца становится «рваным». Чтобы сделать перенос в определённом месте слова, в системе ЖЩК предусмотрена команда «\-». Она ставится на желаемом месте переноса, и система, при трансляции, ставит перенос именно в этом месте (и ни в каком другом) или не ставит его вообще. Например, слово «колесница» можно представить как ко\-лес\-ни\-ца. Однако, если нужно, чтобы слово вообще не было перенесе-
§ 2. Переносы слов 31 но, т.е. оставалось неразрывно, можно использовать команду \тЬох{<текст>} которая не разрывает и не переносит включённый в неё <текст>. В Ш^Х существует команда для определения мест переноса в словах, которая используется в начале документа—в преамбуле исходного файла. Она имеет следующий вид: \hyphenation{<<^OBa>} где <слова> — это перечисление слов через пробелы (или на разных строках, поскольку переход на новую строку — это тоже пробел), а места возможного переноса отмечаются символами «-», например, \hyphenation{Ma-Te-Ma-TH-Ka фи-зи-ка пра-во изо-мор-физм} Опять же, данная команда может использоваться для запрета переносов в словах, например, \hyphenation{MaxeMaxHKa физика право изоморфизм} запретит перенос перечисленных слов в тексте. Впрочем, такая команда имеет смысл только если эти слова встречаются часто или имеют совсем уж изысканное написание, которое никак не может подойти под алгоритмы переноса Может возникнуть ситуация, когда слово перенести можно, и оно простое, но ГЩК почему-то отказался сделать это. В настройках системы в соответствии с правиламианглийского языка перенос считается невозможным, если от слова отделяются две последние буквы. Поскольку данные правила для русского языка, мягко говоря, неприемлемы, то можно использовать следующую команду: \righthyphenmin=2 Присвоенное ей значение 2 устанавливает минимальное количество отрываемых от слова и переносимых букв. Эта команда может быть написана везде (разумеется, после \documentclass и до окончания исходного файла).
32 Глава 3. Набор простого текста § 3. Знаки препинания и символы Точку ставят в конце предложений, а также как знак сокращений. В заголовках и подзаголовках, вынесенных на отдельные строки, точку в конце фраз не ставят. Запятую ставят внутри предложения в соответствии с грамматическими правилами русского языка, а также иногда в десятичных дробях для отделения целой и дробной частей. При наборе точка и запятая всегда ставятся вплотную к предыдущему слову (символу) — пробел перед ними не ставится. После точки всегда ставится пробел кроме случаев, когда после неё ставится запятая или тире3. После точки или запятой пробел не ставится только в том случае, если после неё идет тире: ИвановиА.\иА. ,ипрофессор Иванов A. A., профессор ИвановиАЛиА.иПрофессор Иванов А. А. Профессор Да, —исказалион, —иэтоия! Да,— сказал он,— это я! Точка с запятой и двоеточие ставятся внутри предложений. Эти знаки препинания также не отделяют пробелом от предыдущего символа, но после них всегда ставится пробел. Восклицательный и вопросительный знаки ставятся в конце предложений, иногда в скобках внутри предложений. Они также не отделяются пробелом от предыдущего символа. После них ставится пробел. Исключение составляет только лишь тот случай, когда эти знаки являются частью многоточия, например, «!..» или «?..». Дефис применяется как знак переноса, как знак сокращения (например, док-во, тов-во), как грамматический соединительный знак в сложных словах (инженер-математик), в иностранных именах и составных фамилиях (Жан-Жак Руссо), в некоторых технических терминах (гамма-лучи), географических названиях, в условных наименованиях с цифрами (H-ll), при добавлении падежных окончаний к цифрам (1-й, 13-го), в 3Команды для написания тире приводятся чуть ниже по тексту.
§3. Знаки препинания и символы 33 сложных повторяющихся словах (еле-еле), с некоторыми частицами и предлогами (кое-где, из-за). Дефис никогда не отделяется пробелами от предыдущего и следующего символов. В гЩ^'е дефис ставится как одиночный символ «-». Короткое тире используется для обозначения знака предела в значении «от-до», если тире ставится между цифрами, например, стр. 10-15 (стр.~10--15), 1995-2003 (l995--2003). В системе T^X Для его написания ставятся два дефиса подряд, т. e. «—». До и после короткого тире пробелы не ставятся. В соответствии с традициями отечественного книгоиздания короткое тире не имеет никакой практической пользы. Вместо него используется только длинное тире. Длинное тире (или простое тире) применяют как знак препинания, часто заменяющий собой пропущенное слово. До и после тире ставятся пробелы. Если тире используется как указание на начало прямой речи, то при этом ставится обычный абзацный отступ, потом следует тире, и далее через обычный пробел — текст. Если прямая речь встречается в середине предложения, то до и после тире ставятся обычные пробелы. Следует отметить, что между точкой, или запятой, или кавычками и тире пробел не ставится. В системе T^X тире обозначается тремя дефисами подряд «—». Следует отметить, что по правилам русского языка тире не переносится на новую строку — не отделяется от предыдущего слова. Можно сказать, что перед тире ставится неразрывный пробел. Тем не менее, по стандарту, предлагаемому пакетом babel, тире рекомендуется набирать не через нерастяжимый пробел, а следующим образом: «"—-». Такое написание тире обеспечивает его правильное положение в тексте, например: это — тире . это " тире Многоточие употребляют как знак препинания для обозначения незаконченной мысли. Иногда многоточия применяются вместе с вопросительным или восклицательным знаками. Во всех случаях в многоточие входит только три точки,
34 Глава 3. Набор простого текста включая точку указанных знаков, например, !.. , ?.. В таких случаях все знаки набираются обычным образом. Для создания многоточия используются команды \ldots \dots Если многоточие ставится в начале предложения, то оно не отделяется пробелом от идущего после него слова, например, ... Это было давно!.. \ldots{}3To было давно!.. После многоточия, стоящего в конце предложения, ставится обычный пробел. Если после многоточия идёт тире, то пробел между ними не ставится, например, Нет...— сказал он. HeT\ldots— сказал он. Если пробел после многоточия поставить нужно, то после команды \ldots следует поставить пустую команду и только потом пробел: ЭтouбылouДaвнo\ldots{}uTaKuДaвнo, ичтоимногоеиужеизабыто. Кавычки в наборе текста применяются трёх видов: так называемые „рукописные лапки" (" срукописные лапки10), "верх- ниелапки" (с 'верхние лапки*') и «ёлочки» («ёлочки»). Назначение кавычек — выделять слова прямой речи, а также слова, применяемые в ироническом значении или переносном смысле. Кавычки никогда не отделяются от текста, заключаемого между ними, например, «текст». Кавычки «ёлочки» (иначе называемые «французскими» кавычками) получаются с помощью последовательности символов «...», либо с помощью команд \flqq.. .\frqq. „Рукописные лапки" («немецкие» кавычки) соответствуют последовательности "с. . . " ' и командам \glqq.. . \grqq. При наборе текстов на русском языке используются кавычки «ёлочки» или „рукописные лапки", при этом допускается использование "верхних лапок" в случае, если кавычки вложены (например, «Концерн "Вега"»). При наборе текста на английском языке используются кавычки "прямые двойные" ('*прямые двойные'') или 'прямые одинарные' ('прямые одинарные').
§4. Абзацы и концевые строки 35 Знаки препинания — точка, запятая, двоеточие и точка с запятой — всегда ставят вне кавычек, не оставляя между ними пробел, а знаки вопроса, восклицания и многоточие остаются в кавычках также без пробела между ними. пг\ В одной печатной работе должен применяться только один LiJ вид кавычек (если нет случаев вложения). Скобки в простом тексте применяются только круглые или квадратные для обозначения элемента списка литературы4. Так же как кавычки, они не отделяются пробелами от текста, заключённого внутри, например, (некоторыйитекст). Для набора специальных знаков, которые присутствуют на клавиатуре, но не входят в список допустимых символов, перечисленных в начале данной главы, используЮтся следующие команды: № № V/. % \& & \# # \$ $ § 4. Абзацы и концевые строки Текст всегда разделяется на отдельные предложения, выражающие определённую законченную мысль. Предложения отделяются друг от друга знаками препинания (точка, вопро- сительныйивосклицательныйзнакиимноготочие). Несколько предложений, связанных между собой по смыслу, составляют так называемый период речи, который в письменном или печатном тексте выделяют, начиная его с новой строки. Абзацем называется набор всего периода речи. Обычно он начинается с небольшого отступа — красной строки. Концевой строкой называется последняя строка периода речи. Кроме того, иногда концевыми называют строки, которые хотя и не заканчивают абзац, но прерывают его, так как за ними следуют формулы, таблицы, примеры и пр. Кроме смыслового значения, абзацные отступы и концевые строки имеют значение важных элементов набора. Правильным считается,чтобы всеабзацные отступы в pa- ботебыли одинакового размера. 4О ссылках на литературу будет рассказано подробно в главе 7 «Общее оформление».
36 Глава 3. Набор простого текста По умолчанию система не ставит абзацный отступ в первом наборе периода речи, идущем после заголовка. Это связано с тем, что изначально в системе заложены западные стандарты набора (а у них ставить этот отступ просто не принято). Для того чтобы преодолеть возникшее разногласие, в преамбулу документа необходимо вставить строку: \usepackage{indentfirst} которая загружает пакет indentfirst для корректного выставления абзацного отступа после заголовков. Для того чтобы перейти к новому абзацу, в тексте нужно оставить одну или несколько пустых строк. По аналогии с пробелами между словами, две и более пустые строки между абзацами воспринимаются транслятором как одна, которая разделяет абзацы. Если необходимо начать абзац не с красной строки, убрать отступ при перечислении или в каком-нибудь другом случае, используется команда \noindent. Например, Это первый абзац с отступами. Это первый абзац с отступами. Это второй абзац и— тоже Этовторойабзац — тоже с красной строкой. с красной строкой. Это третий абзац — уже без \noindent Это третий абзац отступа. 11 уже без отступа. Желательно, чтобы концевая строка абзаца была длиннее абзацного отступа минимум в полтора раза, а при малых абзацных отступах — в два. Это, как правило, 5-6 символов. Правда, за выполнением этого правила придётся следить самостоятельно. Если текст набирается в узких колонках, т. e. полоса текста имеет небольшую ширину, рекомендуется делать концевую строку не менее 1/4 длины всей строки. Опять же, очень некрасиво выглядит знак переноса на предпоследней строке,
■ § 4. Абзацы и концевые строки 37 поэтому концевую строку лучше всего начинать словом, а не его частью. Однако при компьютерном наборе с автоматической расстановкой переносов это сложно,даи не всегда целесообразно отслеживать. Кроме того, в концевых строках нельзя набиратьтолько сокращения или только цифры с их обозначениями. Так, выражения и~т.~д., и~т.~п., 12\,000~p. и аналогичныеим не должны составлять концевой строки. За такими, казалось бы, «мелочами» придётся следить самостоятельно и исправлять их вручную. Аналогом пустой строки (или нескольких пустых строк) является командаДраг, которая заканчиваетодин абзац и начинает новый с отступом. Чаще всего, она используется в сложных сочетаниях команд, в написании макросов(см. главу 11). Очень часто абзацы могут начинаться и без абзацных отступов. Это реализуется с помощью команды \newline или её аналога \\, которая используется для перехода на новую строку. При этом абзацный отступ не ставится. Однако при таком наборе следует помнить, что последняя строка каждого абзаца должна быть неполной. Это первый абзац с ~ „ ^ Это первый абзац с от- отступами. ступами. Это второй абзац — тоже Этовторои абзац "— тоже о . с красной строкой. с красной CTpoKOH.\newline ~ о * ^ _ ы е Это третий абзац — уже без Это третий абзац отступа. 11— уже без отступа. У команды \\[<oxcxyn>] есть необязательный параметр, который задаёт величину вертикального отступа между строками. Опять же, чтобы прервать абзац в любом месте, разорвав строку, и начать следующую без абзацного отступа, используется команда \linebreak (как сейчас), но разорванная строка будет слишком «жидкой». Кроме того, существует команда \indent, которая принудительно делает абзацный отступ (по аналогии с \noindent).
38 Глава 3« Набор простого текста Длину абзацного отступа можно регулировать с помощью переопределения значения параметра \parindent, например, команда переопределения \setlength{\parindent}{<flmma>} помещённая в преамбуле исходного файла, позволяет установить произвольную длину абзацного отступа. Параметр <длина> набирается в любых ^ЩХ'овских единицах. Если необходимо, чтобы первая строка выступала, нужно использовать параметр \hangindent. Абзацный отступ при этом необходимо принудительно подавить командой \noindent. (ш^ Команда \hangindent действует только на тот абзац, в ^y котором она была применена. r#n Команда \hangindent с отрицательным аргументом при- L&J водит к появлению сдвига справа. Если необходимо увеличить число выступающих строк (как, например, в этом абзаце), то после команды \hangindent необходимо применить команду \hangafter со следующим синтаксисом: \hangafter=n где n — число строк. Пример 3.1. — Что такое эта ваша разруха? Старуха с клюкой? Ведьма, которая выбила все стёкла, потушила все лампы? Да её вовсе и не существует. Что вы подразумеваете под этим словом? — Это вот что: если я, вместо того, чтобы оперировать каждый вечер, начну у себя в квартире петь хором, у меня настанет разруха... Следовательно, разруха не в клозетах, а в головах. Значит, когда эти баритоны кричат «бей разруху!» —я смеюсь. .. Это означает, что каждый из них должен лупить себя по затылку! И вот, когда он вылупит из себя всякие галлюцинации и займётся чисткой сараев — прямым своим делом, — разруха исчезнет сама собой.
§ 4. Абзацы и концевые строки 39 \noindent\setlength{\hangindent}{lcm} " Что такое эта ваша разруха? Старуха с клюкой? Ведьма, которая выбила все стёкла, потушила все лампы? Да её вовсе и не существует. Что вы подразумеваете под этим словом? \noindent\setlength{\hangindent}{lcm}\hangafter=3 11— Это вот что: если я, вместо того, чтобы оперировать каждый вечер, начну у себя в квартире петь хором, у меня настанет pa3pyxa\ldots{} Следовательно, разруха не в клозетах, а в головах. \noindent\setlength{\hangindent}{-lcm}\hangafter=2 Значит, когда эти баритоны кричат «бей разруху!» 11— я CMerocb\ldots{} Это означает, что каждый из них должен лупить себя по затылку! И вот, когда он вылупит из себя всякие галлюцинации и займётся чисткой сараев 11— прямым своим делом, "— разруха исчезнет сама собой. Если требуется абзац более сложной формы, то помочь может команда \parshape: \рагзЬаре=<число строк> отступ_строки1 длина_строки1 отступ_строки2 длина_строки2 ... Пример 3.2. Нет, куда уж, ни на какую волю отсюда не уйдёшь, зачем лгать, — тосковал пёс, сопя носом, — привык. Я барский пёс, интеллигентное существо, отведал лучшей жизни. Да и что такое воля? Так, дым, мираж, фикция. .. Бред этих злосчастных демократов... Потом полутьма в ванной стала страшной, он завыл, бросился на дверь, стал царапаться. \noindent\parshape=6 11шт 90mm 21mm 70mm бшт 100mm 42mm 65mm Omm 75mm Omm \textwidth Нет, куда уж, ни на какую
40 Глава 3. Набор простого текста волю отсюда не уйдёшь, зачем лгать, " тосковал пёс, сопя носом, " привык. Я барский пёс, интеллигентного существо, отведал лучшей жизни. Да и что такое воля? Так, дым, мираж, фикцияМск^эО Бред этих злосчастных fleMOKpaTOB\ldots{} Потом полутьма в ванной стала страшной, он завыл, бросился на дверь, стал царапаться. гоп Если число строк в абзаце превышает число n строк, ука- LiJ занное в параметрах команды, то все последующие строки будут иметь те же спецификации, что и n-я строка. По умолчанию, Tj$L выравнивает текст внутри абзацев по ширине, что является вполне разумным при наборе научных текстов. Тем не менее может потребоваться выравнивать каким- либо другим образом — по правому/левому краю, центрировать. Для таких случаев предусмотрены несколько специальных окружений. Окружение flushleft позволяет выравнивать текст по левому краю. Данный вариант удобен, если по каким-либо причинам в тексте нет переносов — тогда интервалы между словами не будут увеличиваться. Второе окружение flushright выравнивает текст по правому краю, оставляя левый край не выровненным. Окружение center выравнивает текст по центру, что полезно при наборе заголовков. \begin{flushleft} Окружение \texttt{flushleft} позволяет выравнивать текст по левому краю. Данный вариант удобен, если по каким-либо причинам в тексте нет переносов "— тогда интервалы между словами не будут увеличиваться. \end{flushleft} \begin{flushright}
§ 4. Абзацы и концевые строки 41 Второе окружение \texttt{flushright} выравнивает текст по правому краю, оставляя левый край не выровненным. \end{flushright} \begin{center} Окружение \texttt{center}BHpaBHHBaeT текст по центру, что полезно при наборе заголовков. \end{center} \ Три этих окружения обладают двумя особенностями: до и после окружения добавляются небольшие вертикальные отбивки, а абзацный отступ подавляется. По умолчанию между абзацами ставится точно такой же вертикальный интервал, как и между строками, который установлен величиной параметра \parskip. Чтобы изменить его принудительно, используется команда \setlength{\parskip}{<OTCTyn>} которая пишется в преамбуле исходного файла. Она позволяет установить произвольное расстояние между абзацами. Параметр <OTCTyn> также набирается в любых 'ЩХ'овских единицах. Вертикальные отступы между абзацами можнозадавать с помощью команд \smallskip, \medskip и \bigskip. Величина отступа для этих команд устанавливается с помощью команд: \smallskipamount \medskipamount \bigskipamount Если необходимо сделать вертикальный отступ определённой величины, используется команда \vspace{<OTCTyn>}. Величина <OTCTyna> задаётся в любых 'ЩХ'овских единицах, например: \vspace{2cm}
42 Глава 3. Набор простого текста Отметим, что эту команду можно использовать только между абзацами, т. e. или до, или после неё должна оставаться хотя , бы одна пустая строка. Интерлиньяоюем называют расстояние между строками в абзацах. Если его необходимо увеличить до полуторного или двойного во всём документе, либо только в его отдельных частях, то лучше всего использовать пакет setspace, имеющий три опции и четыре окружения: — Опция singlespacing устанавливает одинарное расстояние между строками. Этой опции соответствует окружение singlespace. — Опцией onehalfspacing задаётся полуторное расстояние между строками. Данной опции соответствует окружение onehalfspace. — Опция doublespacing — двойное расстояние между строками. Этой опции соответствует окружение doublespace. — Окружение spacing позволяет использовать произвольное расстояние между строками, задаваемое как множитель: \begin{spacingH<HHxepBan>} \end{spacing} Пример 3.3. В течение недели пёс сожрал столько же, сколько в полтора последних голодных месяца на улице. Ну, конечно, только по весу. О качестве еды у Филиппа Филипповича и говорить не приходилось. Если даже не принимать во внимание того, что ежедневно Дарьей Петровной закупалась груда обрезков на Смоленском рынке на 18 копеек, достаточно упомянуть обеды в 7 часов вечера в столовой, на которых пёс присутствовал, несмотря на протесты изящной Зины. Во время этих обедов Филипп Филиппович окончательно
§ 4. Абзацы и концевые строки . 43 получил звание божества. Пёс становился на задние лапы и жевал пиджак, пёс изучил звонок ФилиппаФилипповича — два полнозвучных отрывистыххозяйских удара, и вылетал с лаем встречать его в передней. Хозяин вваливался в чернобурой лисе, сверкая миллионом снежных блёсток, пахнущий мандаринами, сигарами, духами, лимонами, бензином, одеколоном, сукном, и голос его, как командная труба, разносился по всему жилищу. \begin{onehalfspace} В течение недели пёс сожрал столько же, сколько в полтора последних голодных месяца на улице. Ну, конечно, только по весу. 0 качестве еды у Филиппа Филипповича и говорить не приходилось. \end{onehalfspace} \begin{singlespace} Если даже не принимать во внимание того, что ежедневно Дарьей Петровной закупалась груда обрезков на Смоленском рынке на 18 копеек, достаточно упомянуть обеды в 7 часов вечера в столовой, на которых пёс присутствовал, несмотря на протесты изящной Зины. \end{singlespace} \begin{doublespace} Во время этих обедов Филипп Филиппович окончательно
44 Глава 3. Набор простого текста получил звание божества. Пёс становился на задние лапы и жевал пиджак, пёс изучил звонок Филиппа Филипповича 11 два полнозвучных отрывистых хозяйских удара, -и вылетал с лаем встречать его в передней, \end{doublespace} \begin{spacing}{2.5} Хозяин вваливался в чернобурой лисе, сверкая миллионом снежных блёсток, пахнущий мандаринами, сигарами, духами, лимонами, бензином, одеколоном, сукном, и голос его, как командная труба, разносился по всему жилищу. \end{spacing} Если необходимо установить нестандартный междустрочный интервал во всём документе, то можно воспользоваться дополнительной командой setstretch, которую нужно применить в преамбуле: \setstretch{1.35} § 5. Неразрывные конструкции Ещё одним неприятным моментом, о котором также придётся помнить, являются так называемые неразрывные кон- струкции — слова и сочетания букв и символов, которые нельзя разрывать и переносить на другую строку и которыми не может заканчиваться строка. Рассмотрим такие случаи. 1. Нельзя набирать в разных строках фамилии и инициалы, к ним относящиеся, а также отделять один инициал от другого, например, В. ~Г. "Белинский, А. ~C. "Пушкин. Отметим, что делать переносы в фамилиях разрешается. 2. Нельзя в разных строках набирать части общепринятых сокращений, например, и"т. ~д., и~т. "п., т. ~e., кв. ~м. 3. Нельзя оставлять в конце строки сокращения, за которыми следуют фамилии или названия, например, проф."Ива- нов, тов."Петров, p."Волга, г."Москва.
§ 5. Неразрывные конструкции 45 4. Нельзя оставлять в конце строки букву или цифру со скобкой при перечислении, например, 1)~Введение, б)~Случай. 5. Нельзя переносить на новую строку все знаки препинания. Исключением может быть только тире, стоящее после точки или двоеточия впрямой речи. Например: к в один "—- двараза,носказал он. --- Да. 6. Открывающие скобки или кавычки немогутбыть оставлены в конце строки, их нельзяотрывать отпредыдуще- го слова. Более того, они набираются без пробела между символом скобки или кавычкииидущим заним словом, например, (см.\ рис.),«коридор». 7. Римские и арабские цифры и их сокращённые или пол- ныенаименования разделять нельзя, например, 2005~r., 10~рублей, ХХ~век, стр.~12, том~Х1, но переносы в таких словах возможны, например,10~руб\-лей и т. д. 8. Нельзя в разных строках набирать знаки и относящиеся к ним цифры, например, \No~3, 10~\%. Заметим, что в настоящее время эти правила де факто стали лишь рекомендациями, поскольку в большинстве случаев они не соблюдаются.
ГЛАВА 4 ОСОБЕННОСТИ АЗБУК И ШРИФТЫ ВНАЧАЛЕ введём некоторые определения. Типографским шрифтом называется комплект литер — прямоугольных металлических брусков, на верхнем торце которых находятся рельефные зеркальные изображения тех или иных букв или знаков. Кеглем шрифта называется расстояние между верхней и нижней границами литеры, что отличается от размера шрифта — высоты прописных букв. В дальнейшем мы будем использовать именно понятие «размер шрифта». В типографском деле наборные материалы и их элементы измеряются в типографской системе мер, в основе которой лежит особая единица измерения— типографский пункт, который обозначается как „п" и 1 п = 0,376 мм. Однако в системе ^ЩХ используется несколько другой пункт, равный 0,315 мм. В зависимости от характера основного рисунка шрифты делятся на гарнитуры. Образно говоря, это коллекция символов шрифта одного стиля. Они подразделяются по наклону, плотности и насыщенности. Стандартным шрифтом системы ГЩХ является разработанный Дональдом Э. Кнутом с помощью METflFONT шрифт Computer Modern. Этот шрифт по форме букв и символов, начертанию и общему виду максимально приближен к типографскому, используемому при ручном наборе. Он не только органично смотрится, но и прекрасно читается. § 1. Особенности азбук В большинстве случаев не возникает проблем с написанием букв и символов как русского, так и английского алфавитов. Как отмечалось, букву «ё» можно набирать двумя способами — как с клавиатуры, так и с помощью последовательности \"e. В английском языке вообще не возникает таких трудностей — все буквы присутствуют на клавиатуре, чего не скажешь про другие языки, например, немецкий, французский, итальянский, польский и пр.
§ 1. Особенности азбук 47 В этих языках — рассматривая европейские — изменение значения букв или произношения достигается с помощью диакритических знаков — значков, которые ставятся около буквы (например, над или под ней). Такие значки присутствуют в немецком языке (это «умлауты» а, 6, u), во французском (g, ё, а) и др. Кроме того, языки на основе латинского алфавита обогатились буквами, которые подчас непривычны нашему глазу, например, 6 в немецком, 1 и L в польском. Приведём эти знаки и буквы: \'е \^e \=е \u{e} \H{e} \c{e} \b{e} ё ё ё ё ё § Ve \~е \.е \v-[e} \»е \d{e} \t 00 ё ё ё ё ё е бо \ое \ае \аа \о \1 \i \ss ее ае а 0 1 1 8 \0Е ЛАЕ \АА \о \L \j (Е М к 0 L J Приведём теперь несколько примеров набора на европейских языках (даже на английском, хотя он и не представляет сложности). Пример 4.1. Английский язык. Just a few words before we begin. Probably, like me, you avoid introductions; if so it cannot be helped. Just a few words before we begin. Probably, like me, you avoid introductions; if so it cannot be helped. Пример 4.2. Немецкий язык. In den alten Zeiten, wo das Wunschen noch geholfen hat, lebte ein K6nig, dessen T6chter waren alle sch5n, aber die jungste war so sch6n, dafi die Sonne selber, die doch so vieles gesehen hat, sich verwunderte, sooft sie ihr ins Gesicht schien. In den alten Zeiten, wo das W\"unschennoch geholfen hat, lebte ein K\"onig, dessen T\"ochter waren alle sch\"on, aberdie j\"ungste war so sch\"on, da\ss{} die Sonne selber, diedoch so vieles gesehen hat, sich verwunderte, sooft sie ihr ins Gesicht schien.
48 Глава 4. Особенности азбук и шрифты Пример 4.3. Французский язык. Zette ignore le rire, la pensee, Paffection. Nee depuis huit jours, elle n'est qu'une bouche, un sugoir. Dans les intervalles des tetees, elle dort ou elle crie. Deja an elle s'incarne Pinstinct supreme. Elle vit et veut vivre. Zette ignore le rire, la pensVee, l'affection. N\'ee depuis huit jours, elle n'est qu'une bouche, un su\c{c}oir. Dans les intervalles des t\^et\'ees, elle dort ou elle crie. D\'ejVa an elle s'incarne l'instinct supr\^eme. Elle vit et veut vivre. Пример 4.4. Итальянский язык. C'era una volta una fornaia che avea una figliuola nera come un tizzone e brutta piudel peccato mortale. Campavan la vita infor- nando il pane della gente, e Tizzoncino, come la chiamavano, era attorno da mattina a sera: — Ehi, scaldate l'acqua! C'era una volta una fornaia che avea una figliuola nera come un tizzone e brutta piVudel peccato mortale. Campavan la vita infornando il pane della gente, e Tizzoncino, come la chiamavano, era attorno da mattina a sera: Ehi, scaldate l'acqua! Фактически, фигурные скобки в командах можно опустить, но они имеют скорее психологическое значение — позволяют не разрывать слово на части пробелами. Это хорошо заметно при использовании в немецком языке буквы 6. После неё в исходном тексте приходится ставить пробел, или брать её всю в фигурные скобки, например, «hei\ssOt», <<hei{\ss}t>> и <<hei\ss t» дадут одинаковый результат «heifit», но первые два варианта написания выглядят как одно, связное слово. В русском же языке, как правило, нужно использовать лишь две команды: \" для буквы «ё» или «Ё» и \' для простановки ударения в словах, например, слов\'ах. Хотя с помощью этих команд и можно набирать тексты практически на всех европейских языках, делать это следует
2, Размершрифта 49 осторожно, да и очень часто это просто неудобно. Как правило, эти команды используют для набора цитатнаиностранных языках. Опять же, если английскиепереносы подключены по умолчанию, арусские — принудительно приустановке, то задругие языки система не отвечает или отвечает, но не срвсем верно. Поэтому нужно либо подключать переносы другихязыков, либо переключаться в другие режимы набора. Такие сведения можно найти в справочной литературе. ..:. ,, Ещё одним интересным моментом набора азбук являются лигатуры — объединение двух символовпри йаборе водйн — относительное слияние. К лигатурамможноотйестислиянйе кавычек (например, « дадут «), некоторые диакритичёскйё знаки. Лигатуры встречаются и в «обычных» случаях.Последова- тельности букв fi, ffi можно записать и несколько иным способом: fi, ffi. Во втором случае T^jX автоматически объединяет их (совмещая, например, «хвостик» буквы «f» и точку над «i», a также уменьшая интервал между ними), что придаёт ббльшую выразительность и красоту печатному тексту. Такие объединения при ручном наборе текста соблюдались не всегда — очень сложно следить ещё и за лигатурами при наборе сотен и сотен страниц. Однако, если автор по каким-то причинам не хочет использовать лигатуры, то можно поставить принудительное разделение символов командойЛ/, например, f\/i, либо заключить необходимые символы в фигурные скобки — {f}i,f{i} или f{}i. Правда, здесь следует отметить, что команда \/ создаёт больший пробел между символами по сравнению с разделением, создаваемым фигурными скобками. §2. Размер шрифта В системе Т$£ без подключения специальных пакетов для стандартных классов документа определено три основных размера шрифта: 10, 11 и 12пунктов. Шрифты большего йлй меньшего размеров получаются из них путём увеличения или уменьшения относительно одного из трёх задайных размеров.
50 Глава 4. Особенности азбук и шрифты Базовым размером будем называть размер шрифта, определённый в преамбуле, в зависимости от которого определяются размеры сносок и ссылок, междустрочных интервалов, отступов, размеры в формулах и т. п. Он выступает в качестве «эталона меры». Базовый размер шрифта указывается при определении класса документа. Например, команда \documentclass[lOpt]{article} задаёт класс документа article и базовый размер lOpt. Этот размер является размером по умолчанию для всех классов документа. Для изменения размера шрифта в тексте существует ряд команд, представленных в порядке увеличения размера: {\tiny текст} {\scriptsize текст} {\small текст} {\normalsize текст} {\large текст} {\Large текст} {\LARGE текст} {\huge текст} {\Huge текст} текст текст текст текст текст текст текст текст текст При этом, базовый размер шрифта — normalsize, тогда как остальные размеры высчитываются системой автоматически относительно него. Если в преамбуле изменить этот размер, то и все производные размеры изменятся в соответствии с новым базовым размером. c~w] Если размер базового шрифта равен 12 пунктам, то pe- LSJ зультат команд \huge и \Huge совпадает. Пример 4.5. Размеры шрифтов. текст разных размеров В ПОрядке увеЛИЧвНИЯ, НаЧИНаЯ С могомаленького!
2. Размер шрифта {\tiny текст} {\scriptsize разных размеров} {\small в} {\normalsize порядке} {\large увеличения,} {\Large начиная} {\LARGE c} {\huge самого} {\Huge маленького!} Однако обилие фигурных скобок может не просто запутать, но и порядком надоесть. Поэтому приведённый пример можно переписать в другом виде. Пример 4.6. Размеры шрифтов. текст разных размеров В ПОрядке уВвЛИЧвНИЯ, НаЧИНаЯ С СЭг мого маленького! {\tiny текст \scriptsize разных размеров \small в \normalsize порядке \large увеличения, \Large начиная \LARGE с \huge самого \Huge маленького!} Как видим, результат не изменился. Что же касается реализации, то она значительно упростилась. Первый способ можно и нужно использовать, когда имеет место единичное изменение размера в предложении (например, нужно увеличить одно слово или строку), а второй — когда эти изменения многочисленны. Аналогично можно менять размеры шрифта и во всём абзаце. Единственным подводным камнем может служить интервал между абзацами. Чтобы он рассчитывался, исходя из изменённого размера шрифта, следует ставить закрывающую фигурную скобку команды изменения шрифта только после пустой строки, разделяющей абзацы. Пример 4.7. Пример изменения размера шрифта в абзаце. Это абзац обычного размера шрифта. А это абзац шрифтом самого маленького размера, который можно использовать. Переход к новому абзацу осуществляется, как всегда, пустой строкой. Как видим, междуабзацный отступ соразмерен шрифту. А это абзац опять обычным размером. Это абзац обычного размера шрифта. {\tinyA3TO абзац шрифтом самого маленького размера, который можно использовать.
52 Глава 4. Особенности азбук и шрифты Переход к новому абзацу осуществляется, как всегда, пустой строкой. Как видим, междуабзацный отступ соразмерен шрифту. }A это абзац опять обычным размером. § 3. Начертание и насыщенность В ЖЩХ 2s гарнитуры шрифтов задаются четырьмя классами признаков: семейством (family), насыщенностью (series), начертанием (shape) и размером (size). Этот способ выбора шрифта называется New Font Selection Scheme (NFSS) и был введён именно в WF$i 2^ на смену более старого способа, применяемого в PlainT^X и WF$i 2.09. Хотя классификация, принятая в типографском деле, отличается от NFSS, мы в дальнейшем будем опираться именно на NFSS, как естественную для ЖЩХ2£. Размер шрифта был подробно рассмотрен в предыдущем разделе, поэтому обратимся к остальным признакам. Без использования специальных команд T^jX знает только три семейства шрифтов для набора текста: Computer Modern Roman, Computer Modern Sans и Computer Modern Typewriter. Кроме них, есть ещё несколько семейств для набора математических символов, но они применяются только в математическом режиме. Насыщенностью определяется интервал между символами, а так же жирность шрифта. Для стандартных шрифтов Computer Modern существуют только две градации насыщенности: простой шрифт (medium) и полужирный шрифт (bold extended). Возможных начертаний же четыре: обычное (normal или upright), курсив (italic), наклонное (slanted), КАПИТЕЛЬ (caps и small caps). Каждая команда, изменяющая вид шрифта, имеет две формы: Семейство Обычный \textrm{06H4Hbra} {\rmfamily Обычный} Рубленый \textsf{Pyблeный} {\sffamily Рубленый} Машинка \texttt{MamraKa} {\ttfamily Машинка}
§ 3. Начертание и насыщенность 53 Простой !Жирный Прямое Курсив Наклонное Капитель Насыщенность \ t extmd{Ilpo стой} \textbf{)KiipHbrii} Начертание \textup{IIpmioe} \textit{Курсив} \textsi{Наклонное} \textsс{Капитель} {\mdseries {\bfseries {\upshape {\itshape {\slshape {\scshape Простой} Жирный} Прямое} Курсив} Наклонное} Капитель} Рекомендуется использовать первую форму команд (\text- команды), поскольку они являются командами более высокого уровня, позволяющими избежать некоторых проблем. Кроме того, в будущих версиях ЖЩХ'акоманды-переключатели (вторая форма) могут быть заменены окружениями. Тем не менее команды-переключатели иногда оказываются незаменимыми. В частности, если необходимо изменить шрифт для нескольких подряд идущих абзацев, то сделать это можно, только поместив их внутрь группы, в самом начале которой стоит команда-переключатель: внутри аргумента \text- команд не могут находиться пустые строки или команда \par. Пример 4.8. Признаки из разных классов моэюно ком- БИНИРОВАТЬ практически без ограничений, но признак того же класса АННУЛИРУЕТ ПРЕДЫДУЩИЙ. Признаки H3\textbf{pa3HHX ^accoB\itshape можно \scshape комбинировать \slshape практически \sffamily безограничений, \ttfamily но признак \itshape того же \mdseries класса \scshape аннулируют \rmfamily предыдущий}. К сожалению, указанные выше признаки применимы не ко всем шрифтам: в семействе Typewriter не определён жирный шрифт: \texttt{Computer Modern {\bfseries Typewriter}} Computer Modern Typewriter, a в семействе Sans — начертание капитель:
54 Глава 4. Особенности азбук и шрифты \textsf{Computer Modern {\scshape Sans}} Computer Modern SANS. При попытке использования таких комбинаций происходит автоматическая замена жирного шрифта на простой в случае Typewriter и семейства шрифта на обычное — в случае Sans. Имитация пишущей машинки, вообще говоря, используется для написания листингов программ, приведения ТЁХ'овских команд и пр. Все символы этой гарнитуры имеют одинаковую ширину, так же как и в обычной пишущей машинке. Кроме описанных команд изменения шрифта, ЖЩХ предоставляет простую команду для визуального выделения важных элементов текста: \етрЬ{<текст>} или {\em <текст>}. Эта команда хороша тем, что автору не нужно думать, в какой режим переключить шрифт, чтобы выделить кусочек текста. Например, если кусочек текста набирается прямым начертанием или капителью, то выделенный кусочек будет выглядеть глменно так — начертание изменится на курсив. Если же кусок текста набран курсивом или наклонным начертанием шрифта, то выделенный кусок будет выглядеть вот так — начертание шрифта будет изменено на простое. Правда, здесь следует оговорить один довольно скользкий момент: при использовании команд \em, \itshape, \schape после закрывающей фигурной скобки возможно наложение части последнего символа текста на последующие слова: halJhe&rted — {\itshape half}hearted. В этом случае перед скобкой или сразу после неё рекомендуется ставить команду для разделения символов \/. Такое поведение этих команд связано с тем, что между словом, написанным курсивом или наклонным шрифтом, и словом, написанным прямым шрифтом, пробел уменьшается из-за наклона буквы. Команда \/ вставляет небольшой пробел между символами разных начертаний, что предотвра- щаетналожение: ^a//hearted-{\itshape half\/}hearted. В то же время, при использовании команд \emph, \textit или \textsc такая проблема не возникает, так как эта коррекция уже учитывается в определении команд. Иногда может возникнуть необходимость вывести непосред-
§ 4. Цвет шрифта 55 ственно то, что набрано, со всеми пробелами и знаками. Для этого используется команда буквального воспроизведения текста \verb|<TeKCT>| которая выводит любой <текст> шрифтом печатной машинки. Здесь следует оговориться о символах «|», которые используются в этой команде. Дело в том, что <текст> должен заключаться между любых двух одинаковых символов. Так, записи \verb[<TeKCT>[ \уегЬ&<текст>& \verb)<текст>) \verb:<текст>: \verb"<текст>" \verb|<текст>| абсолютно равнозначны. Отметим, правда, что вкачестве этих символов нельзя использоватьлатинскиебуквы, хотя вариант с русскими буквами вполне приемлем: \уегЬы<текст>ы Этот символ нужно выбирать с таким расчётом, чтобы он не встречался в <тексте>. Следует отметить, что эта команда не переносит <текст> на новую строку, поэтому её нужно использовать в пределах одной строки. Пример 4.9. Воспроизведём @#$в/0~&*()_+!!! Воспроизведём \verb|@#$0/0~&*O_+lM! § 4. Цвет шрифта По умолчанию цвет шрифта установлен чёрным, как, впрочем, и в обычной печати. Тем не менее кому-то наверняка захочется использовать и другие цвета, сделать документ ярким (а если позволит принтер — то и напечатать) или использовать гамму серого. Чтобы использовать команды для изменения цвета шрифта, заднего плана и пр., в преамбуле необходимо указать использование пакета
56 Глава 4. Особенности азбук и шрифты \usepackage[<опции>]{xcolor} <Опции> позволяют настроить пакет по необходимости. Эти настройки делятся на: - установка драйвера: dvips, dvipdfm, pdftex. - используемое цветовое пространство: rgb, cmy, cmyk, hsb, natural, gray, RGB, HTML, HSB, Gray, monochrome. Мы не будем углубляться в описание этих пространств, отметим лишь, что наиболее употребительными являются системы rgb и cmyk, соответствующие представлению цвета в мониторах и при печати соответственно. Интересующихся же отошлём к книге [7]. - совместимость с другими пакетами, расширяющими возможности ЖЩХ: table, fixpdftex, hyperref. Командой \textcolor [<пространство>] {<цвет>Н<текст>} <текст> окрашивается в определённый <цвет>, который определяется одним из английских названий: black — чёрный, white белый, red — красный, green — зелёный, blue — синий и т. д. или цвет, указанный автором. Параметр <пространство> указывает цветовое пространство, в котором задан этот цвет. Команда \со1огЬох{<цвет>Н<текст>} помещает <текст> в окрашенный в определённый <цвет> прямоугольник. Команда \£со1огЬох{<рамка>Н<фон>Н<текст>} позволяет поместить <текст> в прямоугольник, рамка которого задаётся цветом <рамка>, а весь задний план — цветом <фон>. Пример 4.10. Цвет шрифта. Может быть это и ЗАВАВНО , но часто не особенно нужно Иногда можно окрасить заголовки — выделить их цветом. Может быть это и \colorbox{yellow}\textsc{3a6aBHo}, но часто \fcolorbox{red}{white}{\slshape{He особенно нужно}}. Иногда можно окрасить заголовки " \textcolor{blue}\textbf{BHflenHTb их цветом}. Для определения своих цветов можно использовать коман- ДУ
§ 4. Цвет шрифта 57 \definecolor{<Ha3BaHHe цвета>}{<атрибуты>} Параметр <название цвета>, задаваемый автором, определяет ключевое название нового цвета. Под атрибутами понимаются определение цвета с помощью палитры RGB, CMYK или шкалы серого (Gray). Можно также указывать смесь цветов с указанием процентных соотношений: <цвет1>!<процент1>!<цвет2>!<процент2>! и т. д. Если для последнего цвета процент указан не будет, то этого цвета возьмут до получения 100 %. К сожалению, поскольку этот учебник напечатан в чёрно- белом формате, невозможно ощутитьпрелесть от получаемого результата. Пример 4.11. Цвет шрифта. Золотое и очень красивое!!! Какой-то взятый наобум цвет. Ещё цвет наобум, \definecolor{goldKrgb}{0.85,. 66,0} \definecolor{zvet}{rgb}{0,0.5,0.5} ^ех^^УЪех^о1ог^оЫМЗолотое и очень красивое!!!}} \textbf{\textcolor{zvet}{KaKofi-TO взятый наобум цвет.}} \textbf{\textcolor{red! 20! magenta}{Enje цвет наобум.}} Оттенок серого цвета задаётся командой \textcolor[gray]{<CTeneHb серости>Н<текст>} Под <степенью серости> подразумевается число от 0 до 1, которое определяет оттенок серого. Нуль соответствует чёрному цвету, единица — белому. Пример 4.12. Оттенок серого. Оттенки серого смотрятся очень интересно, особенно если их умело использовать. Оттенки серого \textcolor[gray]{0.3}{cMOTpflTCH очень} \textcolor[gray]{0.5}{интересно, особенно} \textcolor[gray]{0.7}{e^H их умело использовать}.
58 Глава 4. Особенности азбук и шрифты § 5. Подключение других шрифтов Совместно с гЩХ'ом распространяется большое количество самых разных шрифтов. Однако их большая часть имеет существенный недостаток, снижающий их пользу для российского пользователя практически до нуля — они не имеют в своём составе символов кириллицы. В общем случае шрифты могут подключаться двумя способами: с помощью специального стилевого файла или с помощью команды выбора шрифта. При подключении с помощью стилевого файла происходит переопределение шрифтов, используемых в документе по умолчанию (Computer Modern), на предоставляемые пакетом. При использовании команд выбора шрифта он используется в пределах текущей группы, если эта команда не была применена в преамбуле или не были переопределены некоторые команды, о которых будет сказано позже. В соответствии с описанной выше классификацией признаков шрифта, существуют четыре команды выбора шрифтов, а также команда выбора кодировки шрифта и команда переключения на выбранный шрифт: \fontfamily{<ceMeficTBO>} выбирает семейство шрифта. \fontseries{<Hacbn4eHHOCTb>} задаёт степень насыщенность шрифта. Насыщенность различается для каждого отдельного шрифта, наиболее распростран- нёными являются: средний m (medium), светлый 1 (light), жирный b (bold), жирный разреженный bx (bold extended), полужирный sb (semibold), уплотнённый с (condensed) и т. д. Возможны их комбинации (не противоречащие самим себе): светлый уплотнённый lc (light condensed), полужирный уплотнённый sbc (semibold condensed) и т. д. \fontshape{<Ha4epTaHze>}
§ 5. Подключение других шрифтов 59 выбирает начертание. Наиболее распространённые: простое n (normal или upright), курсив it (italic), наклонное sl (slanted oblique), капитель sc (caps and small caps). \fontsize{<pa3Mep>}{<HHTepBan>} задаёт размер шрифта и одновременно расстояние междустро- ками (единицами измерения считаются пункты, не указываемые явно). Вместо этой команды лучше пользоваться стандартными \small, \large и т. д. \fontencoding{<KOflnpoBKa>} задаёт используемую кодировку шрифта. Этот параметр уже неявно вводился в главе 3, теперь же рассмотрим его (а также кодировку файла) подробнее. Кодировка файла (параметр пакета inputenc) указывает, в какой кодировке набран обрабатываемый файл: \usepackage[cpl251]{inputenc} Самыми распространёнными кодировками кириллицы являются cpl251 (Windows), koi8-r (Unix/Linux) и cp866 (DOS). Кодировка шрифта указывает, какие символы шрифта соответствуют тому или иному символу, последовательности символов или команде исходного файла. Существует всего четыре кодировки шрифта, поддерживающих кириллицу: T2A, T2B, T2C и X2. Эти кодировки содержат и кириллические, и латинские буквы и различаются лишь поддерживаемыми кириллическими языками (которые частично совпадают). Список поддерживаемых языков для каждой из кодировок приведён в документации к Ш^Х. Это связано с тем, что в кодировках T2* на кириллицу отдано лишь 128 из 256 ячеек символов. Остальные заняты латинскими буквами и символами, используемыми ТЩХ'ом. От этого недостатка свободна кодировка X2, но в этом случае невозможно использовать в документе кириллицу и латиницу одновременно.
60 Глава 4. Особенности азбук и шрифты Все T2* кодировки поддерживают русский язык, однако рекомендуется использовать кодировку Т2А — просто из соображений единообразия. Сразу после серии команд выбора шрифта, перед следующим текстом, должна идти команда \selectfont, переключающая шрифт. Кроме этого, есть ещё упрощённая форма выбора шрифта: \usefont{<KOflHpoBKa>}{<ceMeiicTBO>}{<Hacbn4eHHOCTb>}{0/o <начертание>} Она эквивалентна последовательности команд, устанавливающих кодировку шрифта, его семейство, серию и написание с последующей командой \selectfont. Кроме этих, есть ещё несколько команд, устанавливающих шрифты документа. С помощью этих команд можно поменять шрифты во всём документе: Команда \rmdefault \sfdefault \ttdefault \bfdefault \mddefault \itdefault \sldefault \scdefault \updefault Значение cmr cmss cmtt Ьх m it si sc n Используется \textrm \textsf \texttt \textbf \textmd \textit \textsl \textsc \textup \rmfamily \sffamily \ttfamily \bfseries \mdseries \itshape \slshape \scshape \upshape Переопределив какую-либо из этих команд с помощью команды \renewcommand, мы изменяем действие соответствующих команд, указанных в последних двух столбцах. Например, пусть нужно во всём тексте сменить степень насыщенности шрифта с жирного разреженного на жирный. Тогда достаточно в преамбуле документа указать \renewcommand{\bfdefault}{b} и каждый раз при использовании команд \textbf или \bfseries будет использоваться жирный шрифт.
§ 5. Подключение других шрифтов 61 Однако такое переопределение делает недоступным оригинальные гарнитуры. Если такая ситуация нежелательна, то можно определить собственные дополнительные команды. Пусть, например, нужно сделать отдельные команды для использования гарнитур шрифта Литературная прямой и прямой курсив (подробнее об этом шрифте см. приложение XIII). По аналогии с существующими, зададим три пары команд: - Сначала определим команды \ltdefault и \uidefault: \newconunand{\ltdefault}{tli} \newcommand{\uidefault}{ui} - Затем определим команды \ltfamily и \uishape: \newconmand{\ltfamily}{\fontfamily{\ltdefault}% \selectfont} \newcommand{\uishape}{\fontshape{\uidefault}% \selectfpnt} - Под конец определим команды \textlt и \textui с использованием команды \DeclareTextFontCommand: \DeclareTextFontConmand{\textlt}{\ltfamily} \DeclareTextFontCommand{\textui}{\uishape} лжч Команду \DeclareTextFontCommand можно применять ^^ только в преамбуле или стилевом файле. Полученные командыполностъю идентичны их встроенным АНАЛОГАМ С ТЕМ ПРЕИМУЩЕСТВОМ, ЧТО НЕ переопреде- ляют шрифты по умолчанию. Между прочим, написание пря- мойкурсив существует и для шрифта Computer Modem Ro- тпать. \textlt{IIony4eHHHe команды \uishape полностью идентичны их встроенным \scshape аналогам с тем \rmfamily преимуществом, что не} переопределяют шрифты по умолчанию. Между прочим, написание прямой курсив существует и для {\uishape шрифта Computer Modern Roman.}
62 Глава 4. Особенности азбук и шрифты \font.. .-команды, описанные выше, являются командами уровня стилевого файла, которые не рекомендуется использовать в самом документе. Наилучшим вариантом для совместного (со шрифтами Computer Modern) использования других шрифтов является определение (в преамбуле или стилевом файле) команд, переключающих шрифты, однако этот вопрос выходит за рамки книги. Рассмотрим теперь сами шрифты, поставляемые с ЖЩХ. Сначала обратимся к шрифтам, не поддерживающим кириллицу. Их можно разделить на две большие группы: шрифты, содержащие символы какого-либо языка, и символические шрифты, включающие в себя разные, не входящие в какой- либо язык, символы, в том числе и математические. К первым относятся, в первую очередь, сами шрифты Computer Modern, покрывающие большую часть европейских языков, и, например, шрифты groftur (ceMeucTBomfrak) и Univefsa (семейство uni); шрифты, повторяющие очертания старинных шрифтов: Humantft (семейство hmin), ROA^AM RtlSIU! (семейство rust) или SQUA>tLE CwVPS (семейство sqrc) и многие другие. К символическим шрифтам относятся, например, шрифты MarVoSym, содержащие большое количество символов, относящихся к самым разным областям деятельности человека: @, #fc, <&, V, #—, Ф, % и многие другие. Исчерпывающее описание символьных шрифтов находится в [2]. В этом документе, электронная версия которого распространяется вместе с Т^Х'ом1, приводится 4947 символов различных шрифтов и команды, необходимые для их получения (по состоянию на 2008/01/03). Особняком стоит шрифт TIPA, содержащий символы международного фонетического алфавита: [fo'netiks]. Он подключается пакетом tipa, который предоставляет команду \textipa, аргументом которой является сама транскрипция. Краткое описание кириллических шрифтов находится в приложении XIII. 1texmf/doc/info/symbols/comprehensive/symbols-a4.pdf
ГЛАВА 5 РАЗМЕТКА СТРАНИЦЫ ПОЧТИ всегда при подготовке текста возникает необходимость изменить размер текстового поля на странице, предлагаемый Т^Х'ом по умолчанию, или даже размер самой страницы, на что-то иное — например, нужно увеличить или уменьшить поля, набрать небольшое объявление на странице размера A5. Для этого в системе ГЩХ существует несколько удобных средств, которые будут подробно рассмотрены в этой главе. § 1. Изменение размеров листа В качестве основного средства будем использовать пакет geometry, предоставляющий широкие возможности для изменения размеров страницы. Этот пакет подключается в преамбуле следующим образом: \usepackage[<опции>]{geometry} где <опции> задают размеры страницы или текстового поля. Размер листа бумаги определяется опциями paperwidth и paperheight (ширина и высота страницы соответственно), т. e. \usepackage [paperwidth=74mm,paperheight=105nun] {geometry} которые объединяются одним общим параметром papersize: \usepackage [papersize={74mm,105mm}] {geometry} Для удобства в пакете уже определены некоторые размеры бумаги (в основном, соответствующие стандартам ISO), задаваемые опцией paper: Лист аОрарег alpaper a2paper аЗрарег a4paper a5paper Ширина, мм 841 594 420 297 210 148 Высота, мм 1189 841 594 420 297 210
64 Глава 5. Разметка страницы абрарег ЬОрарег Ырарег b2paper ЬЗрарег b4paper b5paper Ьбрарег letterpaper executivepaper legalpaper screen 105 1000 707 500 353 250 176 125 216 190 216 225 148 1414 1000 707 500 353 250 176 297 254 356 180 Использовать эту опцию можно двумя эквивалентными способами: \usepackage[paper=b5paper]{geometry} или \usepackage[b5paper]{geometry} лвь Хотя опция формата бумаги относится к пакету geometry, ^^ её лучше задавать при указании класса документа: \documentclass[b5paper]{article} В некоторых случаях (например, при получении файла в формате PDF) указание формата бумаги только в опциях пакета geometry приводит к некорректной установке размеров страниц в выходном файле. Опции portrait и landscape задают книжное и альбомное положение бумаги (длинная сторона ориентирована по вертикали или горизонтали соответственно); oneside/twoside- односторонний / двусторонний набор (последний включён по умолчанию для класса book); onecolumn/twocolumn — набор в одну или две колонки соответственно. Более подробно многоколоночный набор рассмотрен в § 4 данной главы.
§ 2. Задание размеров полей 65 § 2. Задание размеров полей Перед тем как рассмотреть параметры, определяющие размеры полей страницы, введём некоторые определения. Текстовым полем будем называть ту часть листа бумаги, непосредственно на которой производится печать. Расстояние, на котором текстовое поле печати находится от какого-либо края листа (левого, правого, верхнего или нижнего), назовём левым, правым, верхним или нижним полем соответственно. Главным текстовым полем будем считать ту часть листа, на которой находится текст без колонтитулов — заголовочных данных, расположенных над или под текстом. Текстовое поле включает в себя главное текстовое поле и, по желанию, колонтитулы. Рассмотрим параметры,влияющие на эти поля, подробнее. На рис. 5.1-5.3 приведены схемы, наглядно объясняющие работу следующих параметров: . — hscale, vscale — задают отношение ширины или высоты текстового поля к ширине или высоте листа бумаги: width=hscale*paperwidth height=vscale*paperheight Эти параметры объединены в опцию scale: \usepackage[hscale=0.9,vscale=0.6]{geometry} \usepackage[scale={0.9,0.6}]{geometry} По умолчанию, hscale=vscale=0.7. — width, height — ширина и высота текстового поля соответственно. Эти команды имеют синонимы totalwidth и totalheight и объединены параметром total: \usepackage [width=10cm,height=15cm] {geometry} \usepackage[total={10cm,15cm}]{geometry} — textwidth, textheight — действуют так же, как предыдущие параметры, но устанавливают ширину и высоту главного текстового поля. Они объединяются одной командой text={mnpHHa,BHcoTa}, имеющей синоним body:
66 Глава 5. Разметка страницы лист бумаги |paperheight| |left| (|inner|) главное текстовое поле |top| |height| |width| |bottom| верхниЙ колонтитул главное текстовое поле |right| (|outer|) |textwidth| |headheight| |headsep| |textheight| нижний колонтитул |footskip| |paperwidth| Рис. 5.1. Параметры пакета geometry, определяющие размер страницы \usepackage [textwidth=9cm,textheight=14cm] {geometry} \usepackage [text={9cm, 14cm}] {geometry} \usepackage [body={9cm, 14cm}] {geometry} Если в параметрах пакета указаны одновременно height и textheight (или width и textwidth), то height (width) игнорируется. lines — позволяет указать высоту главного текстового поля с помощью числа строк: \usepackage[lines=28]{geometry} left, right — задают левое (внутреннее) и правое (внешнее) поля листа. Эти команды имеют синонимы lmargin и inner для левого поля и rmargin и outer — для правого, а также объединённый вариант hmargin=foeBoe,npaBoe}: \usepackage[left=25mm,right=15mm]{geometry} \usepackage [hmargin={25mm, 15mm}] {geometry} top, bottom — верхнее и нижнее поля листа. Для этих команд есть синонимы tmargin и bmargin:
2. Задание размеров полей 67 лист бумал "*ве^Зашй'колонтйт^ГГ 1*°Р1 |textheight| >e текстовое поле "' |botto n| a) no умолчанию лист бумаги |top| |textheight| >e текстовое поле * ~н£яСнйй~кол~о~нтитул текстовое • поле |bottom| 6) |includehead| and |includefoot| Рис. 5.2. Влияние параметров includehead и includefoot \usepackage [top=15mm,bottom=15mm] {geometry} — includehead, includefoot, includemp — первыедвапара- метра включают верхний и нижний колонтитулы в текстовое поле при вычислениях. Они объединяются параметром includeheadfoot. Параметр includemp включает в текстовое поле ширину заметок на полях и расстояние до них. Параметр includeall аналогиченодновременно- му использованию includefoothead и includemp. - ignorehead, ignorefoot, ignoremp — аналогичны предыдущим параметрам, но исключают соответствующие поля из текстового поля при вычислениях. Они объединяются параметрами ignoreheadfoot и ignoreall. \usepackage [includefoothead, ignoremp] {geometry} Кроме пакета geometry, для изменения размеров листа или текстового поля можно использовать команды самого MJ<jX'a. Будем рассматривать только изменение размеров текстового поля, поскольку изменение размера листа бумаги с помощью команд ЖЩХ'а довольно трудно (необходимо использование
68 Глава 5. Разметка страницы текстовое поле текстовое поле верхний колонтитул главное текстовое поле |textwidth| нижний колонтитул |headheight| |headsep| |textheight| |footskip| a) |includeheadfoot| текстовое поле главное текстовое поле |textwidth| нижний колонтитул |textheight| |footskip| в) |indudefoot| верхний колонтитул главное текстовое поле |textwidth| ... нижний колонтитул! на полях \ |marginparwidth| |marginparsep| б) |includeall| текстовое поле главное текстовое поле |textwidth| нижний колонтитул', ш заметки ' на полях : |marginparwidth| |marginparsep| г) |includefoot,includemp| Рис. 5.3. Параметры includeheadfoot, includeall, includefoot и includemp в различных комбинациях файлов класса документа), что выводит его рассмотрение за рамки данной книги. Ширина текста задаётся с помощью команды \textwidth. Размеры полей регулируются несколько сложнее — можно задать размер лишь левого поля, размер же правого поля регулируется косвенно с помощью команды \textwidth. Для одностороннего набора (стили article, report) левое поле задаётся с
§ 2. Задание размеров полей 69 помощью команды \oddsidemargin, причем поле отсчитывается не от края листа, а от линии, параллельной краю и отстоящей от него на расстоянии в 1 дюйм (25.4 мм). Для двустороннего набора командой \oddsidemargin задается левое поле нечетных, а командой \evensidemargin — лeвoe поле четных страниц, также отсчитываемое с расстояния в 1 дюйм от края листа. Таким образом, чтобы задать односторонний лист с левым полем 25 мм и правым полем 15 мм, в преамбуле документа необходимо указать следующие команды: \oddsidemargin=-0.4mm % 25.4mm-0.4mm=25mm \textwidth=170mm °/e 210mm-15mm-25nnn=170nnn Высота текста также задаётся несколькими командами. С помощью команды \topmargin задаётся размер верхнего поля, который отсчитывается (как и в случае с \oddsidemargin) от линии, параллельной краю листа и отстоящей о него нарассто- янии в 1 дюйм. Но, в отличие от \oddsidemargin, \topmargin задаёт расстояние не до текста, а до верхнего колонтитула. Размер колонтитула задаётся с помощью команды \headheight; расстояние, отделяющее колонтитул от текста, — с помощью \headsep. Непосредственно высотатекста задается с помощью команды \textheight, на которую накладывается некоторое ограничение: отношение \textheight — \topskip \baselineskip должно быть целым числом. Здесь \topskip — расстояние от текстадо верхнего колонтитула, \baselineskip определяет расстояние между строками. Значения этих параметров для различных стилей указаны в табл. 5.1. Кратко определим указанные в этой таблице параметры, не описанные ранее. Параметр \footskip определяет расстояние от базисной линии последней строки текста до базисной линии первой строки нижнего колонтитула; \marginparwidth-
70 Глава 5. Разметка страницы Таблица 5.1. Параметры страницы Двусторонние стили \oddsidemargin \evensidemargin \marginparwidth \marginparsep \topmargin \headheight \headsep \topskip \baselineskip \textheight \textwidth \footskip article, report 10pt 44pt 82pt 107pt llpt llpt 36pt 74pt 100pt 12pt 21pt 59pt 85pt 10pt 27pt book 10pt 0.5in 1.5in 0.75in llpt 12pt 0.25in 1.25in lin 7pt 0.75in 0.73in 27pt 12pt 25pt || 0.25in 0.275in 10pt 12pt 526pt 345pt 13.6pt 526.8pt 360pt 30pt 15pt 550pt 390pt 10pt 12pt 502pt 4.5in 0.35in 13.6pt 526.8pt 5in 0.38in 15pt 550pt 5in 30pt Односторонние стили article, report \odds idemargin \evensidemargin \marginparvidth 10pt 63pt 63pt 90pt llpt 54pt 54pt 83pt 12pt 39.5pt 39.5pt 68pt ширина заметки на полях, \marginparsep — расстояние от заметки до текстового поля. Например, чтобы задать страницу одностороннего стиля со следующими параметрами: левое поле — 25 мм, правое —10 мм, верхнее и нижнее поля —15 мм, колонтитулы — 0 мм; в преамбулу необходимо поместить следующие команды: \oddsidemargin=-0.4mm % 25.4mm-0.4mm=25mm \textwidth=170mm \headheight=Omm \headsep=Omm \foot skip=0mm \topmargin=-15.4mm \textheight=264.6mm % 210mm-15mm-25mm=170mm X У. У. У. X [(297-30)/4.2]*4.2=264.6 Квадратные скобки в последней строке означают целую часть от выражения, стоящего в них. Для двустороннего стиля потребуется дополнительная команда \evensidemargin=-0.4mm.
§ 3. Разрывы страниц 71 § 3. Разрывы страниц Теперь скажем несколько слов о том, как можно разрывать страницы. Для того чтобы начать новую страницу, используется команда \newpage. Команды \clearpage и \cleardoublepage тоже начинают новые страницы, но с некоторыми особенностями. Если до их использования в тексте встречались плавающие объекты (см. главу 8), то все они будут выведены, а затем страница будет закончена. Опять же, команда \cleardoublepage работает таким образом, что следующая новаястраница всегда будет нечётная (при этом, если есть чётная страница, тоона просто пропускается — остаётся чистой). Чтобы просто оставить пустую страницу, нельзя использовать две команды \newpage\newpage подряд. Нужно написать \newpage \mbox{} \newpage § 4. Многоколоночный набор Описанные в начале главы опции onecolumn и twocolumn представляют собой крайне ограниченные средства для набора многоколоночного текста. Более функциональным и простым в использовании является пакет multicol. Этот пакет определяет окружение multicols с одним параметром: \begin{multicols}{<4Hcno колонок>} \end{multicols} Расстояние между колонками задаётся параметром \columnsep, толщина разделительной линии — параметром \columnseprule, по умолчанию равным нулю. Пример 5.1. Простой пример текста в две колонки. На следующий день на он очень расстроился, поджал пса надели широкий блестя- хвост й ушёл в ванную комна- щий ошейник. В первый мо- ту, размышляя — как бы обо- мент, поглядевшись в зеркало, драть его о сундук или ящик.
72 Глава 5. Разметка страницы Но очень скоро пёс понял,что да, но, пройдя по Пречистенке он — просто дурак. Зина по- до храма Христа, отлично совела его гулять на цепи по образил, что значит в жизни Обухову переулку. Пёс шёл, ошейник, как арестант, сгорая от сты- \begin{multicols}{2} На следующий день на пса надели широкий блестящий ошейник. В первый момент, поглядевшись в зеркало, он очень расстроился, поджал хвост и ушёл в ванную комнату, размышляя "— как бы ободрать его о сундук или ящик. Но очень скоро пёс понял, что он " просто дурак. Зина повела его гулять на цепи по Обухову переулку. Пёс шёл, как арестант, сгорая от стыда, но, пройдя по Пречистенке до храма Христа, отлично сообразил, что значит в жизни ошейник. \end{multicols} Если нужно принудительно окончить колонку и начать новую, следует применить команду \columnbreak, после которой обязательно должен начинаться новый абзац. Пример 5.2. Более сложный вариант с набором в три колонки, с уменьшенным расстоянием между ними и разделительной линейкой. Бешеная зависть читалась в глазах у всех встречных псов, а у Мёртвого переулка какой-то долговязый с обрубленным хвостом дворняга облаял его «барской сволочью» и «шестёркой». Когда пересекали трамвайные рельсы, милиционер посмотрел на ошейник с удовольствием и уважением, а когда вернулись, произошло самое невиданное в жизни: Фёдор- швейцар собственноручно отпёр парадную дверь и впустил Шарика.
§4. Многоколоночный набор 73 \begin{multicols}{3}\colunmsep=9pt\col\Hnnseprule=. 4pt Бешенаязависть читалась в глазах у всех встречных псов, а у Мёртвого переулка какой-то долговязый с обрубленным хвостом дворняга облаял его «барской сволочью» и «шестёркой». Когда пересекали трамвайные рельсы, милиционер посмотрел на ошейник с удовольствием и уважением, а когда вернулись, произошло самое невиданное в жизни: Фёдор-швейцар собственноручно отпёр парадную дверь и впустил Шарика. \end{multicols} Лй^ Набор в несколькоколонок влияет на результат работы ^^ некоторых команд. Например, плавающие объекты ограничены по ширине одной колонкой. Это ограничение можно снять, использовав варианты данных окружений со звёздочкой: figure* и table*, которые позволяют делать плавающие объекты шириной во всю страницу. Однако в этом случае плавающий объект обязательно не будет размещён на той странице, где он был в исходном тексте.
ГЛАВА 6 СЕКЦИОНИРОВАНИЕ И РУБРИКАЦИЯ СИСТЕМА T^X значительно упрощает процесс секционирования издания или документа, т. e. его разбивку на главы, разделы или параграфы. В дальнейшем под секцией документа будем понимать часть, главу, раздел, параграф и т. д. — любую единицу деления документа на составные логические части. При этом ЖЩХ автоматически ставит номер секции, выделяет название с помощью атрибутов шрифта — насыщен- ности и начертания, выставляет до и после названия отбивки — отступы заданной величины. Система заголовков издания или документа, определяющая его структуру, связь и вложенность разделов, частей, глав называется рубрикацией. Под рубрикой будем понимать заголовок секции любого типа и уровня вложенности (подразделы, подпараграфы). Рубрики в книге или документе служат для логического деления текста на разделы, части, главы и т. д. При рубрикации в основном руководствуются значимостью рубрик, поэтому заголовки большей значимости (уровня) набирают более крупным шрифтом, чем заголовки меньшей значимости (уровня). Соответственно выбирают размеры и начертания шрифта. При этом предпочтительно пользоваться шрифтами одной гарнитуры. Отбивку одного заголовка от текста или другого заголовка—выставление отступов в рубриках — производят с таким расчётом, чтобы пробел под заголовком был примерно в полтора раза меньше отбивки от предыдущего текста (или рубрики), например, пробел перед заголовком 1,5 см, а после заголовка — 1 см. § 1. Стандартное секционирование Рассмотрим стандартные команды секционирования, которые используются в системе
§ 1. Стандартное секционирование 75 \part — часть; Xchapter — глава (кроме класса article); \subsection — подраздел; \subsubsection — подподраздел; Xparagraph — параграф; \ subparagraph — подпараграф. В зависимости от класса документа, стандартное оформление видов секций может отличаться. Заголовок любой секции может состоять из нескольких строк, оформленных в соответствии с уровнем секции. Секция part начинается с новой нечётной страницы. Заголовок выравнивается по центру листа. Первая строка представляет собой слово «Часть» и номер части римскими цифрами. На следующих строках пишется название части. Следующая страница — чётная — пропускается, и текст начинается с ближайшей нечётной страницы. Однако для класса report текст после названия части начинается не с ближайшей нечётной, а со следующей страницы. Для класса article название части выровнено по левому краю, и текст начинается с текущей страницы. Секция chapter используется только в классе book. Она начинается с новой нечётной страницы, Заголовок выравнивается по левому краю, с отступом от верха листа. Первая строка представляет собой слово «Глава» и номер главы арабскими цифрами. На следующих строках пишется название главы. Текст начинается с текущей страницы. Секция section начинается с текущей страницы. Заголовок выравнивается по левому краю с отступом от предыдущего текста. Сначала ставится номер раздела арабскими цифрами, затем через пробел название. Секция subsection отличается от section лишь уменьшенным размером шрифта заголовка и нумерацией: сначала идёт номер раздела, в который вложен этот подраздел, а затем через точку номер подраздела арабскими цифрами. Через пробел пишется название.
76 Глава 6. Секционирование и рубрикация Для секции subsubsection номер представляет собой три числа: номера раздела, подраздела и подподраздела, разделённые точками. Секции paragraph и subparagraph не нумеруются. Текст после заголовка начинается с текущей строки. Подпараграф выделяется только смещением всего текста подпараграфа вправо. Кроме того, класс book имеет дополнительное структурное деление: \frontmatter, \mainmatter, \backmatter. Оно влияет не только на оформление, но и на предназначение самих частей книги. Раздел frontmatter включает в себя некоторую предварительную информацию о книге, например, предисловие или введение. По умолчанию, нумерация страниц в нём ведётся заглавными римскими цифрами, а главы не нумеруются, но вносятся в оглавление. Раздел mainmatter включает в себя основной текст книги. Нумерация страниц начинается с единицы и ведётся арабскими цифрами, а главы также нумеруются арабскими цифрами. Раздел backmatter заключает в себе окончательную информацию — указатели, литературу и т. д. Нумерация страниц продолжается из предыдущего раздела, главы не нумеруются, но вносятся в оглавление. Кроме этого, существует команда \appendix, которая переопределяет самую крупную команду секционирования (после \part: \section-B случае класса article и \chapter-B случае book) следующим образом: нумерация этой-секции проводится заглавными латинскими буквами и, в случае класса book, слово «Глава» заменяется на «Приложение». § 2. Создание многоуровневой рубрикации Все команды секционирования имеют одинаковый вид, например: \chapter[<параметр>]{<название>} \subsection[<параметр>]{<название>} \paragraph[<параметр>]{<название>}
§ 2. Создание многоуровневой рубрикации 77 Параметр <название> представляет собой непосредственно тот текст, который будет выводиться в оглавлении и в самом заголовке секции. Необязательный <параметр> представляет собой строку, которая выводится в оглавлении и верхнем колонтитуле, и чаще всего используется, если оригинальное название слишком длинное. Например, команда \зес^оп[Элементы оформления]{Элементы оформления стандартных классов документов} создаст раздел «Элементы оформления стандартных классов документов», который в оглавлении и колонтитулах будет иметь название «Элементы оформления». В выходном файле (без переопределений) всестандартные секциинумеруются, начиная с первой. Система Т^Кавтомати- чески нумерует части, главы, разделы и пр. Следует отметить, что нумерация всех заголовков (section, subsection и т. п.) делается только до определённой глубины. По умолчанию глуби- нанумерацииравнатрём: section, subsectionnsubsubsection. Однако она может быть изменена принудительно с помощью параметров tocdepth и secnumdepth. Параметр tocdepthnoKa3bmaeT, заголовки до какого уровня включительно выводить в оглавление. Если этот параметр равен 2, тогда в оглавление будут выводиться заголовки только 1-го и 2-го уровней. По умолчанию установлено З.Для его изменения используется команда \setcounter{tocdepth}{N} где N — максимальная глубина выводимых в оглавление секций. Для задания определённой глубины секций, при которой они будут автоматически нумероваться, используется команда \setcounter{secnumdepth}{N} где N — максимальное число вложенных секций. Таким образом, заголовок секции будет пронумерован только в том случае, если его «глубина» не больше secnumdepth,
78 Глава 6. Секционирование и рубрикация и появится в оглавлении или содержании, если «глубина» не больше значения tocdepth. Например, задав в преамбуле документа \setcoxmter{tocdepth}{2}\setco\mter{secnumdepth}{3} получаем, что, например, «Секция 1.4.3» будет пронумерована, однако не будет выведена в содержании. Кроме этого, все команды секционирования имеют *-форму. Это означает, что они могут принимать следующий вид: \section* [<параметр>] {<название>} В этом случае перед названием раздела не будет ставиться номер, и он не будет выводиться в оглавлении (содержании). Параметры <параметр> и <название> имеют абсолютно тот же смысл и назначение, что и в обычной команде секционирования. Единственным подводным камнем такого многоуровневого вложения может служить следующее. Не рекомендуется использовать команды subsection и subsubsection без использования команды section. B этом нет никакой опасности, к тому же ГЩК не выдаст ошибку. Однако в этом случае номера будут выглядеть неестественно и некрасиво: 0.1, 0.5, 0.3.1 и т. д. Точно также, если в классе book не определять секцию chapter, то номера секций section будут также начинаться с нуля: 0.1, 0.4 и т. д., что, вообще говоря, неправильно и нелогично. Правда, это можно исправить, переопределив команды, связанные с номером раздела (см. §5 на стр. 179). § 3. Создание оглавления Содержание или оглавление1 создаётся с помощью команды \tableofcontents. В указанном месте в выходном файле будет помещено оглавление определённого (стандартного для выбранного класса) вида. *B данной книге понятия «оглавление» и «содержание» являются эквивалентными, хотя формально они отличаются.
§ 3. Создание оглавления 79 Процесс создания оглавления в самой системе ТЩХ происходит в два этапа. На первом этапе — при первой компиляции документа после добавления команды или изменения последовательности элементов секционирования (добавления, удаления, изменения порядка) — система просматривает все секции и записывает их определённым образом в файл с расширением toc. Во время второй компиляции элементы из toc-файла формируются в виде оглавления, которое помещается в выходном файле на указанноеместо. Поэтому рекомендуется компилировать документ два раза. Тем не менее здесь следует сделать небольшую оговорку. При выводе документа в формат pdf или ps можно компилировать всего один раз — оба этапа формирования содержания выполняются за один проход. Вид оглавления зависит от выбранного класса документа. Основные отличия состоят в положении на странице, названии и способе оформления. Отступы и выделения различными атрибутами шрифта выполняются системой автоматически. Для класса book оглавление создаётся на отдельной нечётной странице и называется «Оглавление». Названия и номера страниц частей и глав выделяются полужирным шрифтом. Для класса report оглавление создаётся на отдельной чистой странице и называется «Оглавление». Названия и номера страниц частей и глав выделяются полужирным шрифтом. Для класса article оглавление создаётся на текущей странице и называется «Содержание». Названия и номера страниц частей и разделов выделяются полужирным шрифтом. Если в классе article нужно создать содержание на от- дельнойстранице, то перед командой для содержания нужно поставить команду для начала новой страницы или для вывода всех плавающих объектов и перехода на новый лист, например, \newpage У0 Для новой страницы \tableofcontents или \clearpage \tableofcontents
80 Глава 6. Секционирование и рубрикация Оба варианта возможны и удобны. Если в документе мало или вообще нет «плавающих» объектов, то можно вообще не использовать команду \clearpage (см. главу 8). Очень часто оглавление в книгах набирается шрифтом меньшего размера. Для расширения кругозора можно сказать, что это является нормой для ручного набора текста, хотя относится скорее только к книгам. Для простых работ — отчётов, курсовых работ, рефератов и пр. — это можно не делать, тем более что оглавление в таких работах обычно не превосходит двух- трёх страниц, а размеры текстового поля достаточно велики. Тем не менее для изменения размера всего содержания к нему можно применить команду изменения размера шрифта, например: {\small \tableofcontents } § 4. Переименование оглавления По умолчанию в русскоязычных настройках системы ВД^Х введено название «Оглавление» или «Содержание» в зависимости от класса документа, определённого в преамбуле. С помощью команды \renewcommand{\contentsname}{<HOBoe название>} которая ставится непосредственно в основном тексте перед командой \tableofcontents, название можно изменить на любое другое. Под <новым названием> понимается строка, которая будет выводиться в качестве названия для оглавления. Команда \renewcommand позволяет обновлять и переобозначать параметры многих команд и установок. В данном случае в качестве переименуемого параметра выступает название содер- жания — ХсоЕЛе^эпате, внутри которого содержится строка с названием. Пример 6.1. Переименуем «Оглавление» на «План документа». \renewconmand{\contentsname}{toaH документа} При этом сохранятся все отступы, настройки размера шрифта и его атрибутов — начертания и насыщенности.
§ 5. Нестандартное секционирование 81 § 5. Нестандартное секционирование Во многих случаях автоматическая нумерация секций документа не нужна или просто неприемлема. Это может быть обусловлено простым нежеланием автора, правилами оформления того или иного документа или другими соображениями. Чтобы не ставить номера в рубриках и произвольно задавать их внешний вид спомощью атрибутов шрифта (начертания, насыщенности) и текста (например, отступов) — создавать своё, нестандартное секционирование, можно добавлять элементы непосредственно в toc-файл. Сначала остановимся на самом toc-файле. Он содержит информацию о языке ввода документа, уровне вложенности всех секций, страницах, где они появляются, их номерах, а также другую более общую или специфическую информацию. Название toc происходит от англ. table of contents. Для принудительного добавления элемента в этот файл используется команда \addcontentsline{toc}{<THn секции>Н<название>} Параметр toc показывает, в какой именно файл необходимо добавить элемент — в данном случае в файл toc. <тип секции> определяет, какого уровня будет вновь созданный раздел. В качестве этого параметра можно писать любое название секции: part, chapter, section и т. д. Параметр <название> показывает, какое конкретно название будет выводиться в оглавлении (и в случае для part или chapter в верхнем колонтитуле). Однако данная команда только лишь добавляетстроку в toc-файл и, следовательно, выводит её в оглавлении, где эта строка оформляется в соответствии с заданным типом секции. Непосредственно заголовок нужно создавать самостоятельно. Рассмотрим два самых простых способа. Пример 6.2/Принудительноедобавление заголовка «Введение» уровня section. \addcontentsline{toc}{section}{BBefleHHe} \section*{BBefleHHe}
82 Глава 6. Секционирование и рубрикация Пример 6.3. Принудительное добавление заголовка «Введение» уровня section. \addcontentsline{tocHsection}{BBefleme} {\Large\textbf{BBefleHHe}}\vspace{12pt} В первом случае будет создан заголовок уровня section без номера под названием «Введение», выровненный в соответствии с внутренними настройками выбранного класса. Во втором случае тоже создаётся заголовок уровня section. Отдельно создаётся строка «Введение» полужирным шрифтом размера Large, после которой делается отступ 12pt. В обоих примерах названия «Введение» добавляются в оглавление и оформляются как для уровня section. В некоторых случаях второй вариант создания секции предпочтительнее. Например, таким способом можно создать альтернативное оформление документа, оформить рубрики практически любым необходимым образом: выровнять по центру, изменить шрифт без каких бы то ни было проблем, его начертание и насыщенность, выставить любые отступы и т. п. Крупным недостатком такого метода нестандартного оформления является необходимость постоянного ввода большого количества команд для каждой секции. Этот недостаток можно преодолеть, переопределив стандартные или создав собственные команды секционирования, что, правда, выходит за рамки данной книги. § 6. Ссылки на рубрику Очень часто возникает необходимость сослаться на какой- нибудь раздел или главу. Хотя это можно сделать и вручную, но, когда количество разделов переваливает за пару десятков, да ещё вдруг в самое начало нужно вставить нечто дополнительно. .. Результат очевиден — сбивается вся нумерация. И в этом случае система Ш^Х значительно упрощает жизнь: она позволяет делать ссылки из текста на рубрики, причём даже не нужно знать номер секции, важно лишь поставить метку— определить ключевое слово для ссылки в соответствующей рубрике, например:
§ 6. Ссылки на рубрику 83 \section{nocTaHOBKa задачи} \label{PostZadachi} Теперь, чтобы сослаться из текста на отмеченную рубрику, нужно использовать команду ref, например: В pa3flene~\ref{PostZadachi} показано... После повторной трансляции (для выходного файла формата dvi, для pdf и ps достаточно одного раза) в выходном файле получится следующий результат: «В разделе N показано...», где N — номерраздела «Постановка задачи».
ГЛАВА 7 ОБЩЕЕ ОФОРМЛЕНИЕ ПЕРЕЙдЁм к рассмотрению других элементов и особенностей оформления документа. Это, прежде всего, различные способы нумерации страниц, ссылки на страницы, сноски, линии и подчёркивания текста, специальные окружения, создание нумерованных и ненумерованных списков, перечислений, списка литературы. § 1. Нумерация страниц Нумерация страниц при создании документа в системе ЖЩХ производится автоматически. В зависимости от класса документа, по умолчанию номер ставится или внизу страницы по центру строки (классы article и report), или вверху страницы слева (чётные) или справа (нечётные) (класс book). Во многих случаях возникает необходимость отключать нумерацию страниц по всему документу. Это делается с помощью команды \pagestyle{empty} которая пишется в преамбуле. Если нужно отключить номер на определённой странице, например на титульном листе, то используется команда \thispagestyle{empty} которая ставится непосредственно на той странице, где не нужен номер. Лучше всего писать эту команду в самом начале страницы. При этом номер страницы сохраняется и выводится в оглавлении, хотя и не печатается на этой странице. По умолчанию страницы нумеруются арабскими цифрами. Для изменения стиля нумерации используется команда \pagenumbering{<CTmn>>}
-■ § 2. Ссылки на страницы 85 которая пишется в преамбуле. Параметр <стиль> задаёт вид оформления, например: arabic — арабскиецифры; roman — малые римские цифры (i, ii, vi, ix); Roman — прописные римские цифры(1, II, VI, IX); alph — малые латинские буквы (a, b, с); Alph — прописные латинские буквы (А, В, С); asbuk — малыекириллическиебуквы; Asbuk — прописные кириллические буквы. ГфП Заметим, что количество букв, вообще говоря, ограниче- L&J но? Так что для больших документов лучше использовать arabic или roman. Пример 7.1. Задание нумерации страниц большими римскими цифрами. \documentclass{article} \pagenumbering{Roman} \begin{document} \end{document} § 2. Ссылки на страницы Напрямую ссылаться на страницу нельзя, но в ЖЩК предусмотрена команда, выводящая номер страницы, на которой поставлена метка. Метка ставится с помощью стандартной команды \1аЬе1{<метка>} где <метка> — это ключевое название в виде строки. Ссылка на страницу, на которой находится метка, задаётся командой \pageref{<MeTKa>} Таким образом, в тексте будет выведен номер той страницы, где поставлена метка. Если нумерация страниц задана, например, латинскими буквами, то будет выведена именно эта латинская буква, если римскими цифрами — то соответствующая
86 Глава 7. Общее оформление цифра. При добавлении страниц или изменении их нумерации ссылка обновляется при трансляции автоматически. Правда, здесь следует отметить, что при создании файла формата DVI необходимо транслировать два раза, а при форматах PDF или PS достаточно одного. § 3. Сноски Команда \footnote [<HOMep>] {<текст>} создаёт нумерованную сноску внизу текущей страницы. Необязательный параметр <номер> используется для принудительного изменения автоматического номера сноски. Эту команду нельзя использовать в заголовках секций, подписях к рисункам, таблицах и т. п. Пример 7.2. Пример создания сноски1. Пример создания CHOCKH\footnote{BoT так и получается сноска на этой странице.}. Пример 7.3. Пример создания сноски с искусственным номером74 и после этого — обычной2. Пример создания сноски с искусственным номером \footnote[74]{CHocKa с номером 74, интересно и немного странно.} и после этого "— обычной \footnote{06breHaa сноска.}. Как видим, искусственная нумерация не нарушает общей, и после номера 74 следует номер 2. Кроме стандартных сносок, можно добавить пометки на полях, выносимые на внешнюю сторону листа (правый край для односторонних стилей или чётных страниц двусторонних стилей и левый край для нечётных страниц двусторонних стилей), если поля достаточно велики. Эти пометки задаются командой *Вот так и получается сноска на этой странице. 74Сноска с номером 74, интересно и немного странно. 2Обычная сноска.
§4. Линии иподчёркивания 87 \marginpar{3aMeT\-Ka} Пометки на полях находятсяна той же высоте, что и строка, в которой они вставлены. Если команда, задающая пометку на полях, идёт вплотную к какому-либо символу, неявляюще- муся пробелом, то сама пометка будет расположена на высоте этого символа. Если же Т^Х'у не удаётся так расположить заметку (например, если это место уже занято предыдущей заметкой), то заметка располагается как можно ближе к этому уровню. § 4. Линии и подчёркивания Хотя рисование линий в тексте и выделение слов с помощью подчёркивания или заключения в рамку встречаются не так уж и часто, необходимо упомянуть и о этих средствах; Чтобы подчеркнуть какой-то текст, используется команда \underline{<TeKCT>} которая подчёркивает<текст>. Отметим, что этот текст может быть размещён только на одной строке, в противном случае он не переносится, а «вылезает» за крайлиста с предупреждением транслятора. Для заключения текста в рамку используется команда \fbox{<TeKCT>} которая по аналогии с предыдущей командой заключает слова, расположенныена одной строке, в рамку. Пример 7.4. Подчёркнутый текст смотрится гораздо лучше, нежели текст, заключённый в «Красивую рамку». \imderline{nofl4epKHyTbEH текст} смотрится гораздо лучше, нежели текст, заключённыйв \fbox{<<KpacHByro рамку».} Чтобызаключить в рамку целый абзац, нужно представить его в виде блока — неразрывного объекта, который имеет размеры, содержит внутри что-то (может быть,несколько строк),
88 Глава 7. Общее оформление но воспринимается транслятором как нечто одно (например, как один огромный символ). Обычный блок из текста создаётся с помощью команды \рагЬох{<ширина>Н<текст>} где обязательный параметр <ширина> определяет ширину блока, внутри которого заключается <текст>, в общем случае в несколько строк. шириной в три _ m w ^ сантиметра и вы- Пример 7.5. Ьлок текста ^ воспринимает- сотой в несколько строк ся как один «очень большой символ». Блок TeKCTa\quad \рагЬох{Зст}{шириной в три сантиметра и высотой в несколько CTpoK>\quad воспринимается как один «очень большой символ». Теперь можно применить к этому объекту команду для заключения его в рамку. Пример 7.6. Блок текста шириной в три сантиметра и высотой в несколько строк воспринимается как один «очень большой символ». Блок TeKcxa\quad \£Ьох{\рагЬох{ЗстМшириной в три сантиметра и высотой в несколько CTpoK}}\quad воспринимается как один «очень большой символ». Для рисования линий во всю ширину строки можно использовать команды \hrulefill \dotfill которые рисуют сплошную линию и линию из точек (оттбчие) соответственно.
§ 5. Списки и перечисления 89 Пример 7.7. Линейки: отточие: \ и простая линия: . OTTO4He:\dotfill\newline и простая линия:\Ьги1е^11 § 5. Списки и перечисления Очень часто в тексте встречаются списки. Они могут отмечаться чёрными кружочками, могут цифрами или буквами, а иногда и любыми другими символами (тире, квадратиками, сердечками и т. п.). Для создания списков, которые выравниваются, нумеруются и рисуются автоматически, в ВД^Х'е предусмотрены три окружения. Простые, ненумерованные перечисления создаются с помощью окружения itemize. Чтобы с его помощью по- лучитьсписок в исходном файле нужно набрать следующее: \begin{itemize} \гЬет[<заголовок>] Первый элемент списка \гЬет[<заголовок>]Второй элемент списка \^ет[<заголовок>] Третий элемент списка \end{itemize} Необязательный параметр <заголовок> задаёт краткий заголовок или символ, который выделяет элементы списка. Если <заголовок> не писать, то элементы перечисления будут выделяться чёрным кружочком. . Пример 7.8. Основные признаки государства, которые можно назвать общепризнанными: * Наличие публичной власти, которая располагает аппаратом управления и принуждения. - Государственный суверенитет. ! Общеобязательный характер актов, издаваемых государством.
90 Глава 7. Общее оформление • Взимание налогов. • Территориальная организация населения. Основные признаки государства, которые можно назвать общепризнаннымиi \begin{itemize} \item[*] Наличие публичной власти, располагающей аппаратом управления и принуждения. \item[—] Государственный суверенитет. \item[!] Общеобязательный характер актов, издаваемых государством. \item Взимание налогов. \item Территориальная организация населения. \end{itemize} Для создания нумерованных списков существует окружение enumerate. Оно очень похоже на окружение itemize. \begin{enumerate} \item Первый элемент списка \item Второй элемент списка \item Третий элемент списка \end{enumerate} Пример 7,9. Основные признаки унитарного государства: 1) полное политическое и территориальное единство государства; 2) для населения установлено единое гражданство; 3) единая структура государственного аппарата на всей территории государства, единая судебная система; 4) единая система законодательства;
§ 5. Списки и перечисления 91 5) одноканальная система налогов. Основные признаки унитарного государства:, \begin{enumerate} \item полное политическое и территориальное единство государства; \item для населения установлено единое гражданство; \item единая структура государственного аппарата на всей территории государства, единая судебнаясистема; \item единая система законодательства; \item одноканальная система налогов. \end{enumerate} Обычное перечисление имеет ограниченную глубину вложения, равную четырём. Это значит, что отступы и символы для вложенных списков выбираются системой автоматически (если, конечно, не менять их принудительно). Вложенность создаётся с помощью нового окружения внутри уже существующего. Пример 7.10. Перечень имеет определённую глубину вложения. • Элементыпервого уровня вложениявыделяются чёрными кружочками. — Элементы второго уровня выделяются тире. # Это тире тоже можно поменять. Раз Этот элемент мы принудительно выделим словомч «Раз». - Теперь создадим элементы третьего уровня. * Как видно, они выделяются уже звёздочками. * И их тоже можно менять. • И вот наконец максимальная глубина вложения. Она отмечается точками. • Если сделать глубинубольше четырёх, выдаст ошибку.
92 Глава 7. Общее оформление :) Теперь нет труда составить практически любой список, но есть ещё очень много тонкостей. Например, слишком большие отступы. \begin{itemize} \item Элементы первого уровня вложения выделяются чёрными кружочками, \begin{itemize} \item Элементы второго уровня выделяются тире, \item[\#] Это тире тоже можно поменять, \end{itemize} \item[\textbf{Pa3>] Этот элемент мы принудительно выделим словом «Раз». \begin{itemize} \item Теперь создадим элементы третьего уровня, \begin{itemize} \item Как видно, они выделяются уже звёздочками, \item[\textbf{*}] И их тоже можно менять, \begin{itemize} \item И вот наконец максимальная глубина вложения. Она отмечается точками, \item Если сделать глубину больше четырёх, \LaTeX\ выдаст ошибку, \end{itemize} \end{itemize} \end{itemize} \item[\textbf{:)}] Теперь нет труда составить практически любой список, но есть ещё очень много тонкостей. Например, слишком большие отступы, \end{itemize} Окружения enumerate также можно вкладывать друг в друга с теми же ограничениями. Кроме того, на элементы таких списков можно ссылаться. Для этого нужно поставить метку в соответствующем пункте с помощью команды \1аЬе1{<метка>}.
§ 5. Списки и перечисления 93 Пример 7.11. Нумерованный список также имеет определённую глубину вложения. 1. Элементы первого уровня вложения нумеруются арабскими цифрами с точкой. (а) Элементы второго уровня выделяются малыми латинскими буквами в круглых скобках. 2. Опять же элемент первого уровня. Как видим, нумерация автоматическая. (а) Теперь создадим элементы третьего уровня. i. Как видно, они выделяются уже малыми римскими цифрами, ii. И теперь создаём самый «глубокий» список. A. Максимальная глубина вложения равна четырём. Эти элементы отмечаются заглавными латинскими буквами с точкой. B. Если сделать глубину больше четырёх, ЖЩХ выдаст ошибку. 3. Теперь нет труда составить практически любой нумерованный список, но есть ещё очень много тонкостей. Например, список так просто нельзя прервать обычным текстом, а потом продолжить его. \begin{enumerate} \item Элементы первого уровня вложения нумеруются арабскими цифрами с точкой. \begin{enumerate} \item Элементы второгоуровня выделяются малыми латинскими буквами в круглых скобках. \end{enumerate} \item Опять же элемент первого уровня. Как видим, нумерация автоматическая. \begin{enumerate} \item Теперь создадим элементы третьего уровня.
94 Глава 7. Общее оформление \begin{enumerate} \item Как видно, они выделяются уже малыми римскими цифрами. \item И теперь создаём самый «глубокий» список, \begin{enumerate} \item\label{element} Максимальная глубина вложения равна четырём. Эти элементы отмечаются заглавными латинскими буквами с точкой, \item Если сделать глубину больше четырёх, \LaTeX\ выдаст ошибку, \end{enumerate} \end{enumerate} \end{enumerate} \item Теперь нет труда составить практически любой нумерованный список, но есть ещё очень много тонкостей. Например, список так просто нельзя прервать обычным текстом, а потом продолжить его. \end{enumerate} При изменении порядка очерёдности элементов или их добавлении и удалении нумерация элементов обновляется автоматически. Опять же, можно сослаться на тот элемент, которому присвоена метка, в данном случае это 2(a)iiA на стр. 93. Это задаётся с помощью команды \ref{element} на CTp.~\pageref{element} Окружение description предназначено для списков и перечислений, в которых каждый пункт имеет заголовок. Каждый элемент, как и в других списках, выделяется стандартной командой \гЬет[<заголовок>], где Оаголовок> выделяется полужирным шрифтом (хотя его можно менять непосредственно на месте), и по нему происходит выравнивание списка. Пример 7.12. Перечисление с объяснениями или описание. Катализ — процесс, заключающийся в изменении скорости химических реакций в присутствии веществ, называемых катализаторами.
§ 5. Списки и перечисления 95 Катализаторы — вещества, изменяющие скорость химической реакции, которые могут участвовать в реакции, входить в состав промежуточных продуктов, но не входят в состав конечных продуктов реакции и после окончания реакции остаются неизменными. Каталитические реакции — реакции, протекающие в присутствии катализаторов. \begin{description} \^ет[Катализ] "— процесс, заключающийся в изменении скорости химических реакций в присутствии веществ, называемых катализаторами. \з^ет[Катализаторы] "— вещества, изменяющие скорость химической реакции, которые могут участвовать в реакции, входить в состав промежуточных продуктов, но не входят в состав конечныхпродуктов реакции и после окончания реакции остаются неизменными. \з^ет[Каталитические реакции] " реакции, протекающие в присутствии катализаторов, \end{description} Данное окружение может быть использовано всловарях или при объяснениях чего-либо, хотя ему можно придумать и другое назначение. Разумеется, все эти окружения очень полезны. Однако они занимают слишком много места, да и иногда хочется,напри- мер, прервать список, вставить туда абзац или два обычного текста, а затем снова продолжить список. Оказывается, это не так сложно. Для реализации таких действий со всеми списками нужно в преамбуле загрузить пакет \usepackage{enumitem} В нём содержатся переопределения команд для списков всех трёх типов, которые включаются с помощью необязательных параметров окружения, например,
96 Глава 7. Общее оформление \begin{enumerate} [<параметры>] \end{enumerate} Параметры внутри квадратных скобок можно перечислять через запятую. Рассмотрим три параметра: — nolistsep убирает все вертикальные отступы между элементами, а также до и после списка. — noitemsep убирает все вертикальные отступы только между элементами. — resume продолжает ближайший ранее законченный список. Пример 7.13. Пример изменения списка с прерыванием нумерации. 1) В целом, список ничем не отличается. 2) Точно такая же нумерация. 3) Правда, уже нет таких отступов. Простой текст. Здесь можно добавить какие-то комментарии, что-то описать. Далее нумерация списка продолжается. 4) И вот, список продолжен. \begin{enumerate}[nolistsep] \item В целом, список ничем не отличается. \item Точно такая же нумерация. \item Правда, уже нет таких отступов. \end{enumerate} Простой текст. Здесь можно добавить какие-то комментарии, что-то описать. Далее нумерация списка продолжается, \begin{enumerate}[nolistsep,resume] \item И вот, список продолжен, \end{enumerate} § 6. Специальные окружения Специальные окружения предназначены для художественного оформления специфических элементов текста. Хотя эти
§ 6. Специальные окружения 97 средства не идеальны, тем не менее о них стоит сказать отдельно, поскольку они сильно упрощают процесс оформления, а иногда и просто необходимы. Окружение quotation используется для набора цитат. Текст выравнивается по ширине со всемипереносами, но справа и слева делаются отступы. При этом абзацы, как и обычно, выделяются отступами. Для перехода к следующему абзацу ис- пользуетсяпустая строка. Пример 7.14. Можно увидеть невидимое, услышать самое тихое, уловить самый тонкий аромат, можно даже ощутить самое легкое и неосязаемое... Но нельзя объять необъятное. \begin{quotation}\slshape Можно увидеть невидимое,усльппатьсамое тихое, уловить самый тонкий аромат, можно даже ощутить самое легкое HHeocfl3aeMoe\ldots Нонельзя объять необъятное, \end{quotation} В этом окружении можно использовать любые команды для изменениягарнитурышрифта. Окружение quote также предназначено для цитирования. В отличие от предыдущего окружения, в данном случае абзацный отступ не ставится. Пример 7.15. Mootcno уеидетпь невидимое, услышать самое тихое, уловить самый тонкий аромат, можно даже ощутить самое легкое и неосязаемое... Но нельзя объять необъятное. \begin{quote}\itshape Можно увидеть невидимое, услышать самое тихое, уловить
98 Глава 7. Общее оформление самый тонкий аромат, можно даже ощутить самое легкое и Heoc&3aeMoe\ldots Но нельзя объять необъятное, \end{quote} Окружение verbatim является одним из самых интересных в системе ВД^Х, поскольку позволяет выводить буквально всё, что в него помещено, невзирая ни на какие команды, символы, последовательности, отражая и выводя все пробелы, переходы на новые строки. При этом используется шрифт пишущей машинки, аналогичный \texttt. Его вариант verbatim* делает то же самое, но отображает пробелы символом u- Пример 7.16. Если набрать ЭТО вне окружения verbatim, не выдержит!.. Страшная последовательность: %;JP»? :) Пробелы, которых много> символы> \команды и прочее и прочее. \/ И всё это возможно! \begin{verbat im} Страшнаяипоследовательность:u% ;#>>?u•) Пробелы,ииииииикоторыхимного,усимволы, \командыииипрочееиИипрочее. и\/иИиВсёиэтоивозможно! \end{verbat im} Это, в свою очередь, было получено таким образом: \begin{verbatim*} \begin{verbat im} Страшная последовательность: У.;*»? :) Пробелы> которых много> символы> \команды и прочее и прочее. \/ И всё это возможно! \end{verbat im} \end{verbatim*}
§6. Специальныеокружения 99 Такие окружения лучше всего использовать для представления листингов программ, в которых полно «специальных», с точки зрения ТЩХ'а, символов, да и выравнивание иногда име- етнеменьшеезначение. Пример 7.17. Пример листинга простейшей программы. vax MMForm: TMMForm; implementation {$R *.dfm} type mas = array[1..20100] of double; var Th, Thl: mas; {Массивы температурного поля} N, M: mas; {Прогоночные коэффициенты } tau, h: double; {Шаги по времени и координате} \begin{verbatim} var MMForm: TMMForm; implementation {$R *.dfm} type mas = array[1..20100] of double; var Th, Thl: mas; {Массивы температурного поля} N, M: mas; {Прогоночные коэффициенты } tau, h: double; {Шаги по времени и координате} \end{verbatim} -, «ч Правда, как показывают эти примеры, реализация не сильно отличается от исходного текста. Строго говоря, реализация отличается всего лишь наличием строк начала и окончания окружения, поскольку она, как и сам пример, набрана в этом окружении. Ещё одним интересным окружением является verse для набора стихотворений и поэтических произведений, хотя, наверно, оно может быть использовано ив других целях. В выход-
100 Глава 7. Общее оформление ном файле слева и справа от текста устанавливаются отступы. Строки разделяются командами \\, четверостишия (или абзацы) — пустыми строками. Пример 7.18. Стихотворение «Уже два года». Уже два года С того прекрасного осеннего дождя. Уже не помню, Что ты спросила, я ответил да. Уже не верю, Что понял я, зачем я не забыл. Уже не знаю, Зачем я счастье на куски разбил. \begin{verse} Уже два года\\ С того прекрасного осеннего дождя.\\ Уже не помню,\\ Что ты спросила, я ответил да. Уже не верю,\\ Что понял я, зачем я не забыл.\\ Уже не знаю,\\ Зачем я счастье на куски разбил. \end{verse} § 7. Создание списка литературы Список литературы или список источников представляет собой нумерованный список, в котором в определённом порядке и по правилам, установленным ГОСТом, приводятся библиографические данные об источниках, информация из которых использовалась в документе. В студенческих курсовых работах список литературы обязан быть, поскольку составляет один из необходимых структурных элементов. Особенности создания списка литературы зависят от класса документа. Для классов report и book он имеет название «Литература», для класса article — «Список литературы».
§ 7. Создание списка литературы 101 Для создания списка литературы используется окружение thebibliography, которое имеет следующий вид: \begin{thebibliography}{<M>} \bibitem{<MeTKa 1>} Книга 1 \bibitem{<MeTKa 2>} Книга 2 \bibitem{<MeTKa N>} Книга N \end{thebibliography} Под параметром <M> подразумевается последовательность, количество символов которой соответствует количеству цифр максимального числа элементов в списке (можно поставить просто 99, или f3, или aa, если списоксоставляет менее 100 наименований, или 123, или skl, или abc, если более 100, но менее 1000). Внутри окружения thebibliography каждому библиографическому элементу (книге, изданию, источнику) из списка литературы соответствует строка вида \bibitem{<MeTKa>} Текст <метка> — это ключевое название книги дляссылки на неё из текста (например, bookl, Ivanov и т. п.). Под текстом понимается вся необходимая по стандарту информация о книге (автор, издательство и пр.). Между элементами в окружении допускается оставлять пустые строки. Список литературы оформляется в виде нумерованного списка автоматически, причём номера элементов ставятся в квадратных скобках.Между элементами ставятся вертикальные отступы, так что в целом смотрится вполне красиво. Для того чтобы сделать ссылку из текста на отдельный элемент библиографии, используется команда \cite[<стр.>]{<метка>} Параметр <метка> показывает, на какую конкретно книгу будет поставлена ссылка, а необязательный параметр <cxp. > позволяет указать некоторую дополнительную информацию, например, страницу книги.
102 Глава 7. Общее оформление Пример 7.19. В работе [1, стр. 10] показано многое. В работе \cite[cTp.~10]{bookl} показано многое. Точно также можно ссылаться и на несколько книг, перечисляя метки через запятую. Пример 7.20. В работах [1, 2, 8] показано многое. В работах \cite{bookl, book2, book8} показано многое. Однако, чтобы сослаться на несколько источников, которые стоят в списке литературы друг за другом, так, чтобы ссылка выглядела, например, как [1-4], нужно использовать нестандартные средства. Для преодоления возникших трудностей в преамбуле нужно подключить пакет \usepackage{cite} а затем в команде \cite перечислять все номера по порядку через запятые. Это не сильно упрощает написание, но зато даёт хороший результат. Пример 7.21. В работах [1-4] показано многое. В работах \cite{bookl, book2, book3, book4} показано многое.
ГЛАВА 8 ТАБЛИЦЫ Большинство работ содержат рисунки и таблицы, и эти объекты требуют специального обращения, поскольку не могут быть разбиты между страницами. Можно было бы начинать новую страницу каждый раз, когда встречается рисунок или таблица, которая не помещается на оставшейся части листа. Однако при таком подходе страницы оставались бы частично пустыми. § 1. Плавающие объекты Чтобы избежать полупустых страниц, таблица или рисунок, не помещающиеся на текущей странице, должны «плавать», т. e. перемещаться на следующую страницу при заполнении текстом текущей. Далее объекты, обладающие таким свойством, будем называть плавающими объектами. ЖЩХ приписывает плавающим объектам порядковые номера, отдельно для таблиц и рисунков. В списки таблиц и рисунков включаются только те из них, которые определены как плавающие объекты. Плавающие объекты задаются следующими окружениями: \begin{f igure}[<положение>] рисунок \caption[<KopoTKHH заголовок>]{<заголовок>} \end{figure} для вставки рисунков, или \begin{table}[<положение>] \caption[<KopoxKrai заголовок>]{<заголовок>У таблица \end{table} для вставки таблиц.
104 Глава 8. Таблицы Необязательный параметр <положение> определяет правила размещения объекта, он может быть задан через следующие символы или их комбинации: — h (here) — позиция в тексте, где вводится плавающий объект; — t (top) — верхняя часть страницы; — b (bottom) — нижняя часть страницы; ~" P (page of floats) — на отдельной странице для плавающих объектов; — ! — не рассматриваются некоторые внутренние параметры, которые могут помешать размещению этого объекта (другими словами, M^jX сделает всё возможное, чтобы разместить объект там, где указано). Используется только в комбинации с другими символами. Стандартные классы report и article используют по умолчанию tbp — т. e. ЖЩК пытается сначала разместить объект наверху страницы, если это не удаётся — внизу, и в самых сложных случаях переносит объект на специальную страницу. Команда \caption задаёт подпись к объекту, которая начинается с ключевого слова Table или Figure, затем идёт порядковый номер таблицы или рисунка, и потом после двоеточия печатается <заголовок>. При наличии параметра <короткий заголовок> именно он включается в список таблиц и рисунков. Эти списки выводятся командами \listoffigures для рисунков и \listoftables для таблиц. Ключевые слова Table и Figure хранятся соответственно в командах \figurename и \tablename. Пакет babel c опцией russian переопределяет их как Рис. и Таблица соответственно. Если после номера рисунка или таблицы нужно поставить не двоеточие, а какой-либо другой символ (например, точку), то необходимо подключить пакет caption и воспользоваться командой captionsetup: \captionsetup [область действия]{параметры} Необязательный параметр [область действия] задаёт перечень объектов, на которые эта команда действует, и может быть
§ 1. Плавающие объекты 105 table, если настройки задаются именно для таблиц, или figure, если настройки задаются именно для рисунков. Если параметр опущен, то настройки применяются для всех плавающих объектов. Параметры, задающие конкретные настройки, могут быть следующими: — labelsep — тип разделителя между нумерационным заголовком и текстом. Может принимать значения • none — без разделителя: Рис. Шекоторый заголовок • со1оп — двоеточие(поумолчанию): Рис. 1: Некоторый заголовок • period — точка: Рис. 1. Некоторый заголовок • space — пробел: Рис. 1 Некоторый заголовок • quad — учетверённый пробел: Рис. 1 Некоторый заголовок • newline — разрыв строки: Рис. 1 Некоторый заголовок — justification — выравниваниезаголовка. Можетприни- мать значения justified (как абзац, применяется по умолчанию), centering (центрированиевсехстрок), centerlast (центрирование только последней строки), centerfirst (центрирование только первой строки), raggedright (выравнивание слева), и raggedleft (выравнивание справа); — singlelinecheck — выравнивание однострочных подписей. В стандартных классах документов подпись автоматически центрируется, если она состоит из одной строки. Изменить такое поведение можно, задав этому параметру значение false — тогда однострочные подписи будут подчиняться параметру justification. Например, чтобы получить заголовок таблицы, отделённый точкой> нужно в преамбуле поместить следующую команду: \usepackage{caption}
106 Глава 8. Таблицы \captionsetup[table]{labelsep=period, justification=raggedright,singlelinecheck=false} Может получиться так, что плавающий объект невозможно разместить там, где было указано, тогда он становится в очередь до тех пор, пока не появится подходящее место для его размещения. Иногда бывает необходимо вывести все плавающие объекты, накопившиеся в очереди, и затем начать новую страницу. Это осуществляется с помощью команды \clearpage или \cleardoublepage. Последняя, помимо прочего, начинает новую левостороннюю страницу. При помощи команд \label, которая указывается после команды \caption, и \ref можно ссылаться на плавающий объект. Количество плавающих объектов на странице задаётся счётчиками topnumber (вверху страницы), bottomnumber (внизу страницы) и totalnumber (всего на странице). По умолчанию их значения равны 2, 1 и 3 соответственно. § 2. Структура простой таблицы Рассмотрим вначале пример простой таблицы. Все основные данные, составляющие содержание таблицы, размещаются в вертикальных колонках, которые называются графами. Каждая графа имеет свой заголовок. Заголовки всех граф, которые могут состоять из нескольких ярусов (в рассматриваемом ниже примере в заголовках два яруса), составляют заголовочную часть таблицы. Основной частью таблицы является хвостовая часть, образованная горизонтальными рядами— строками таблицы,— расположенными под заголовочной частью. В подавляющем большинстве таблиц хвостовая часть состоит из боковика — обычно левой вертикальной колонки, содержащей данные (текстовые или цифровые), определяющие содержание строк таблицы,— и прографки, включающей основные материалы таблицы. В рассматриваемом примере присутствуют боковик и прографка, состоящая из четырёх равных по значению граф. Все данные таблицы размещены в трёх строках.
3. Основы построения простых таблиц 107 Нумерационный Тематический Заголовки Заголовочная часть Хвостовая часть Таблица 2.1. Вес 1000 знаков, кг Вид набора Ручной Линотипный Монотипный Кегль шрифта, пт 6 0,60 0,58 0,56 8 0,92 0,90 0,89 10 1,50 1,46 1,42 12 1,98 1,91 1,84 1 Заголовки J граф Строка Боковик Графа Прографка Как правило, таблицы имеют надзаголовочные строки (шапку), содержащие нумерационный заголовок (в данном примере «Таблица 2.1») и тематический заголовок, раскрывающий содержание таблицы. Разумеется, такое деление на части не совсем корректно, поскольку иногда отдельные части таблицы могут отсутствовать. В других случаях возможны значительные усложнения в построении таблицы — многоярусные заголовочные части, сложно построенные боковики, итоговые строки и графы, различного рода линеечные и текстовые перерезы и т. д. Однако всё это не меняет существа таблицы как особым образом построенного материала с графическим соответствием данных в прографке заголовкам граф и показателям боковика. Под линиями сетки илисеткой в дальнейшем будем понимать линии,разграничивающие ячейки таблицы. § 3. Основы построения простых таблиц В системе T^K таблица представляет собой ячейки, расположенные в строках и столбцах. Основной принцип набора состоит в том, чтобы двигаться построчно от ячейки к ячейке, слева направо, сначала первая строка, затем вторая и т. д. Рассмотрение таблиц будет происходить со всё нарастающей сложностью: от нескольких ячеек до многоярусных заголовков и многостраничных таблиц. Для создания самой простой таблицы (без надзаголовочных
108 Глава 8. Таблицы строк), т. e. просто для создания ячеек, используется окружение tabular: \begin{tabulax}{<cxon64bi>} ячейка 1-1 & ячейка 1-2 ... & ячейка l-n\\ ячейка m-l & ячейка m-2 ... & ячейка m-n \end{tabular} Параметры <столбцы> определяют форматирование текста в столбцах — выравнивание текста в каждом столбце. Эти параметры представляют собой последовательность специальных команд, приведённых ниже, отвечающих различному выравниванию текста в столбцах, а также разделителям между соседними столбцами: 1 — столбец с выравниванием элементов по левому краю; r — по правому краю; с — по центру; I — вертикальная линия сетки между столбцами. Ячейки в строках разделяются символами &. Переход на следуюшую строку осуществляется с помощью команды «\\». tfm^ При наборе в таблице недопустимы пустые строки. Коли- ^=r чество ячеек в строках должно совпадать с количеством буквенных параметров r, с и 1 для выравнивания. Пример 8.1. Простейшая таблица из шести ячеек без линий сетки: Ячейка 1-1 Ячейка 1-2 Ячейка 1-3 2-1 2-2 2-3 \begin{tabular}{rcl} Ячейка 1-1 & Ячейка 1-2 & Ячейка 1-3 \\ 2-1 & 2-2 & 2-3 \end{tabular} Команда \hline рисует горизонтальную линию через всю таблицу. Она используется для разделения строк и рисования
§ 3. Основы построения простых таблиц 109 границ таблицы. Эта команда ставится или в самом начале таблицы (для рисования верхней грани рамки) или после команды перехода на новую строку, например, \\ \hline. Пример 8.2. Простейшая таблица из шести ячеек: Ячейка 1-1 2-1 Ячейка 1-2 2-2 Ячейка 1-3 2-3 \begin{tabular}{|r|c|l|} \hline Ячейка 1-1 &Ячейка 1-2 & Ячейка 1-3 \\ \hline 2-1 & 2-2 & 2-3 \\ \hline \end{tabular} Как видно из примера, выравнивание текста в каждом столбце определяется типом выравнивания: текст вячейках первого столбца выровнен по правому краю (от англ. right), в среднем столбце — по середине (от англ. centre), в правом — по левому краю (от англ. Zeft). Символы «I» определяют места, где будет нарисована вертикальная разделительная черта сетки про- графки. Пример 8.3. Простейшая таблица из шести ячеек, но с другим выравниванием и другой прографкой: Ячейка 1-1 2-1 Ячейка 1-2 Ячейка 1-3 2-2 2-3 \begin{tabular}{|r|cc|} \hline Ячейка 1-1 & Ячейка 1-2 & Ячейка 1-3 \\ 2-1 & 2-2 & 2-3 \\ \hline \end{tabular} Команда \cline{i-j} рисует горизонтальную линию через заданные столбцы, начиная с г-го столбца и заканчивая j-м.
110 Глава 8. Таблицы Пример 8.4. Простейшая таблица из двенадцати ячеек, но с другим выравниванием и другой прографкой: Ячейка 2-1 3-1 1-1 Ячейка 2-2 3-2 1-2 Ячейка 2-3 3-3 1-3 Ячейка 2-4 3-4 1-4 \begin{tabular}{111 с|с|с|} \hline Ячейка 1-1 & Ячейка 1-2 & Ячейка 1-3 & Ячейка 1-4 \\ \cline{2-4} 2-1 & 2-2 & 2-3 & 2-4 \\ \cline{l-l} \cline{3-4} 3-1 & 3-2 & 3-3 & 3-4 \\ \hline \end{tabular} Для объединения в одной строке нескольких ячеек используется команда \ти^1со1\шп{<ячейки>}{<выравнивание>}{<текст>} Параметр <ячейки> определяет количество объединяемых в одну ячеек (например, 1, 4 и т. п.); <выравнивание> определяет тип выравнивания в новой объединённой ячейке (например, r, с или 1); <текст> определяет содержимое новой ячейки — тот текст или другие элементы, которые будут помещены в новую ячейку, полученную после объединения. Пример 8.5. Простейшая таблица из двенадцати ячеек, но с их объединением: Ячейка 1-1 2-1 Объединение 1-2 и 1-3 Ячейка 1-4 Объединение 2-2, 2-3 и 2-4 Объединение 3-1 и 3-2 3-3 3-4 \begin{tabular}{|1|с|с|с|} \hline Ячейка 1-1 & \ти1^со1шпп{2}{г}{0бъединение 1-2 и 1-3} & Ячейка 1-4 \\ \hline 2-1 & \ти1^со1шш{3}{с}{0бъединение 2-2, 2-3 и 2-4} \\ \hline \ти1г1со1итп{2}{г}{0бъединение 3-1 и 3-2} & 3-3 & 3-4
§ 3. Основы построения простых таблиц 111 \\ \hline \end{tabular} У команды \multicolumn есть некоторыеособенности. Хотя в таблице есть внешние линии сетки (вертикальные заданы изначально, а горизонтальные — командами \hline), тем не менее в объединённых ячейках они частично отсутствуют. Если в таблице прорисованы изначально все вертикальные линии сетки, то команда \multicolumn убирает часть из них: те, которые находятся на внешних краях таблицы — внешней рамке, а также на правой границе объединённой ячейки. Линия сетки на левой границе (если она не совпадает с внешней рамкой) объединённой ячейки сохраняется. Пример 8.6. Простейшая таблица с объединением ячеек. Ячейка 2-1 3-1 1-1 Ячейка 3-2 1-2 Ячейка 2-2 и 2-3 1-3 3-3 Ячейка 2-4 3-4 1-4 \begin{tabular}{ I с 111 r I с |} \hline Ячейка 1-1 & Ячейка 1-2 & Ячейка 1-3 & Ячейка 1-4 \\ \hline 2-1 &\multicol\um{2HcK2-2 и 2-3} & 2-4 \\ \hline 3-1 & 3-2 & 3-3 & 3-4 \\ \hline \end{tabular} Как видно из этого примера, граница между ячейками в середине таблицы стёрта. Если слева от объединённой ячейки (2-2 и 2-3) есть вертикальный разделитель, то справа его нет. В этом и состоит особенность команды \multicolumn. Чтобы избежать этого, в параметрах команды \multicolumn можно использовать и символы «|» для рисования прографки. Пример 8.7. Ещё одна таблица из двенадцати ячеек с их объединением: Ячейка 1-1 2-1 Ячейка 1-2 Объединение 1-Зи 1-4 Объединение 2-2, 2-3 и 2-4 Объединение 3-1 и 3-2 3-3 3-4
112 Глава 8. Таблицы \begin{tabular}{111с|с I с|} \hline Ячейка 1-1 & Ячейка 1-2 & \ти1^со1итп{2}{г}{0бъединение 1-3 и 1-4} \\ \hline 2-1 & \ти1г1со1шш{3}{с|}{0бъединение 2-2, 2-3 и 2-4} \\ \hline \multicolxunn{2}{r}{06beflHHeHze 3-1 и 3-2} & 3-3 & 3-4 \\ \hline \end{tabular} Из этого примера видно, что в первой строке — при объединении ячеек 2-3 и 2-4 — справа разрыв границы сетки, тогда как в средней строке использована принудительная прографка в команде \multicolumn. Кроме того, можно использовать и сдвоенные, строенные и т. д. команды для рисования двойных, тройных и т. п. линий, например, | |, | | |. Правда, здесь нужно оговориться: а нужно ли это вообще и будет ли это красиво смотреться? Пример 8.8. Простейшая таблица из двенадцати ячеек, но с другой прографкой: Ячейка 1-1 2-1 3-1 4-1 5-1 Ячейка 1-2 2-2 3-2 4-2 5-2 Ячейка 1-3 2-3 3-3 4-3 5-3 Ячейка 1-4 2-4 3-4 4-4 5-4 \begin{tabular}{|1|с||1|с|} \hline Ячейка 1-1 & Ячейка 1-2 & Ячейка 1-3 & Ячейка 1-4 \\ \hline\hline 2-1 & 2-2 & 2-3 & 2-4 \\ \hline 3-1 & 3-2 & 3-3 & 3-4 \\ \hline\hline 4-1 & 4-2 & 4-3 & 4-4 \\ \hline 5-1 & 5-2 & 5-3 & 5-4 \\ \hline \end{tabular}
§ 3. Основы построения простых таблиц 113 К сожалению, в таких таблицах текст не переносится в ячейке на несколько строк. Конечно, его можно принудительно разнести по нескольким ячейкам в одном столбце с выравниванием по левомукраю, но этот способ малоэффективен, да и в общем ник чему хорошему не приведёт. Кроме того, ширина столбцов во всех предыдущих случаях устанавливалась автоматически. Чтобы задать ширину столбца произвольно, вместо команд r, с или 1можно использоватькоманду р{<ширина>}, где пара- метр<ширина> задаётся в любых Т^Х'овских единицах длины. Пример 8.9. Таблица со столбцами заданной ширины. Первая имеет 3 см. колонка ширину Текст можно набирать в несколько строк. * Вторая колонка имеет ширину 5 см. Можно также делать переходы кновым абзацам. Например, вот так. Правда, нет абзацного отступа. \begin{tabular}{ | p{3cm} | p{5cm} |} \hline Первая колонка имеет ширину З~см. & Вторая колонка имеет ширину 5~см. \\ \hline Текст можно набирать в несколько строк. & Можно также делать переходы к новым абзацам, \par Например, вот так. Правда, нет абзацного отступа. \\ \hline \end{tabular} Очень часто возникает необходимость объединить несколько ячеек по вертикали, т. e. в одном столбце. Для этого в преамбуле нужно указать подключение пакета \usepackage{multirow} Тогда ячейки объединяются с помощью команды
114 Глава 8. Таблицы где параметр <ячейки> показывает, сколько ячеек по вертикали нужно объединить в одном столбце. С помощью параметра <ширина> можно задать ширину столбца в любых Т^Х'овских единицах, а <текст> — это тот текст, который будет выводиться в этой объединённой ячейке. Выравнивание производится по ширине, переносы слов допускаются. Также можно использовать немного видоизменённую команду \multirow{<H4eihcH>}*{<xeKCT>} Тогда ширина ячейки будет подбираться автоматически. Эта команда ставится в самой верхней ячейке из всех объединяемых в одном столбце, а нижние ячейки оставляются пустыми. Пример 8.10. Таблица с вертикальным объединением ячеек. Новая ячейка 1-2 2-2 3-2 1-3 Новая ячейка, ширина 5 см. \begin{tabular}{|с|с|1|} \hline \multirow{3}*{HoBaH ячейка} & 1-2 & 1-3 \\ \cline{2-3} к 2-2 & \multirow{2}{5cm}{HoBaH ячейка, ширина 5~см.} \\ \cline{2-2} & 3-2 & \\\hline \end{tabular} Выравнивание в объединённой ячейке по вертикали производится автоматически по середине. Здесь придётся использовать команды \cline для рисования линий сетки, поскольку команда \hline «перережет» объединённую ячейку. Такой способ объединения ячеек и рисования с их помощью сложных таблиц зачастую слишком громоздок и неоправданно сложен. Чтобы избежать этого, можно подключить другой пакет
§ 3. Основы построения простых таблиц 115 \usepackage{array} который содержит макросы и переопределения для создания таблиц лучшего качества. Так, вместо команды р{<ширина>} можно использовать команду т{<ширина>}, где параметр <ширина> имеет точно такое же значение. Отличительная особенностьданной команды для выделения ячейки состоит в следующем: — выравнивание текста производится по ширине ячейки, автоматически расставляются переносы; — если текст не занимает всю ячейку, то он выравнивается по середине ячейки по вертикали и по левому краю по горизонтали; — эта команда может использоваться во всех тицахтаблиц, включая и многостраничные. Пример 8.11. Таблица, в которой, если не самое, то уж очень удобное выравнивание тёкста. Первая колонка имеет ширину 4 см. Вторая колонка имеет ширину 5 см. Можно также делать переходы к новым абзацам. m ^ Например, вот так. Правда, Текстможнонабирать > нет абзацного отступа. в несколько строк. ^ 1ем не менее смотрится довольно красиво, а главное — есть выравнивание. \begin{tabular}{ | m{4cm} | m{5cm} |} \hline Первая колонка имеет ширину 4~см. & Вторая колонка имеет ширину 5~см. \\ \hline Текст можно набирать в несколько строк, & Можно также делать переходы к новым абзацам, \par Например, вот так. Правда, нет абзацного отступаДраг Тем.не менее смотрится довольно красиво, аглавное"-— есть выравнивание. \\ \hline \end{tabular}
116 Глава 8. Таблицы § 4. Таблица как плавающий объект Как уже отмечалось ранее, таблицы относятся к плавающим объектам. Для создания таблиц как «плавающих» объектов используется окружение table. Нумерация таблиц автоматическая — один номер арабскими цифрами практически во всех классах, кроме класса book, в котором она состоит из двух номеров — номера главы и номера таблицы через точку. Команда caption позволяет озаглавливать таблицу. По сути, окружение table — это оболочка для ячеек, упорядоченных в строки и столбцы, выровненная заданным образом и имеющая название. лвь Хотя номер таблицы выводится только в команде \caption, ^^ окружение table нумерует таблицы всегда, что может привести к пропуску номеров таблиц. Если использовать окружение table нужно, не нумеруя таблиц, следует воспользоваться его вариантом table*. Пример 8.12. Таблица, которая имеет стандартный заголовок и метку. Таблица 8.1. Пример нумерованной и озаглавленной таблицы как плавающего объекта в обычном тексте Ячейка 1-1 2-1 3-1 4-1 Ячейка 1-2 2-2 3-2 4-2 Ячейка 1-3 2-3 3-3 4-3 \begin{table}[h] \label{tabl} \caption{IIpHMep нумерованной и озаглавленной таблицы как плавающего объекта в обычном тексте} \begin{center}
§ 5. Многостраничные таблицы 117 \begin{tabular}{|l|c|r|} \hline Ячейка 1-1 &Ячейка 1-2 & Ячейка 1-3 \\ \hline 2-1 & 2-2 & 2-3 \\ \hline 3-1 & 3-2 & 3-3 \\ \hXine 4-1 & 4-2 & 4-3 \\ \hline \end{tabular} \end{center} \end{table} Как видно из примера, заголовок таблицы выровнен по ширине и может быть многострочным. Внутри окружения table можно использовать команды для выравнивания, изменения шрифта, пробелов и отступов. Можно оставлятьпустые строки. Крометого, здесь нужно ещё раз оговорить очень важный момент. После номера таблицы в примере поставлена точка, хотя явно это нигде не указано. Если набрать этот пример так, как он набран в книге, после номера будет стоять двоеточие, как принято в западных стандартах и прописано в системе по умолчанию. Чтобы избежать этого и получить точно такой же результат, как в примере, который отвечает отечественным стандартам, в преамбуле необходимо подключить пакет captionn воспользоваться командой \captionsetup со следующимипараметрами: \usepackage{caption} \captionsetup[table]{labelsep=period, justification=raggedright,singlelinecheck=false} § 5. Многостраничные таблицы Многостраничныетаблицы встречаются не так часто, но, тем не менее, и не так редко, чтобы не сказать о них. Создание этих таблиц часто усложняется тем, что нужно следить за повторением «шапки» — заголовочной части на каждой странице, разрыве таблице на определённых местах и пр. Тем не менее ДО^Х позволяет легко преодолеть эти трудности.
118 Глава 8. Таблицы Создание многостраничных таблиц мало чем отличается от одностраничных, с той лишь разницей, что соответствующее окружение поддерживает больше команд. Для набора таких объектов, которые не являются «плавающими» в чистом виде, необходимо в преамбуле подключить пакет \usepackage{longtable} Тогда окружение для многостраничных таблиц примет вид1: \begin{longtable}{<CTC^64M>} \caption{<Ha3BaHHe> \1аЬе1{<метка>}}\\ Ячейка 1 & Ячейка 2 ... & Ячейка n \\ \endfirsthead Ячейка V & Ячейка 2> ... & Ячейка n' \\ \endhead ячейка 1-1 & ячейка 1-2 ... & ячейка l-n \\ ячейка m-l & ячейка m-2 ... & ячейка m-n \end{longtable} Параметр <столбцы> имеет точно такое же значение, как и в окружении tabular. Команда \caption имеет такое же значение, хотя работает совсем по-другому, a \label пишется внутри команды \caption. Далее набирается заголовочная часть, которая выводится на первой странице в самом начале таблицы (ячейки 1, 2 и т. д.). Команда endfirsthead указывает на её окончание. Здесь можно использовать команды рисования линий \hline и \cline. За этим заголовком следует определение заголовка, который будет встречаться на последующих страницах вверху таблицы (ячейки 19, 25 и т. д.). Он заканчивается командой endhead. Далее набирается сама таблица, здесь всё аналогично окружению tabular. Не нужно заботиться о том, где и как переносить таблицу — система сделает это самостоятельно. 1Более подробно этот пакет и окружение можно изучить по руководству пользователя.
§5. Многостраничныетаблицы 119 Ссылка на такую таблицу задаётся точно так же — коман- дой\ге£{<метка>}. ^| Аналогично окружению table, если использовать окру- ^^ жение longtable нужно, не нумеруя таблиц, следует воспользоваться вариантом longtable*. Пример 8.13. Многостраничнаятаблица. \newconunand{\Real}{\mathbb{R}} \begin{longtable}{I с|m{6.5cm}|с|} \сар1^оп{Таблица разложений в ряд Маклорена}\\ \hline\multirow{2}*{<&yHK4ra} & \ти^1гоу{2}*{\тЬох{}\Ьзрасе{10пш1}Разложение в ряд Маклорена} & Область \\ & & сходимости \\\hline \endfirsthead \multicolumn{3}{c}{\small {\tablename\ \thetable\ (продолжение)}}\\[.2ст]\Ы1пе \ти^1гоу{2}*{Функция} & \multirow{2}*{\mbox{} \Ьзрасе{10шт}Разложение в ряд Маклорена} & Область \\ & & сходимости \\\hline \endhead $ (a+x) ^m$fe$a^m+ma^{m-l}x+C^2_maMm-2}x^2+Xldots+$ \hfil $+C_m^na^{m-n}x^n+Udots$ &$|x|<a$\\\hline $Mn{(l+x)}$ & Sx-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+ \ldots+(-l)^{n+l}\frac{x^n}n+\ldotsS & $-Kx\leqslantl$\\\hlinee/, \end{longtable} Таблица 8.2. Таблица разложений в ряд Маклорена Функция (a + z)m ех ах sinx Разложение в ряд Маклорена аш + таш~1х + С^аГ-'х* + ...+ +Cua">"V + ... Л \ X х Хг i ХЛ у • ХП | • ж In a j_ (xlna)* . , (xlna)n , С* "Г it Т 2! Т - . . T п\ "Г ... 1! 3! ^ ' # * ^v X/ (2n+l)! ^ • • • Область сходимости \х\ <а xeR xGR х eR
120 Глава 8. Таблицы Таблица 8.2 (продолжение) Функция cos ж tgж ctga; ахсвтж arccosx arctga: shx chx thx ctha: 1п(1+ж) Разложение в ряд Маклорена 1 — ^f + ..-.+ (-1)пт!^т + ... _ , х* , 2х° , 17х7 , 62ха , Х "Г" "Я* "1" ТГ "Т" "ЯТГ "г 28ЯЙ "Т • • • 1 / х , х3 , 2х5 , х7 , \ х "" \,3 + 45 + 945 + 4725 +•-•) х* . Зх° , 3>5x^ , **' 2-Я ^^ 2.4«5 ~ 2 4-в-7 ~ • • • § — arcsin ж Ж ^3+^5 Х7 +••• + ( !)^2n+l +'•• х • х3 • ха • I xan+1 _i_ IT + ЗГ + 5Г + * * ' + (2n+l)i + • • * I 1 X* • X4 • I Х'^П | X f "зТ -^ *4Г "Г • • • 1" (2П)\ 1" • • • Ж Я" + "15 Я15" + ••• 1 /х Х3 2x5 , '\ х "*" уЗ 45 + 945 + "') Ж-^ + ^-Т + ... + (-1)U+1 ^1 + . . - Область сходимости хеш «1 < f \X\<7T\{O} ж| <1 s| < 1 хеш хеш rrl <Г — N<7T\{0} -К ж< 1
ГЛАВА 9 Рисунки в Практически в любой работе содержатся чертежи, схемы, рисунки или графики. ЖЩХ содержит средства как для создания простых схем и чертежей, так и для импортирования графических изображений, подготовленных в специализированных программах. Следует отметить, что по современным представлениям возможности ВД^Х'а в создании рисунков более чем скромные, поэтому в подавляющем большинстве случаев приходится импортировать графические изображения. § 1. Встроенные графические примитивы В системе ЖЩХ существует набор команд, с помощью которого можно создавать несложные рисунки. Для этой цели предназначено окружение picture: \begih{picture}(<ширина>,<высота>)(x0,y0) \end{picture} которое формирует графический бокс заданных размеров. Параметры (<ширина>,<высота>), задаваемые как неотрицательные числа, являются обязательными и определяют ширину и высоту бокса. Они указывают размер свободного пространства, которое необходимо зарезервировать для размещения графического объекта. Вторая пара параметров (xO,yO) является необязательной и задаёт координаты левого нижнего угла графического бокса. Если эти параметры не указывать, то у левого нижнегоугла будуткоординаты(0,0). Числовые параметры внутри окружения \picture, если не указывается иное, измеряются в единицах длины unitlength и записываются только числами без указания единицы измерения. По умолчанию единица длины unitlength равна одному
122 Глава 9. Рисунки в пункту, т. e. \unitlength=lpt. Чтобы длины измерялись, например, в миллиметрах, нужно в преамбуле или в основном тексте присвоить новое значение единице измерения длины: \unitlength=lmm («единицу» перед mm указывать обязательно). Размеры могут задаваться не только целыми, но и десятичными числами, в которых необходимо использовать десятичную точку. Переопределение \unitlength изменяет физические размеры сразу всех графических объектов, которые вводятся после изменения единиц измерения длины. При этом переопределение \unitlength внутри окружения picture запрещено. Отметим некоторые общие правила работы с окружением picture. Внутри окружения не должно быть пустых строк. Графический бокс рассматривается 'ЩХ'ом как один большой символ, поэтому, если окружение picture поместить в середину абзаца, то бокс будет помещён в строку, причём соседние строки раздвинутся таким образом, чтобы он поместился. Следовательно, лучше помещать окружение picture между абзацами (после пустой строки или команды \par). Также можно вставлять окружение picture внутри других окружений, таких как figure, table, center и пр. ЖЩХ не проверяет, выходят или нет графические объекты за пределы бокса. Это означает, что окружение picture только выделяет место для будущего рисунка и задаёт начало координат, а рисовать можно в любой части страницы. Кроме задания единицы измерения длины, существует возможность регулировать толщину линий в графическом боксе. Команды \thinlines и \thicklines позволяют переключаться между тонкими и толстыми линиями соответственно. По умолчанию установлены тонкие линии. Отметим, что эти команды можно использовать как в тексте, так и в самом окружении picture. Для изменения толщины вертикальных и горизонтальных линий используют команду
§ 2. Рисование простейших объектов 123 \linethickness{<TOJD4HHa>} где параметр <толщина> задаёт толщину линий и выражается в любых 'ЩХ'овских единицах измерения длины. Например, строка \linethickness{7.5mm} задаёт толщину линии 7,5 мм. Команду \linethickness также можно использовать как внутри окружения picture, так и вне его. § 2. Рисование простейших объектов Рассмотрим команды, с помощью которых внутри окружения picture можно размещать графические объекты. Команда \р^(х,у){<графический объект>} помещает графический объект так, чтобы его точка привязки находилась в точке (x,y). Заметим, что вместо <графического объекта> может находиться обычный текст. Команду \put можно и не использовать, но тогда точка привязки будет находиться в текущей точке рисунка. С помощью команды \multiput (x, у) (dx, dy) {пН<графический объект>} можно нарисовать n копий графического объекта. Параметр (x,y) задаёт положение первого объекта, a napaMeTp(dx,dy) определяет смещение каждой последующей копии относительно предыдущей. Рассмотрим графические объекты, которые можноразме- щать внутри окружения picture. Команда \1те(<х-наклон>, <у-наклон>) {<длина>} рисует отрезок заданной <длины> из точки привязки. Параметры <х-наклон> и <у-наклон> являются целыми числами и должны находиться в интервале от -6 до 6, отношение этих параметров задаёт тангенс угла наклона отрезка. Команда
124 Глава 9. Рисунки в \vector(<x-HaKJioH>,<у-наклон>){<длина>} создает вектор. Назначение параметров аналогично параметрам команды \line,3a исключением того, что целые параметры <х-наклон> и <у-наклон> должны находиться в интервале от -4 до 4. Пример 9.1. \begin{picture}(80,80)\thicklines \put(10,10){\line(6,l){60}} \put(t0,20){\vector(3,2){50}} \multiput(50,30)(10,l){3H\line(l,l){20}} \end{picture} Команда \с1гс1е{<диаметр>} рисует окружность с центром в точке привязки и заданного <диаметра> (не более 40 pt). ЖЩХ имеет ограниченный набор окружностей и выберет ту, диаметр которой наиболее близок к указанному. Команда \с1гс1е*{<диаметр>} создает круг, т. e. закрашенную окружность. Параметр аналогичен команде \circle, но диаметр круга не может превосходить 20 pt.
§ 2. Рисование простейших объектов 125 Пример 9.2. \begin{picture} (90,90) \thicklines \put(30,40){\circle{40}} \put(70,40){\circle*{20}} \end{picture} С помощью команды \qbezier[<KOjnrcecxBO точек>](Xa,Ya)(Xb,Yb)(Xc,Yc) можно провести кривую Безье через три точки с координатами (Xa,Ya),(Xb,Yb) и (Xc,Yc). Необязательный параметр количество точек> задаёт количество точек на кривой. Приего отсутствии число точек по умолчанию принимается равным 500. Кривую Безье предпочтительнее рисовать без использования команды \put, в противном случае координаты указанных точек будут отсчитываться от точки привязки. Пример 9.3. \begin{picture}(100,100)\thicklines \qbezier(l,l)(48,10)(20,65) \put(10,10){\qbezier[50](41,l)(88,10)(60,65)} \end{picture}
126 Глава 9. Рисунки в Команда \oval(<ширина>,<высота>)[<часть>] рисует овал, т. e. прямоугольник с закруглёнными углами. Параметры <ширина> и <высота> задают размеры овала. Точкой привязки является точка пересечения диагоналей прямоугольника. Параметр <часть> является необязательным и позволяет рисовать часть овала: t — верхняя половина, b — нижняя половина, 1 — левая половина, r — правая половица. Для задания четвертинки овала нужно использовать комбинации этих букв: tl, tr, bl и br задают соответствующие четверти овала. Пример 9.4. \begin{picture}(100,70)\thicklines \put(30,30){\oval(50,30)} \put(70,30){\oval(50,40)[r]} \end{picture} Пример 9.5. У x
§ 3. Импортирование графики 127 \thicklines\unitlength=lcm \begin{picture}(6,6) \put(0.5,0.5){\vector(l,0){5}} \put(0.5,0.5){\vector(0,l){5}} \put(0.25,0.25){0} Xput(5.5,0.2){$x$} Xput(0.2,5.5){$y$} \put(0.5,0.5){\vector(l,l){3}} \put(2,2.3){$\vec r$} \qbezier(1.5,0.5)(1.5,0.8)(1.2,1.2) Xput(1.6,0.9){$Xvarphi$} \put(3.5,3.5){\vector(l,l){l}} \put(3.5,3.5){\vector(-l,l){l}} \put(4.5,4.1){$\vec e_r$} \put(2.3,4.7){$Xvec e_{Xvarphi}$} \end{picture} § 3. Импортирование графики С помощью окружения picture возможно создавать только довольно простые рисунки. Чтобы вставить в документ более сложное изображение, созданное в какой-то другой программе, необходимо использовать предоставляемую пакетом graphicx команду \includegraphics[<cmcoK параметров>]{<имя файла>} где параметр <имя файла> задает имя графического файла с расширением, например drawing.eps. Необязательный <список параметров> определяет характеристики графического изображения. Он представляет собой записанные через запятую равенства, в левой части которых стоит параметр, а в правой — его значение. При импортировании растровой графики, например bmp-файлов, использование необязательных параметров фактически становится обязательным, так как ЖЩХ'у негде взять информацию о размерери- сунка. Перечислим основные параметры, задающие характеристики изображения:
128 Глава 9. Рисунки в ffiTfcX'e — bb — параметр, определяющий размеры граничной рамки рисунка. Значение параметра задаётся четырьмя числами, разделёнными пробелами. Первые два числа определяют координаты левого нижнего угла рисунка, а два других — координаты правого верхнего угла, например, bb=O 0 4cm 5cm. Если единица измерения в координатах не указана, то она принимается равной одному пункту. — bbllx, bblly, bburx, ЬЬигу — параметры,задающиеко- ординаты левого нижнего и правого верхнего углов граничной рамки рисунка соответственно. — natwidth, natheigh — параметры, определяющие ширину и высоту граничной рамки рисунка. — viewport — параметр, который изменяет граничную рамку, заданную в файле. Если в файле она не задана, то этот параметр не отличается от параметра bb. Значение параметра определяется так же, как и bb. — clip — параметр, принимающий одно из двух значений: true или false. В первом случае часть рисунка, выходящая за пределы граничной рамки, отсекается, а во втором случае — нет. По умолчанию он принимает значение false. — draft — устанавливает черновой режим импортирования: вместо рисунка строится рамка соответствующих размеров, а внутри выводится имя импортируемого файла. — scale — изменяет размеры рисунка по заданному масшта- бу. — keepaspectratio — параметр, который принимает два значения: true и false. В первом случае при изменении масштаба сохраняются пропорции рисунка, а во втором не сохраняются. — width — задает ширину рисунка в документе. Рисунок масштабируется до необходимого размера. — height — задает высоту рисунка в документе. Рисунок масштабируется до необходимого размера. Существует также команда \includegraphics*, которая отличается от команды \includegraphics тем, что для нее параметр clip по умолчанию принимает значение true.
§ 3. Импортирование графики 129 Пример 9.6. exampleOl.pdf Рамки вокруг рисунков показывают их границы такими, какими их считает \begin{longtable}{cc} \fbox{\includegraphics [width=5cm] {example01}} &°/« \fbox{\includegraphics[scale=.15]{example01}} \\[\smallskipamount] \fbox{\includegraphics*[bb=100mm 0 150mm 200mm, scale=.2]{example01}} & Текст
130 Глава 9. Рисунки в \fbox{\includegraphics[bb=100mm 0 150mm 200nnn,% scale=.2]{exampleOla}} Текст\\[\smallskipamount] \fbox{\includegraphics [width=5cm,draft] {exampleOl}} & \fbox{\includegraphics [width=5cm,height=2cm] % {exampleOl}} § 4. Рисунок как плавающий объект Аналогично таблицам, иллюстрации («плавающие» рисунки) создаются с помощью окружения figure, имеющего те же свойства, что и окружение table. Пример 9.7. Гироскоп Рис. 9.1. Гироскоп \begin{figure}[h] \begin{center} \includegraphics[width=5cm,draft=false]{example01} \end{center} \caption{rnpocKon\label{figl}} \end{figure} Так же как и в таблицах, параметры подписи задаются с помощью команды \captionsetup, только с необязательным параметром figure: \usepackage{caption} \captionsetup[figure]{labelsep=period, justification=centering,singlelinecheck=false}
§ 5. Обтекание текстом 131 § 5. Обтекание текстом Таблицы и рисунки, создаваемые при помощи стандартных окружений table и figure, занимают всё пространство по горизонтали, независимо от их реального размера. Если требуется, чтобы объектобтекался текстом с той или иной стороны, можно воспользоваться пакетом wrapfig. Этот пакет предоставляет два окружения: \begin{wrapfigure}[BHCOTa рисунка]{положение} [выступНширина рисунка} \end{wrapfigure} и \begin{wraptable}[высота рисунка]{положение} [выступ]{ширина рисунка} \end{wraptable} Высота таблицы или рисунка рассчитывается автоматически, однако может быть также задана через количество строк с помощью необязательного целочисленного параметра [высота рисунка]. Параметр положение задаёт горизонтальное положение рисунка на странице: г — справа, 1 — слева, i — на внутренней части листа, о — на внешней части листа на том Рис. 9.2. Гироскоп уровне, где было использовано окружение, а варианты R, L, I, 0 позволяют ^ЩХ'у перемещать рисунок по вертикали. Необязательный параметр [выступ] указывает, на какое расстояние рисунок будет выступать в поле листа. Ширина рисунка указывает, сколько места будет отведено под рисунок.
132 Глава 9. Рисунки в ffiIfcX'e В остальном эти окружения ничем от стандартных не отличаются. Приведённый пример был получен следующим образом: \begin{wrapfigure}{o}{5cm} \begin{center} \includegraphics [width=4. 8cm,draft=false] {example01} \end{center} \caption{rnpocKon} \end{wrapf igure}
ГЛАВА 10 ФОРМУЛЫ Одним из главных достоинств системы Ш^К является простота набора формул и высокое качество их изображения в итоговом документе. Формулы можно разделить на текстовые (которые встречаются в тексте) и вынесенные (или выключенные, которые выносятся на отдельную строку и окружаются отступами). В этих случаях Ш^Х по-разному формирует дроби и индексы. Для вёрстки формул используется три размера шрифта: основной,размер индекса и размер второго индекса. В текстовых формулах числитель и знаменатель дроби формируются размером индекса, в то время как в вынесенных формулах — основным размером. шь В этой главе предполагается, что в преамбуле докумен- ^y та подключены пакеты amsmath и amssymb, существенно расширяющие возможности по набору формул и набор доступных математических символов. Принадлежность конкретных команд к какому-либо из этих двух пакетов отдельно не оговаривается. Для написания формул используется определённый набор символов и команд. В тексте формул можно использовать латинские буквы, цифры и символы +, -, *, /, (, ), [, ], которые имеются на клавиатуре. Для написания символа \ используется специальная команда \backslash, но если имеется в виду знак разности множеств, то используется команда \setminus. Пример 10.1. A\B и A \ J5. $A\backslash B$ и $A\setminus B$. Как видим, знак разности множеств выглядит точно так же, как и символ, получаемый с помощью команды \backslash. Однако перед ним и после него ставятся равные пробелы, т. e. он оформляется по правилам оформления знаков математических операций.
134 Глава 10. Формулы § 1. Набор формул Текстовые формулы — это формулы внутри текста. Они используются для набора небольших, как правило, довольно простых, «одноэтажных» математических выражений без нумерации или ссылок. Для создания текстовых формул используется команда, которая имеет три варианта написания: $ ... $ \( ... \) \begin{math} ... \end{math} Вместо многоточия должны стоять команды, задающие математические формулы. Все три варианта абсолютно равноправны, но из-за простоты написания чаще всего используется первый. Вынесенная формула — это формула, занимающая одну или несколько отдельных строк, до и после которой ставятся отбивки — пробелы заданного размера. Формула выравнивается определённым (заданным) образом и имеет строго регламентированное место постановки номера (по умолчанию — с правой стороны). Таким способом набираются важные и наиболее значимые формулы, которые не смотрятся или не помещаются в тексте, а также все многострочные формулы, матричные структуры. Кроме того, основным преимуществом таких формул является возможность нумерации формулы и ссылки на неё из текста. По умолчанию, т. e. без дополнительных переопределений, вынесенные формулы выравниваются по центру строки. Исключение составляют только многострочные формулы. Выравнивание в них зависит от используемых команд и может быть, например, таким: первая строка выравнивается по левому краю, последняя — по правому, а остальные — промежуточные строки — по середине строки. Принудительное изменение выравнивания формул производится в преамбуле документа при определении класса. Для
§ 1. Набор формул 135 этого в команде \documentclass в квадратных скобках наряду с остальными необязательными параметрами указывается параметр fleqn — выравнивание по левому краю. При использовании этого параметра все вынесенные формулы будут выровнены по левому краю с некоторым отступом от полей листа. Номера, как и раньше, будут выровнены по правому краю. Если вынесенная формула нумеруется, то номер ставится системой T^X автоматически. По умолчанию номер состоит из одного или нескольких чисел, указанных в скобках. Если количество нумерованных формул изменилось (например, была добавлена формула в начале или середине), то система автоматически перенумерует все формулы, а также ссылки на них из текста. Для создания простейших ненумеруемых вынесенныхфор- мул используется команда, которая имеет три варианта написания: $$...$$ \[ ... \] \begin{displaymath} ... \end{displaymath} Написание любых формул практически не отличается от набора обычного текста. Главное отличие состоит в том, что при наборе математики нужно переключаться в математический режим набора и вёрстки текста и внутри него писать текст формулы. Пример 10.2. Уравнение хп + уп = zn не имеет решения при целых n > 3. Уравнение $x^n+y^n=z^n$ не имеет решения при целых \( n \ge 3 \). Этот простейший пример показывает, что математические тексты форматируются определённым образом: до и после знаков операций ставятся малые пробелы, переменные печатаются наклонным шрифтом, специальные символы задаются командами и т. д. Все команды для специальных символов, которые будут встречаться в примерах, приведены в приложениях.
136 Глава 10. Формулы Покажем, как будет выглядеть тот же самый пример, но с использованием вынесенных формул. Пример 10.3. Уравнение хп уп = zn не имеет решения при целых n>3. Уравнение $$x^n+y^n=z^n$$ не имеет решения при целых \[ n \ge 3.\] лн^ При наборе вынесенных ненумеруемых формул желатель- ^^ но использовать команды \ [... \], являющиеся основными для WF$i'a,. Команда $$ осталась в наследство от простого гЩХ'а и не использует полностью возможности ВД^Х'а. Кроме того, если вынесенные формулы набраны с помощью $$, то параметр fleqn на них не действует. § 2. Пробелы, индексы, скобки Использование пробелов внутри формул имеет некоторые особенности. ЬЯЩХ игнорирует все обычные пробелы, например, последовательности $a + b =c $ и $a+b=c$ эквивалентны и приведут к одному результату: а + b = с. Поэтому для создания пробелов в формулах существует ряд команд: Тип пробела Двойной большой Большой Обычный Средний Уменьшенный Малый Отсутствие пробела Отрицательный Команда \qquad \quad \u \; \: \, \! Расстояние i i i i и II и и и i
§ 2. Пробелы, индексы, скобки 137 Отметим ещё раз, что символ '^"обозначает пробел, т. e. по- слеЛ необходимо оставлять пробел. Для написания пробела заданной величины существует команда \hspace{<pa3Mep>}, где <размер> устанавливается в любых ТЩХ'овских единицах длины с обязательным указанием этих единиц. Пример 10.4. Решить уравнение 2x + Зу — 8z = 0, при x = y = 2z. Решить уравнение $2x+3y-8z=0, \hspace{4mm} \text{npn} \; x=y=2z$. Верхний индекс задаётся командой ~{<выражение>}, а ниж- ний^-командой _{<выражение>}, где <выражение> — тот текст, который будет печататься в верхнем или нижнем индексе. Если выражение состоит из одного символа, то фигурные скобки можно не писать. Если у переменной есть и верхний, и нижний индексы, то не имеет значения, какой из них набирать первым. Пример 10.5. 3jlJ;;;J = Г(еЛ,... ,e^;e*1,... ,eV). $T^{i=l \ldots i_p}_{j=l \ldotsj_q} = T(e_{j_l},\ldots,e_{j_q};e^{i_l},\ldots,e^{i_p})$. Как уже отмечалось выше, в математическом режиме используются три размера шрифта: основной, размер индекса и размер второго индекса. Иногда может возникнуть необходимость указывать точный размер шрифта, для этого использу- ютсяследующие команды \displaystyle — зaдaeт основной размер шрифта, \scriptstyle — зaдaeт размер индекса, \scriptscriptstyle — зaдaeт размер второго индекса. Эти команды приводятся перед тем выражением, чей размер нужно изменить.
138 Глава 10. Формулы Пример 10.6. хУ\хУ2,хУ2. Sx~{jT2},\;\scriptstyle x*4\displaystyle y^2},\; \scriptstyle x^{\displaystyle y^{\scriptscriptstyle 2}}$. Круглые и квадратные скобки вводятся соответствующими клавишами, фигурные скобки — командами \{ и \}. При наборе скобок обычным образом они остаются обычного же размера. Чтобы поместить в формулу скобки большего размера, существуют команды, которые следует ставить перед знаком скобки: \big, \Big, \bigg, \Bigg. Пример 10.7. $\Bigg(\bigg(\Big(\big((*)\big)\big)\Big)\bigg)\Bigg)\; \Bigg[\bigg[\Big[\big[[*]\big]\big]\Big]\bigg]\Bigg] \; \Bigg\{\bigg\{\Big\{\big\{\{*\}\big\}\big\}\Big\}\bigg\} \Bigg\}$ Зачастую контролировать размер скобок вручную трудно и легче использовать команду \left перед открывающейся скобкой, а перед закрывающейся — команду \right. В этом случае ГЩХ автоматически устанавливает размер скобок. Вместе с каждой командой \left должна присутствовать парная ей команда \right, иначе будет выдано сообщение об ошибке. Однако если вместо команды \left или \right набрать \left. или \right. соответственно, то вместо такой команды ничего не напечатается, а другая скобка будет нужного размера. Пример 10.8. Упростить выражение (^ + M + (^ - ^)2. Упростить выражение S\left(\frac{a^2}{b}+ \frac{b}{c}\right)^2+(\frac{a^2}{d}-\frac{d}{c})^2S. В этом примере вторые дроби специально взяты в маленькие скобки, чтобы продемонстрировать принцип работы команд \left и \rigHt.
2. Пробелы, индексы, скобки 139 Кроме того, с помощью скобок можно выводить на экран системы уравнений, если дополнительно использовать команду \aligned ... \endaligned. Внутри этой команды пишутся несколькострок,разделенных символом \\, знаки & ставят перед символами, по которым будет происходить выравнивание. С получившейся конструкцией можно обращаться как с одним большим символом. Пример 10.9. 'dTi(r,t) Ai(Ti) дг dTi(r,t) = 0, r=0 дг = 0. r=ri \[\left\{\aligned c_l\rho_l\frac{\partial T_l(r,t)}{\partial t}u= \frac{l}{r>\frac{\partial}{\partial r}\left [ \lambda_l(T_l)\frac{\partial T_l(r,t)H\partial r} \right]+q,\\ T_1(г,t)I_{t=O}&=T_O,\\ \left.\frac{\partial T_l(r,t)}{\partial r} \right|_{r=0}&=0,\\ \left.\lambda_l(T_l)\frac{\partial T_l(r,t)}{\partial r} \right | _{r=r_l}&=0. У. \endaligned\right. \] Иногда, особенно в старой литературе, фигурные скобки в системах ставят с правой стороны. Пример 10.10. а
140 Глава 10. Формулы \[ \left. \aligned X(\omega)&=\dfrac{f(a)+\Phi(a)}{a}, \\ Y(\omega)&=-\dfrac{G(a)}{a}. \endaligned \right\} \] Кроме обычных скобок, в T$Ce существуют символы (они называются ограничителями), к которым применимы все вышеуказанные действия со скобками: L \lfloor J \rfloor Г \lceil 1 \rceil ( \langle ) \rangle I I II \l / / \ \backslash § 3. Включение текста в формулы Включение текста в формулу осуществляется с помощью команд \тЬох{<текст>} или \text{<TeKCT>}. При этом параметр <текст> обрабатывается как обычный текст, слова набираются тем шрифтом, который был текущим перед началом формулы (но внутри команды можно использовать команду о смене шрифта). Внутри команды \mbox можно указывать не только текст, но и включать текстовые (не выносные) формулы. Текст, который задаётся командой \mbox, рассматривается ЖЩХ'ом как одна буква, поэтому он всегда пишется в одну строку без переносов. Отметим, что размер шрифта, созданного с помощью команды \mbox, не меняется вне зависимости от того, в какой части формулы он находится (индекс или числитель дроби). В то же время, команда \text автоматически меняет размер шрифта в зависимости от расположения текста. Пример 10.11. \x\ = ж, при x > 0, |ж| = —#, при x < 0.
§ 4. Векторы, дроби, корни и подчёркивание 141 $lxl=x, \; \mbox{npn} \; x \geO,\; |x|=-x, \; \тЬох{при $x<0$}.$ Пример 10.12. Это пРимеР того, как может команда \text автома- i тт ^K^^ самое тически изменять размер шрифта. Для сравнения, то ^е , но с использованием команды \mbox- ${\text{3TO }^{\text{npnMep }~{того}},}_ {\text{ как }_Ytext{MCHKex}}$ команда \verb"\text" автоматически изменять размер шрифта. Для сравнения, ${\тЬох{то }^ {\mbox{me }~{\тЬох{самое}}},}$ S{\mbox{ но с }_{\тЬох{использованием }__ {\тЬох{команды}}}}$\уегЬм\тЬох". § 4. Векторы, дроби, корни и подчёркивание Для простановки знаков над символами существуют следующие команды: а а а а а \vec a \acute a \dot a \dddot a \mathring a а а а "а а' \hat a \grave a \ddot a \ddddot a а' а а а а а" \check \tilde \breve \bar a а" а а а Если поставить какой-либо знак над буквами i или j, то получится некрасиво: г, j. Поэтому лучше использовать символы г и j, которые задаютсякомандами \imath и \jmath соответственно. Недостатком вышеприведённых команд является то, что они применимы только к одному символу. Для преодоления этого ограничения существует команда \overrightarrow для постановки стрелок над формулой Пример 10.13. AC = AB + ВС S\overrightarrow{AC}=\overrightarrow{AB}+ Xoverrightarrow{BC}$
142 Глава 10. Формулы Команда \overleftaxrow действует аналогичным образом, но рисует стрелку, направленную влево. Команды \widehat и \widetilde рисуют знаки, аналогичные командам \hat й \tilde, но над целым выражением (максимально возможная ширина показана в примере ниже): Пример 10.14. / * g = / • g $Xwidehat{f*g} = \hat f \cdot \hat g$ При дальнейшем увеличении ширины выражения для команды \widehat ошибка выдаваться не будет, но и «крышка» над выражением увеличиваться не будет. Всё вышесказанное так же справедливо для команды \widetilde. Команды \overline и \underline рисуют горизонтальную черту над или под выражением соответственно. Пример 10.15. а + ib = а — ib $Xoverline{a + i b} = а - i b$ Команды \оуегЬгасе{<выражение>}*Ч<текст>} \шэ^егЬгасе{<выражение>}_{<текст>} рисуют горизонтальные фигурные скобки над или под <выра- жением> соответственно, и при этом над или под скобкой пишется <текст>. Параметры <выражение> и <текст> воспринимаются системой как обычный математический текст. Пример 10.16. Cl + C\ + ... + C% = 2П n+l слагаемое S\underbrace{C_n^0+C_n^l+\ldots+C_n^n}.{n+l\; Xtext{^araeMoe}}=2"n$ Команда \boxed рисует формулу в рамке (аналогично команде \fbox, но в математическом режиме).
§4. Векторы, дроби, корни и подчёркивание 143 Пример 10.17. (а - Ъу = а2 - 2ab + b' $Xboxed{(a-b)^2 = a^2 - 2ab + b^2}$ Для получения перечёркнутых символов используется команда \not, которая ставится перед соответствующим символом. Пример 10.18. (/ + га) — (/ — га) =/ + ra- /+ m = 2ra $(l+m)-(l-m) =\not 1 +m -\not 1 +m =2m$ Заметим, что для некоторых конструкций существуют специальные команды, например ф (команда \ne или \neq), ^ (команда \notin). Предпочтительнее использовать их, так как символы получаютсяболее красивыми. Наборкорней n-й степениосуществляется с помощью команды \sqrt [<степень>] {<выражение>}, а если опустить квадратные скобки, то корень будет квадратным. При наборе дробей применяют команду \£гас{<числитель>М<знаменатель>}. Пример 10.19. f(x) •= $f(x)=\frac{\sqrt x -lKXsqrt[5]{x+l}}$ Как уже говорилось выше, в вынесенных формулах числитель и знаменатель дроби пишутся основным размером, в текстовых — размером индекса. Если по каким-либо причинам это правило кажется неудобным, то можно использовать следующие команды: \dfrac, \tfrac, которые всегда выводят числитель и знаменатель дроби основным размером и размером индекса соответственно. Используют эти команды так же, как и команду \frac. x Пример 10.20. Это текстовая формула: —. А эта формула: У вынесенная.
144 Глава 10. Формулы Это текстовая формула: $Xdfrac{x}{y}$.l А эта формула: \[ \tfrac{x}{y} \] вынесенная. Приведем ещё один пример, который может показаться странным, но он действительно встречается в научной литературе. Пример 10.21. d2x \[ \frac{cT2 x}{dt^2} + \omega^2 \left( x+ \overleftarrow{\overrightarrow{\Phi}}(x) \right)=O. \] Иногда степень корня располагается неудачно. Корректировка положения степени осуществляется с помощью команд \leftroot{<cflBHr>} и \uproot{<cflBHr>}, которые нужно располагать перед параметром <степень>. Если параметр <сдвиг> положительный, то степень будет сдвинута влево и вверх соответственно, а если параметр отрицательный, то степень сдвигается вправо и вниз. Сдвиг производится на соответствующее число пунктов^ Пример 10.22. S\sqrt[3]{\frac{a^2}{\sqrt b}} \quad \sqrt[\leftroot{3} \uproot{3} 3]{\frac{a^2}{\sqrt b}}$ В этом примере показаны два корня, первый с автоматической простановкой степени, а второй — со смещённой. § 5. Зарезервированные команды Следующие команды дают прямое написание функции в математической формуле в отличие от переменных, которые пишутся наклонным шрифтом. К любой из этих команд можно поставить верхний или нижний индекс.
5. Знаки суммы, интеграла и предела 145 \cos \sin \tg \ctg \sec \tan \cot \lim \lg \dim . \deg \det \exp \cosh \sinh \th \cth \cosec \tanh \coth \liminf \ln \inf \min \hom \gcd \ai"CCOS \arcsin \arctg \arcctg \csc \arctan \arg \limsup \log \sup \max \ker Чтобы продемонстрировать работу этих команд, рассмотрим два примера, выводящих на экран одну и ту же формулу. В первом примере рассматриваемые команды используются, а во втором — нет. Пример 10.23. sin2 x + cos2 x = 1 $Xsin^2 x + \cos^2 x =1$ Пример 10.24. sir?x + cos2x = 1 $sin^2 x+ cos^2 x =1$ § 6. Знаки суммы, интеграла и предела Одним из важнейших элементов формул высшей математики являются символы типа суммы, произведения, объединения, пересечения, предела и др. Рассмотрим следующий пример. Пример 10.25. n П! \[ e^x = \s\m_{n=O}"{\infty}\frac{x^nKn!}. \]
146 Глава 10. Формулы Все записи над и под знаком операции будем называть пределами, они задаются как индексы. Однако это верно только для вынесенных формул — для текстовых формул пределы будут печататься на месте верхних и нижних индексов. $e^x = \smu{n=O}~{\infty}\frac{x^n}{n!}S Отметим, что предыдущие два примера отличаются только тем, что первая формула вынесенная, а вторая — текстовая. Пределы во второй формуле выглядят некрасиво. Однако существует способ обойти это ограничение: если использовать команду \limits, то пределы будут печататься над и под знаком операции для любых формул. Пример 10.27. lim ^ = 1 $\lim \limits_{x \to O}\frac{\sin x}{x} =1$ С другой стороны, если применить команду \nolimits,, то пределы будут располагаться на месте индексов. Пример 10.28. .. sin# итж_о = 1 x \c \lim \nolimits_{x \to O}\frac{\sin x}{x} =1 \] Все вышеуказанные действия верны для следующих операций: J2 \sum П \prod JJ \coprod U \bigcup И \bigcap Ц \bigsqcup 0 \bigoplus 0 \bigotimes 0 \bigodot У \biguplus V \bigvee Д \bigwedge
§ 6. Знаки суммы, интеграла и предела 147 lim \lim limsup \limsup liminf \liminf max \max min \min sup \sup inf \inf det \det Pr \Pr Заметим, что написание интегралов имеет некоторые особенности. Если не использовать команду \limits, то пределы будут печататься на месте индексов вне зависимости от того, какая это формула: текстовая или вынесенная. Пример 10.29. о dx / Je = ln2 Je xYax \[ \int_e^{e^2}\frac{dx}{x \ln x} = \ln 2 \3 Чтобы пределы располагались над и под знаком интеграла, нужно писать команду \limits. Пример 10.30. e2 dx I x\nx e = ln2 \C \int\limits_e^{e^2}\frac{dxHx \ln x} = \ln 2 \] Описанные действия применимы к следующим интегралам: // \iint /// \iiint JJJJ \iiiint / \oint Пример 10.31. n-l ' Ь V= lim А
148 Глава 10. Формулы \[ V=\lim_{\max \Delta x_k \rightarrow 0} \sum_{k=0}^{n-l} f^2(x_k)\Delta x_k = \pi \int \limits_a^b f^2(x) dx \] § 7. Матрицы и системы уравнений Набор матриц аналогичен построению таблиц и осуществляется с помощью окружения array, которое используется только внутри вынесенных формул. Окружение array также используют для формирования выражений, имеющих большой ограничитель, например, систем уравнений. \begin{array}[<положение>]{<столбцы>} <элемент 11> & ... & <элемент ln> \\[<расстояние>] <элемент 21> к ... & <элемент 2n> \\[<расстояние>] <элемент nl> & ... & <элемент nn> \end{array} Обязательный параметр <столбцы> указывает число столбцов и способ их позиционирования. Каждому столбцу соответствует одна буква: 1 — выравнивание по левому краю, с — выравнивание по центру, r — выравнивание по правому краю. Кроме того, среди вышеуказанных букв может находиться символ I, означающий проведение вертикальной линии на всю глубину матрицы, а также комбинация символов @{<текст>}, которая вставляет <текст> в соответствующий ряд матрицы. @{<текст>} подавляет промежутки между столбцами, поэтому в <текст> их надо вставлять явно (с помощью команд \u, \; и т. д.). Отметим, что <текст> воспринимается системой как математический текст. Приведём пример, как может выглядеть параметр <столбцы>: \begin{array}{rc|@{\;\mbox{npn}\;}1} Необязательный параметр [<положение>] указывает выравнивание по вертикали относительно текущей строки: t — вы- равнивание по верхнему ряду, b — выравнивание по нижнему
§ 7. Матрицы и системы уравнений 149 ряду. Если этот параметр не указан,то выравнивание происходит по центру. Столбцы матрицы разделяются символом &, а строки матрицы — командой перехода на новую строку \\. Вконце последней строки \\ не ставится. Команда \\ может иметь необязательный параметр <расстояние>, который увеличивает расстояние между данной и следующей строкой на заданную величину. Внутри окружения array также можно использовать команды \cline{i-j}, которая рисует горизонтальные линии через столбцы, указанные в обязательном параметре, и \hline, которая рисует горизонтальнуюлинию по всей ширине матрицы. Если горизонтальную черту нужно провести снизу от всей матрицы, то в конце последней строки ставится команда \\. Если матрица окружена (с двух сторон или только с одной) ограничителями (например, скобками), то нужно воспользоваться командами \left и \right, которые ставятся перед \begin{array} и после \end{array} соответственно. Приведём примеры, демонстрирующие.использование описанных параметров. Пример 10.32. \[\left( \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array} \right)\]
150 Глава 10. Формулы Пример 10.33. \[\left[ \begin{array}{ccIcc} 1 & 2 & а & b \\ 3 & 4 & с & d \\ \hline e & f & 5 & 6 \\ g & h & 7 & 8 \end{array} \right]\] ■ 1 3 е . 5 2 4 / /г а с 5 7 d 6 8 Пример 10.34. 7 8 9 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 1 2 3 \[\begin{array}[t] {ccc} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 1 & 2 & 3 \end{array} \begin{arrayMccc} 4 & 5 & 6 \\ 4 & 5 & 6 \\ 4 & 5 & 6 \end{array} \begin{array}[b] {ccc} 7 & 8 & 9 \\ 7 & 8 & 9 \\
§ 7. Матрицы и системы уравнений 151 7 & 8 & 9 \end{array}\] x, при x > 0; —х, при x < 0. \[|x|= \left\{ \begin{array}{cG{\;\mbox{npn}\;}c} x, & x \ge 0; \\[0.5cm] -x, & x<0. \end{axray} \right.\] Окружение array чаще используют для вывода на экран достаточно сложных матриц, массивов, систем и т. д. Для несложных матриц существует более простое окружение matrix. Оно работает, как окружение array, с той лишь разницей, что нет параметров <положение> (выравнивание всегда производится по центру) и <столбцы>, но параметр <расстояние> действует. Кроме того, максимальное число столбцов по умолчанию равно десяти. Это ограничение можно регулировать с помощью счетчика MaxMatrixCols. Пример 10.36. ац a\2 a>21 a>22 \ [\begin{matrix} a_{ll} & a_{12} \\ a_{21} & a_{22} \end{matrix}\] Таким же образом действуют окружения pmatrix (круглые скобки), bmatrix (квадратные скобки), vmatrix (вертикальные черты определителя) и Vmatrix (две вертикальные черты). Для набора несложных систем уравнений существует окружение cases, которое работает так же, как matrix.
152 Глава 10. Формулы Пример 10.37. r при x < 0; «■ft n(x) = , 1 л при x > 0. X \[\eta(x) = \begin{cases} 0, \; \mbox{npn} \; x<0;\\ 1, \; \тЬох{при} \; x \ge 0. \end{cases}\] § 8. Выравнивание и нумерация формул Во многих случаях формулы нужно нумеровать и ссылаться на них из текста. Многострочные формулы желательно выравнивать по определённым правилам. Рассмотрим окружения, которые позволяют решать эти задачи. Длл набора однострочных формул используется окружение equation: \begin{equation} \1аЬе1{<метка>} \end{equation} На месте многоточия пишется сама формула. С помощью команды \label уравнению присваивается имя (<метка>) для последующей ссылки на него из текста. Ссылка из текста осуществляется с помощью команды \eqref{<MeTKa>}. В качестве метки можно использовать любую последовательность символов, но буквы могут быть только латинские, не может быть пробелов и символов {, }, \. Пример 10.38. d2x ^+zcosi = 0. (10.1) На уравнение (10.1) можно ссылаться из текста.
§ 8. Выравнивание и нумерация формул 153 \begin{equation} \label{eql} \frac{d^2 x}{d t^2} + x \cos t = 0. \end{equation} На ypaBHeHHe~\eqref{eql} можно ссылаться из текста. Если уравнение не нумеруется, то после слова equation до- бавляют* и команду \label не пишут. Пример 10.39. dx . 2 dt \begin{equation*} t \frac{d xHd t} = -x + x^2. \end{equation*} Часто формулы бывают настолько длинными, что не помещаются на однойстроке. В этих случаях используют окружение multline. Оно позволяет писать длинные формулы в несколько строк, причём первая строка выравнивается по левому краю, последняя — по правому, а остальные — по центру. Строки формулы отделяются символами \\. Нумерация формулы происходит так же, как и в окружении equation. Пример 10.40. V\(u\,U2,x,y) = m\x + m2y + msui + m4u2 = = m\x + m2y + m3(Ax + By) + m4{Cx + Dy) = = (rri3A + m4C + rrii)x + {m%B + m4D + \begin{multline*} V_l(u_l,u_2,x,y)=m_l x + m_2 у + m_3 u_l + m_4 u_2=\\= m_l x + m_2 у + m_3 (A x + В у) + m_4 (С x + D y)=\\= (m_3 А + m_4 С +m_l)x + (m_3 В +m_4 D + m_2)y. \end{multline*} Другим вариантом набора многострочных формул является окружение align. Это окружение производит вертикальное
154 Глава 10. Формулы выравнивание нескольких формул по одной позиции. В каждой формуле должен быть знак &, который ставится между той частью формулы, что будет находиться слева, и той, что будет справа. Строки формулы отделяются символами \\. В этом окружении нумеруются все формулы, причём, если используется команда \label, то метку необходимо присваивать каждой формуле. Если нумерация не нужна, то используется команда align*. Пример 10.41. x + у = 12 (10.2) 2xy = 9(x - у) (10.3) Уравнения (10.2) и (10.3) показывают, как работает окружение align. \begin{align} \label{all} x + у & = 12 \\ \label{al2} 2 x у & = 9 (x-y) \end{align} Уравнения \eqref{all} и \eqref{al2} показывают, как работает окружение \verb|align|. Если выравнивание в многострочной формуле не нужно, то применяют окружение gather. Оно работает так же, как окружение align, но знаки & не ставятся. Нумерация происходит так же, как было описано выше для окружения align. Пример 10.42. x + y = 12 2xy = 9(x - у) \begin{gather*} x + у = 12\\ 2 x у = 9 (x-y) \end{gather*}
§ 9. Шрифты в математическом режиме 155 § 9. Шрифты в математическом режиме Приведём команды для смены шрифтов, действующие только в математическом режиме: — \boldsymbol — полужирный курсивный шрифт (аналог команды \boldmath, которую можно использовать только до математического режима — она переключает все математические шрифты на их жирную версию). Пример 10.43. а, В, <p а, B,y> $ a, \; В, \; \varphi \quad \boldsymbol{a},\; \boldsymbol{B}, \; \boldsymbol{\varphi}$ — \pmb — применяется для символов, которыене имеют полужирных вариантов написания. Символ прорисовывается несколько раз со сдвигом. Пример 10.44. V, 3 V, 3 S\forall,\;\exists\quad\pmb{\forall},\; \pmb{\exists}$ — Xmathfrak — готическийшрифт. Пример 10.45. а, Ь, А, В а, b, 21, 93 $a, \; b,\; A, \; В \quad \mathfrak{a},\; \mathfrak{b}, \; \mathfrak{A}, \; Xmathfrak{B}$ — \mathcal — каллиграфический шрифт для букв от А до Z. Пример 10.46. Л, В, С A,B, С $A, \; В, \; С \quad \mathcal{A}, \; \verb|\mathcal{B}, \; Xmathcal{C}$ — \mathbb — ажурныйшрифт для букв от А до Z. Пример 10.47.Д Б, С A,B, С $A, \; В, \; C\quad\mathbb{A} ,\; \mathbb{B}, \; Nmathbb{C}$
156 Глава 10. Формулы § 10. Фантомы Иногда может возникнуть ситуация, когда в формулу нужно вставить символ, который сам не печатается, но место занимает. Для этого используются следующие команды: \рЬалгЬот{<формула>} — по вертикали и по горизонтали будет оставлено столько пустого места, сколько занимает <формула>. Пример 10.48. Такой большой знак корня проще всего показать с помощью команды \phantom. Такой большой знак корня \[ \sqrt{\phantom{\frac{a}{b}}} \] проще всего показать с помощью команды \verb|\phantom| \ЬрЬап1ют{<формула>} — по горизонтали оставляется столько пустого места, сколько занимает <формула>, но по вертикали фантом места не займет. Пример 10.49. На пустое место можно будет вписать формулу от руки. На пустое место S\hphantom{\sin"2 x}$ можно будет вписать формулу от руки. \урЬап1^т{<формула>} — по вертикали оставляется столько пустого места, сколько занимает <формула>, но по горизонтали фантом места не займет. Практическое применение этой команды рассмотрим на следующем примере:
§11. Примеры 157 Пример 10.50. $Xsqrt{c} + Xsqrt{d}$. Видно, что корни имеют разный размер и формула выглядит не очень красиво. Это происходит из-за того, что буквы с и d имеют разную высоту. Решить проблему можно с помощью команды \vphantom. Пример 10.51. $\sqrt{c\vphantom{d}} +. Xsqrt{d}$.. Заметим, что укоманды \vphantom существует сокращённый вариант — команда \mathstrut, являющаяся синонимом для \vphantom{(}. § 11. Примеры Пример 10.52. Jp(x)- + ^(x) + ^(x), = L^(x)=o;(Y). \[ \begin{cases} \dot{\textbf{x}} = \widetilde{\boldsymbol{J}}_p (\textbf{x}) \dfrac{\partial h}{\partial \textbf{x}} +■ \boldsymbol{S}_p (\textbf{x}) + \nu \widetilde{\boldsymbol{Y}}(\textbf{x}), \\ y=L.{\widetilde{\boldsymbol{Y}}} h(\textbf{x})= \omega(\widetilde{\textbf{Y}}). \end{cases} \]
158 Глава 10. Формулы Пример 10.53. з X = 48-. xdx = — 4 -1 \c \int \limits_{-l}^3 x^4 dx = \left. \frac{x^5}{4}\right|_{-l}^3 = 48 \frac{4}{5}. \] Пример 10.54. \[ f(x) = \left|\left.\left(l+e^{-bx}\right)\right/ \left(l-e^{-bx}\right)\right|. \] Пример 10.55. (1 3\ /0 2\ = Л-0 + 3-4 l-2 + 3-6\A2 20\ \5 7) ' \4 6J \5 • 0 + 7 • 4 5 • 2 + 7 • 6^ ^28 52J \[ \begin{pmatrix} 1 & 3 \\ 5 & 7 \end{pmatrix}\cdot \begin{pmatrix} 0 & 2 \\ 4 & 6 \end{pmatrix}= \begin{pmatrix} 1 \cdot 0 + 3 \cdot 4 & 1 \cdot 2 + 3 \cdot 6 \\ 5 \cdot 0 + 7 \cdot 4 & 5 \cdot 2 + 7 \cdot 6
§ 11. Примеры 159 \end{pmatrix}= \begin{pmatrix} 12 & 20 \\ 28 & 52 \end{pmatrix}. \] Пример 10.56. /1 \[ \ Q_{ij}(\varphi)= \begin{pmatrix} 1 &&&&&& \\ & \ddots &&&&& \\ && \cos \vaxphi && -\sin \varphi && \\ &&& \ddots &&& \\ && \sin \varphi && \cos \varphi && \\ &&&&& \ddots & \\ &&&&&& 1 \end{pmatrix}. \] Пример 10.57. a 1 0 a a a 0 0 1 a 0 0 1 a \ I
160 Глава 10. Формулы \c .\left( \begin{array}{ccc} \left\| \begin{array}{cc} \alpha & 1 \\ 0 & \alpha \end{array} \right\| & & \\ & \alpha & \\ & & \left\| \begin{arrayHccc} \alpha & 1 & 0 \\ 0 & \alpba & 1 \\ 0 & 0 & \alpha \end{array} \right\| \end{array} \right) \] Пример 10.58. Треугольник Паскаля 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 \C \begin{arrayHccccccccccc} &&&&& 1 \\ &&&& 1 && 1 \\ &&& i && 2 && 1 \\ && 1 && 3 && 3 && 1 \\ & 1 && 4 && 6 && 4 && 1 \\
§ 11. Примеры 161 1 && 5 && 10 && 10 && 5 && 1 \end{array} \] Пример 10.59. Число Фидия Ф = ——, = 1 + ... \[ \Phi = \frac{l}{\displaystyle 1+ \frac{l}{\displaystyle 1+ \frac{l}{\displaystyle l+\ldots}}}= \frac{\sqrt 5 + l}.{2}. \] Пример 10.60. x2 + 2x - 2 \x + 4 x2 + 4x \x-2 o~, о - 2x - 8 \C \arraycolsep=lpt \begin{array}{rrrr|r} x^2 & +• \ 2x & - \ 2 & & \, х+4 \\ \cline{5-5} x^2 & + \ 4x & & & \, х-2 \\ \cline{l-2} & - \ 2x & - \ 2 \\ & - \ 2x & - \ 8 \\ \cline{2-3} & & \ 6 \end{array} \]
162 Пример 10.61. А Глава 10. /2) Q h I Формулы А Е /з 1 /б \[ \begin{array}{ccccc} А & \stackrel{f_2}{\longrightarrow} & С & \stackrel{f_4}{\longrightarrow} & E \\ \downarrow\lefteqn{f_l} & & \downarrow\lefteqn{f_3} & & \downarrow \lefteqn{f.5} \\ В & \stackrel{f_2H\longrightarrow} & D & \stackrel{f_4}{\longrightarrow} & F \end{array} \]
ГЛАВА 11 МАКРООПРЕДЕЛЕНИЯ Всистеме ВД^Х существуют средства, позволяющие облегчить набор длинных текстов с повторяющимися элементами. Одним из таких средств являются так называемые макроопределения (макрокоманды или макросы) — команды, заменяемые при обработке исходного файла транслятором заранее заданной комбинацией текста и примитивных команд 'ЩК- Например, большая часть команд ВД^Х'а на самом деле представляет собой макроопределения: вставка специализированных символов, некоторые окружения и пр. Макроопределения обычно используются для повышения скорости набора и читаемости исходного текста, однако их чрезмерное использование ведёт к ухудшению восприятия исходного текста документа. § 1. Создание новых команд Макроопределения создаются с помощьюкоманды: \newcommand{<Ha3BaHHe>} [N] [<параметр по умолчанию>] °/в {<определение>} где <название> команды может состоять только из латинских букв и начинаться с обратной косой черты «\», например, \eps, \eqdef и т. д. N — необязательный параметр, показывающий, сколько аргументов может быть у команды. Это число должно находиться в интервале от 1 до 9. Если аргументов у команды нет (N=0), то этот параметр можно опустить. <определение> состоит из некоторой последовательности текста и команд. Если у команды есть аргументы, то к ним можно обратиться, указав знак # и номер параметра, например, #1, #4. Обращение к аргументам может происходить в произвольном порядке. <Параметр по умолчанию> — значение первого параметра, используемое по умолчанию при вызове команды. С использо-
164 Глава 11. Макроопределения ванием этого параметра можно создавать команды с одним необязательным аргументом, например: \newcommand{\Sum} [2] [i] {\sum_{(#l)}#2_#l} В этом случае, если дополнительный параметр не указан (в квадратных скобках сразу после имени команды), то на место первого аргумента подставляется его значение по умолчанию: $NSum{x}$ 2(t)х* $\Sum [j ] {x}$ £ф Xj Рассмотрим несколько примеров создания новых команд. Пример 11.1. -( \ 1, при x € 0, при x € \newcommand{\RealH\mathbb{R>} \newcommand{\RationalH\mathbb{Q}} \[ \varkappa(x)= \begin{cases} 1, & \text{npn }x\in\Rational;\\ 0, & \text{npn }x\in\Real\setminus\Rational. \end{cases} \] Пример 11.2. 7S V<i — к(хт) n m K{Xm) m
§ 1. Создание новых команд 165 \newcommand{\KX}[l][n]{\frac{K(\vec X_#1)}{#1}} \[ \overline p_l=\KX+\frac{u^{l-\beta}}{\sqrt n} \sqrt{\KX\left(l-\KX\right)}, \] \[ \overline p_2=\KX[m]+\frac{u^{l~\beta}}{\sqrt m} \sqrt{\KX[m]\left(l-\KX[m]\right)}. \] Пример 11.3. [ди ди ди du\ __ др (д2и д2и д2и\ \ ot дх ду dz) ax \ox2 ду2 az2) \newconnnand{\pdiff}[2]{\frac{\partial #l}{\partial #2}} \newcommand{\pddiffs}[2]{\frac{\partial^2#l}% {\partial #2^2}} \[ \rho\left(\pdiff{u}{t}+u\pdiff{u}{x}+v\pdiff{u}{y}+ w\pdiff{u}{z}\right)=X-\pdiff{p}{x}+ \mu\left(\pddiffs{u}{x}+\pddiffs{u}{y}+ \pddiffs{u}{z}\right). \] Если необходимо, чтобы макроопределение работало и в обычном, текстовом, и в математическом режимах, необходимо использовать команду \ensuremath: \newconunand{\KXn}{\ensuremath{\frac{K(\vec X_n)}{n}}} \Kxn $XKXn$ Если попытаться определить команду, используя уже существующее имя,то транслятор выдаст сообщение об ошибке. В этом случае вместо команды \newcommand нужно использовать команду переопределения \renewcommand с аналогичными аргументами:
166 Глава 11. Макроопределения \renewconnnand{\epsilon}{\varepsilon} лш&ь Использовать команду переопределения надо крайне осто- ^=^ рожно — большая часть команд WFj$Ca, определяется в терминах других команд, и эти связи далеко не всегда очевидны. Поэтому переопределение даже внешне безобидных команд, не использованных в тексте документа, может привести к неправильной работе очень многих других команд. Кроме того, существует команда \providecommand с таким же синтаксисом. Действует она следующим образом: если команда с указанным именем не определена, то, аналогично команде \newcommand, производится её определение; иначе, если команда уже определена, то уже существующее определение сохраняется и переопределение не производится. Никаких сообщений при этом не выводится. nan Существуют варианты команд со знаком *: \newcommand*, LSJ \renewcommand*, \providecommand*. Их рекомендуется использовать, если аргументы команд не будут содержать абзацев целиком (т. e. внутри аргумента не будет встречаться команда \par или пустые строки). Эти три команды являются локальными — их действие ограничивается текущей группой, при выходе из которой все определения аннулируются. Если какая-либо из этих команд используется внутри группы, созданной фигурными скобками, командами \bgroup... \egroup, \begingroup... \endgroup или внутри окружения, то вне этой группы или окружения восстанавливается первоначальное состояние. Пример 11.4. 1 22 333 4444 333 22 1
§2. Счётчики 167 \begin{center} \newcommand{\test}{l\par} \test \bgroup \renewcommand{\test}{2 2\par} \test \begingroup \renewcommand{\test}{3 3 3\par} \test { \renewcommand{\test}{4 4 4 4\par} \test } \test \endgroup \test \egroup \test \end{center} Эта последовательность команд выводит ромб, созданный из чисел. Команда \test действительнатолько внутри окружения center, попытка её использования за пределами окружения приведёт к выдаче сообщения об ошибке. В зависимости от того, внутри какой группы используется команда \test, выводимый ею текст меняется. § 2. Счётчики Кроме макрокоманд, ГЩК также позволяет создавать так называемые счётчики — целочисленные переменные, над которыми можно проводить как некоторые арифметические операции (сложение / вычитание), так и операции вставки значения счётчика в текст документа. Пример 11.5. Допустим, нам необходимо создать команду, которая выводит текст «Задача №» и добавляет к нему порядковый номер задачи.
168 Глава 11. Макроопределения \newcounter{tasks} \newcommand{\task}{\par\stepcounter{tasks} \textbf{3afla4a \No~\arabic{tasks}}. } Таким образом, каждый раз при использовании команды \task мы будем получать следующий результат: Задача № 1. Найти f(x) если f(x)/x -^ oo при x —> oo. Задача № 2. Доказать, что lim 2х = 1 — 0. Задача № 3. Показать, что lim ^± = 2. \task Найти \[\lim_{x\to\infty}\frac{f(f(x))}{f(x)},\] если $f(x)/x\to\infty$ при $x\to\infty$. \task Доказать, что $\lim\limits_{x\to-0}2~x=l-0$. \task Показать, что S\lim\limits_{x\tol} Xfrac{x^2-l}{x-l}=2$. Команда \par в определении необходима для того, чтобы слово «Задача» находилось на новой строке. В отличие от команд \newcommand и \renewcommand, команда \newcounter и все команды, связанные с работой со счётчиками, являются глобалъными — даже если счётчик был создан внутри группы или изменялся внутри неё, после выхода из группы ни сам счётчик, ни эти изменения не будут аннулированы. Рассмотрим команды работы со счётчиками подробнее. Команда \newcounter с одним обязательным аргументом создаёт новый счётчик: \newcounter{<HMa счётчика>}
§2. Счётчики 169 ш^ Имя счётчика ни в коем случае не должно совпадать с ^^ именем какого-либо уже существующего счётчика, иначе при трансляции ГЩХ выдаст сообщение об ошибке. При создании счётчика его значение автоматически устанавливается равным нулю. Значение счётчика можно изменять. Если ему необходимо присвоить некоторое значение, то это можно сделатьс помощью команды \setcounter: \setcounter{<c4eT4HK>}{<3Ha4eHHe>} Например: \setcounter{tasks}{8} При помощьи команды \addtocounter можно прибавить к счётчику некоторое число (произвольного знака): \addtocounter{<C4eT4HK>}{<3HaL4eHHe>} В качестве второго параметра в этих двух командах можно использовать значения других счётчиков с помощью I команды \уа1ие{счётчик}: \addtocounter{tasks}{\value{page}} — к счётчику tasks добавили значение счётчика page (номер текущей страницы). Кроме того, существуют две команды, увеличивающие значение счётчика на единицу: \stepcounter{<c4eT4HK>} \refstepcounter{<c4eT4HK>} Их особенностей мы коснёмся позже. Для вывода на печать значения счётчика используются команды — \агаЫс — выводарабскимицифрами: \arabic{tasks}-8.
170 Глава 11. Макроопределения — \Roman, \roman — вывод прописными или строчными латинскими буквами («римскими» цифрами): \Roman{tasks}, \roman{tasks} — VIII,viii. — \Alph, \alph — вывод прописной или строчной латинской буквы, порядковый номер которой соответствует значению счётчика: \Alph{tasks}, \alph{tasks} — H,h. — \Asbuk, Xasbuk — вывод прописной или строчной кириллической буквы, порядковый номер которой равен значению счётчика: \Asbuk{tasks}, \asbuk{tasks} — 3,3. Команды \Asbuk, \asbuk определены в пакете babel и не являются стандартными для — \fnsymbol — вывод одного из девяти символов, используемых иногда для обозначения ссылок: \fnsymbol{tasks} — ft- П5П Поскольку для команд \alph, \asbuk, \fnsymbol суще- LiJ ствует ограниченное количество возможных выводов, то при их использовании необходимо следить за возможным переполнением счётчика. При создании нового счётчика TfeX автоматически создаёт команду вывода его значения \^е<имя_счётчика>, определяемую следующим образом: \newcommand{\thetasks}{\arabic{tasks}} Таким образом, выводить значение счётчика на печать можно с помощью the-команд, переопределив их при необходимости. Пример 11.6. 1 22 333
§ 2. Счётчики 171 4444 555 6 6 7 \begin{center} \newcounter{test} \newcommand{\test}{\stepcounter{test}{\thetest}\pax} \test \bgroup \renewcommand{\test}{\stepcounter{test} {\thetest\ \thetest}\par} \test \begingroup \renewconmand{\test}{\stepcounter{test} {\thetest\ \thetest\ \thetest}\par} \test { \renewconunand{\test}{\stepcounter{test} {\thetest\ \thetest\ \thetest\ \thetest}\par} \test } \test \endgroup \test \egroup \test \end{center} В T^X'e существует несколько заранее созданных счётчиков, применяемых для различных целей. Их крайне не рекомендуется изменять без особой необходимости. Приведём некоторые из них: - page — номер текущей страницы; — part, chapter, section, subsection, и т. д. — номер соответствующего раздела документа;
172 Глава 11. Макроопределения — enumi, enumii, enumiii, enumiv — номер элемента списка первого, второго, третьего и четвёртого уровней соответственно; — footnote — номерсноски; — equation — номеруравнения; — figure, table — номер плавающей иллюстрации или таблицы соответственно. При использовании счётчиков может возникнуть необходимость в иерархической нумерации каких-либо разделов. Например, нам необходима не сплошная нумерация задач, а, допустим, в виде раздел.задача. Для решения этой проблемы достаточно переопределить команду \thetasks в виде \renewconunand{\thetasks}{\thesection. \arabic{tasks}} и получаем желаемый результат: Задача № 2.1. Найти если f(x)/x ^ 00 при x —> oo. Задача № 2.2. Доказать, что lim 2х = 1 — 0. Задача № 2.3. Показать, что lim ^f=p = 2. Это решение обладает одним недостатком: в новой главе нумерация примеров начнётся с того номера, на котором она остановилась в предыдущем разделе — 2.5, 2.6, 3.7, 3.8 и т. д. В некоторых случаях такая нумерация довольно удобна, однако обычно после начала нового раздела нумерация подразделов начинается заново. Чтобы избавится от этого недостатка, можно в начале каждого раздела вручную обнулять значение счётчика tasks c помощью команды \setcounter{tasks}{0} однако TgX имеет более элегантное решение этой проблемы — подчинение счётчиков. Подчинение задаётся при создании счётчиков следующим образом:
§2. Счётчики 173 В этом случае при увеличении значения подчиняющегосчёт- чика на единицу значение подчинённого счётчика обнуляется. Из всех команд TfeX'a, изменяющих значение счётчика, это правило выполняют только две команды из всех вышеперечисленных: \stepcounter и \refstepcounter. При изменении значения подчиняющего счётчика с помощью других команд значение подчинённого счётчика не обнуляется. n Если нужно задать такое поведение уже существующим J неподчинённым счётчикам, можно воспользоваться командой пакета amsmath. При использовании команды \refstepcounter можно делать автоматические ссылки спомощью команд \label и \ref. Текст ссылки, который вводится командой \ref, определяется \1Ле-командой. Пример 11.7. Задача № 2.4. Найти Um f[x) если f{x)/x —► oo при x ~> oo. Задача# 2.5. Доказать, что lim 2х = 1 — 0. Задачу № 2.4 можно решить... Решение задачи # 2.5 имеет вид... \renewconunand{\task}{\par\refstepcoimter{tasks}% \textbf{3afla4a \thetasks.} }% \renewcommand{\thetasks}{\No~\arabic{section}.% \arabic{tasks}} \task\label{tskl}Hairra \[
174 Глава 11. Макроопределения \lim.{x\to\infty}\frac{f(f(x))}{f(x)}, \] если $f(x)/x\to\infty$ при $x\to\infty$. \renewconnnand{\thetasks}{\#"\arabic{section}. 7» \arabic{tasks}} \task\label{tsk2}floKa3aTb, что $\lim\limits_{x\to-0}2~x=l-0$. Задачу \ref{tskl} можно pennrrb\ldots\ Решение задачи \ref{tsk2} имеет BHfl\ldots ЩПример 11.7 показывает существенную особенность команды \label: когда компилятор встречает эту команду в тексте документа, он записывает в специальный aux-файл метку (аргумент команды \label) и информацию, предоставляемую последней использованной Xthe-командой. Поэтому, если между двумя командами \label, использованными для одного и того же счётчика, изменится определение Xthe-команды, то и ссылки, предоставляемые командой \ref, будут разными. § 3. Окружения Иногда требуется сложная последовательность команд как в начале, так и в конце какого-либо куска текста. Можно создать две макрокоманды — для начальной и конечной последовательности команд, но этот подход затрудняет контроль ошибок. В этом случае проще воспользоваться окружениями (см. главу 2). Для создания окружения необходимо использовать команду \newenvironment{<HMa>H<Ha4anbHHe команды>}0/. {<конечные команды>} <имя> — имя определяемого окружения, параметры <начальные> и <конечные команды> — команды, которые будут использоваться на месте команд \begin{<HMH>} и \end{<mra>} соответственно.
§3. Окружения 175 Окружению можно передавать аргументы. Для этого после первого аргумента команды \newenvironment нужно в квадратных скобках указать число обязательных аргументов нового окружения. Обращение к этим аргументам происходит так же, как и в обычных макроопределениях, с помощью символа # и номера аргумента; но существует одно ограничение: аргу- ментымогут использоваться только в открывающей последовательности команд. Пример 11.8. Получилось окружение, которое выводит текст, отстоящий от края на расстояние, указанное в первом аргументе, и шириной, указанной во втором аргументе. \newenvironment{tbox}[2]{\medskip\par\parshape=l #1 #2} {\par\medskip} \begin{tbox}{2cm}{4cm} Получилось окружение, которое выводит текст, отстоящий от края на расстояние, указанное в первом аргументе, и шириной, указанной во втором аргументе. \end{tbox} Если окружение с некоторым именем уже существует, его можно переопределить с помощью команды \renewenvironment с аналогичными параметрами. Так же как и команды \newcommand и \renewcommand, команды \newenvironment и \renewenvironment являются локальными — действующими внутри текущей группы. Иногда при создании новых окружений на следующей строке после открывающейилизакрывающей последовательности может появиться нежелательный пробел. Для егоподавления в соответствующую последовательность команд окружения нужно добавить команду \ignorespaces для открывающей последовательности и М^огеэрасеза^еге^ — для закрывающей.
176 Глава 11» Макроопределения Пример 11.9. Небольшой пример. Видны дополнительные пробелы как в самом окружении, так и после него. Это портит внешний вид текста. Теперь исправленное окружение. Дополнительные пробелы как в самом окружении, так и после него отсутствуют. Текст выглядит более однородным. \newenvironment{simple}{\noindent}{\pcir\noindent} \par \begin{simple} Небольшой пример.\\Видны дополнительные пробелы как в самом окружении, \end{simple} так и после него.\\Это портит внешний вид текста. \renewenvironment{simple}{\noindent\ignorespaces}% {\par\noindent\ignorespacesafterend} \par \begin{simple} Теперь исправленное окружение.\\Дополнительные пробелы как в самом окружении, \end{simple} так и после него отсутствуют.\\Текст выглядит более однородным. § 4. Параметры длины Кроме уже описанных целочисленных счётчиков, T^X позволяет создавать и действительные переменные со значением длины (аналогично стандартным переменным длины \textwidth, \parindent и т. д.). Такие переменные создаются с помощью команды \newlength: \newlength{<HMH переменной>} Например:
§ 4. Параметры длины 177 \newlength{\myindent} После создания переменной ей автоматически присваивается нулевое значение. Присваивать значения переменным длины можно как с помощью знака равенства, так и с помощью команды \setlength, используя следующий синтаксис: \myindent=lcm plus 2mm minus3pt \setlength{\myindent}{15mm plus 4mm minus lcm} Ключевые слова plus и minus указывают, на какую величину может растягиваться и сжиматься эта длина. Пример 11.10. Обычный пробел Увеличенный пробел Уменьшенный пробел \newlength{\myindent} \setlength{\myindent}{15mm plus 4mm minus lcm} \hbox{06H4Hbrii\hspace{\myindent}npo6en}\par . \hbox spread4пшl{Увeличeнный\hspace{\myindent}пpoбeл}\par \hbox spread-lcm{yMeHbmeHHbra\hspace{\myindent}npo6en} Команда \hboxuspread<flnHHa>{<paMKa>} создаёт рамку, ширина которой больше ширины <рамки> на величину, указанную ключевым словом spread. В качестве присваиваемого значения можно использовать любой другой параметр длины: \parindent=\myindent Кроме того, перед присваиваемым значениемв виде параметра длины можно указывать множитель — действительное число, на которое домножается значение параметра: \parindent=3.14159\myindent К параметру длины можно добавлять некоторое число с помощью команды \addtolength:
178 Глава 11. Макроопределения \addtolength{<napaMeTp длины>Н<добавляемое значение>} Добавляемое значение можно указывать как конкретной длиной с единицей измерения, так и другим параметром длины (в том числе и с множителем). Помимо этих команд, существуют ещё три команды, присваивающие параметру длины значение, равное какому-либо измерению текста: \settowidth{<napaMexp>H<TeKCT>} \settoheight{<napaMexp>}{<TeKCT>} \settodepth{<napaMeTp>H<xeKCT>} Пример 11.11. ЛЕСТНИЦА ЛЕСТНИЦА ЛЕСТНИЦА ЛЕСТНИЦА ЛЕСТНИЦА ЛЕСТНИЦА ЛЕСТНИЦА \settowidth{\myindent}{JIECTHH4A} \begin{flushleft} \newcommand{\stairs} [1] {\hspace{#l}JIECTHH4A\par}0/. \newlength{\baseind} \setlength{\baseind}{O.64\myindent} \addtolength{\myindent}{\baseind} \stairs\myindent \bgroup \addtolength{\myindent}{\baseind} \stairs\myindent \begingroup \addtolength{\myindent}{\baseind} \stairs\myindent { \addtolength{\myindent}{\baseind}
. § 5. Изменение стандартных заголовков 179 \stairs\myindent } \stairs\myindent \endgroup \stairs\myindent . \egroup \stairs\myindent \end{flushleft} Как видно из приведённого примера, так называемое «время жизни» параметров длины сильно отличается от времени жизни макрокоманд, счётчиков или окружений: хотя определение нового параметра длины является глобальным, но все изменения значений являются локальными и аннулйруются после выхода из группы. шь Следует быть осторожным при присваивании значений па- ^^ раметров с помощью знака равенства(например, таким образом: \parindent=lcm). При наборе англоязычного текста возможна ситуация, когда после какой-либо команды присваивания в тексте будет использовано одно из слов plus или minus, которое будет расцениватьсякомпилятором как ключевое слово со всеми вытекающими последствиями. Поэтому лучше использовать команду \setlength. § 5. Изменение стандартных заголовков Если необходимо изменить какой-либо заголовок, достаточно переопределить команду, задающую его текст. Список команд, задающих эти заголовки и их значения, установленные по умолчанию, приведён в табл. 11.1. Таблица 11.1. Стандартные заголовки Команда \contentsname \listfigurename \listtablename Значение по умолчанию русское Оглавление Список иллюстраций Список таблиц английское Contents List of Figures List of Tables
180 Глава 11. Макроопределения \indexname , \ref name \bibname \appendixname \abstractname \chaptername \partname \figurename \tablename Предметный указатель Список литературы Список литературы Приложение Аннотация Глава Часть Рис. Таблица Index References Bibliography Appendix Abstract Chapter Part Figure Table Однако в текущих реализациях Ш^Х'а это переопределение сопряжено с некоторыми трудностями. Пакет babel производит переопределение этих команд в соответствии с основным языком документа (он указывается последним в списке опций пакета babel). Так как это переопределение производится не в момент подключения пакета, а при выполнении команды \begin{document}, то простое переопределение не поможет. Необходимо добавить команду \addto со следующими параметрами: \addto{\captions<язык>H<пepeoпpeдeлeния>} Например: \addto{\captionsrussian}{% \renewconunand{\bibname}{CnHCOK источников}°/0 ля^ Напомним, что команды \chapter и \chaptername недо- ^^ ступпы в классе article. Более серьёзное изменение оформления заголовков, например, центрирование по центру заголовка раздела (section), требует серьёзного изменения команд ЖЩХ'а и выходит за рамки этой книги.
Ресурсы сетиИнтернет www.tug.org —ГЩК Users Group — официальная группа пользователей гЩХ'а(поддержка и распространение 'ЩХ'а, финансовая поддержка разработки Ш^ХЗ). Там же распространяется реализация '^jKLive. www.miktex.org — официальный сайт свободной реализации MiM^<jX. www.ams.org/tex — раздел сайта American Mathematical Society, посвя- щённый ЩХ'у. www.toolscenter.org — официальный сайт TeXnicCenter. www.winedt.com —oфициaльныйcaйтWinБdt®. www.truetex.com — коммерческая реализация ТгиегЩК, созданная Ричардом Кинчем (Richard J. Kinch). www.pctex.com — коммерческая реализация рсгЩХ32. www.micropress-inc.com — коммерческая реализация
Список литературы [1] Gratzer G. More Math Into ЖЩХ. 2007. - 619 с. [2] Pakin S. The Comprehensive WF$L2e Symbol List. 2008. — 141 c. [3] Wiedmann M. References for T$L and Friends. 2004. — 144 c. [4] Гретцер Г. Первые шаги в MgX'e: Пер. с англ. — M. : Мир, 2000. — 172c. [5] Гуссенс M., Ратц С. и др. Путеводитель по пакету ЖЩХ и его Web- приложениям: Пер. с англ. — M. : Мир, 2001. — 604 с. [6] Кнут Д. Э. Всё про ГЩХ: Пер. с англ. — M. : Изд. дом «Вильямс», 2003. — 560 с. [7] Корриган Дою. Компьютерная графика: Секреты и решения: Пер. с англ. — M. : Энтроп, 1995. — 352 с. [8] Котельников И. A., Чеботаев П. 3. WT$t2e по-русски. — Новосибирск : Сибирский хронограф, 2004. — 496 с. [9] Львовский С. M. Набор и вёрстка в системе ЖЩК. — M. : МЦНМО, 2003. - 448 с.
Приложения xSbv Часть приведённых здесь символов полученаспомощью пакетов Щр amsmath и amssymb. Принадлежность конкретных команд к какому- либо из этих двух пакетов отдельно не оговаривается. I. Диакритические знаки Ve Ve \=e \u{e} \H{e} \c{e} ё ё ё ё ё § .-Ve \~е \.е \v{e} \"е \d{e} ё ё ё ё ё е \ое \ае \аа \о . VI \i се ае а 0 Г 1 \0Е \АЕ \АА \о \L \j СЕ А 0 L J \b-[e} e \t оо 66 \ss fi II. Строчныегрёческие буквы a \alpha £ \beta 7 \gamma 5 \delta 6 \epsilon С \zeta 77 \eta 0 \theta L \iota « \kappa Л \lambda д \mu ^ \nu £ \xi о о тг \pi ^) \rho G \sigma r \tau г; \upsilon ф \phi X \chi ф \psi a; \omega Иногдау некоторых из этихбукв встречаются другие обозначения, которые приведены в следующей таблице: e \varepsilon •д \vartheta к \varkappa vj \varpi \varrho \varphi III. Прописные греческие буквы Получаются написанием тех же команд, что и длястрочных букв, но сбольшойбуквы: Г А е \Gamma \Delta \Theta [1] П £ \Xi \Pi \Sigma Ф Ф Q \Phi \Psi \Omega Л Т \Lambda \Upsilon Если перед названием буквы из предыдущей таблицы добавить var, то получится наклонный шрифт.
184 Приложения Г* \varGamma Л \varDelta О \varTheta Л \varLambda S \varXi П \varPi E \varSigma Г \varUpsilon Ф \varPhi Ф \varPsi i? \varOmega Остальные греческие прописные буквы берутся из латинского алфавита. IV. Готический алфавит Команда \mathfrak переключает шрифт в математическом режиме на готический: а b с 0 e f Ь i 05 \mathfrak a \mathfrak b \mathfrak с \mathfrak d \mathfrak e \mathfrak f \mathfrak g \mathfrak h \mathfrak i \mathfrak А \mathfrak В \mathfrak С \mathfrak D \mathfrak E \mathfrak F \mathfrak G \mathfrak H \mathfrak I j \mathfrak j t \mathfrak k i \mathfrak 1 m \mathfrak m n \mathfrak n о \mathfrak о p \mathfrak p q r п \mathfrak q \mathfrak r \mathfrak J \mathfrak К \mathfrak L \mathfrak M \mathfrak N \mathfrak 0 \mathfrak P \mathfrak Q \mathfrak R s \mathfrak s t \mathfrak t u \mathfrak u а \mathfrak v to \mathfrak w £ \mathfrak x t) \mathfrak у 3 \mathfrak z 6 X il 2) 3 \mathfrak S \mathfrak T \mathfrak U \mathfrak V \mathfrak W \mathfrak X \mathfrak Y \mathfrak Z V. Некоторые другие буквы 3fc £ г 3 \Re \ell \imath \beth Р J \aleph \wp \jmath \gimel Г С 1 \Im \digamma \complement \daleth VI. Специальные символы V \fora3,l Л \triangle 3 \exists V \nabla oo \infty д \partial
VII. Бинарные операции 185 т it' и 1 V ® / \top \ldots \nexists \Finv \mho \measuredangle \triangledown \circledR \checkmark э 0 < \ lj \bot \vdots \hbar \Garne \varnothing \spherical angle \backslash \natural \surd Z •, п 1 0 б п В * \angle \ddots \hslash \prime \emptyset \eth \square \sharp \maltese VII. Бинарные операции ± X е ® • * V ч п л п U t < < < Гп) Л Л в □ X ® \pm \cdot \times \oplus \otimes \star \bullet \ast \setminus \smallsetminus \cap \wedge \sqcap \amalg \dagger \lhd \unlhd \triangleleft \divideontimes \Cap \ltimes \curlywedge \barwedge \boxminus \boxdot \leftthreetimes \circledcirc \circledast Т © 0 0 о о о 1 Т и V U t > > > ■ Y у Ш X © + \mp \div \odot \ominus \oslash \circ \diamond \bigcirc \wr \intercal \cup \vee \sqcup \uplus \ddagger \rhd \unrhd \triangleright \centerdot \Cup \rtimes \curlyvee \veebar \boxplus \boxtimes \rightthreetimes \circleddash \dotplus
186 Приложения VIII. E и u <g> V li) ш Математические \sum \bigcup \coprod \bigotimes \bigvee \biguplus \int \iiint \oint П П е О л и я ИИ операторы \prod \bigcap \bigoplus \bigodot \bigwedge \bigsqcup \iint \iiiint IX. Бинарные отношения < \le <N/ = о* с с G ^ II # N \equiv \doteq \risingdotseq \sim \cong \backsim \nsim \subset \subseteq \nsubseteq \varsubsetneq \subsetneq \in \ne \рагаПе1 \nparallel \smile \smallsmile \asymp \Join \prec \preceq \nprec \npreceq \precnsim \precnapprox \mid \nmid > > <ll ■7- = э 2 2 э ± ос /^ rh 1X1 у У % 1 -г \ge \gg \triangleq \doteqdot \circeq \simeq \approx \backsimeq \ncong \supset \supseteq \nsupseteq \varsupsetneq \supsetneq \ni \notin \perp \propto \frown \smallfrown \pitchfork \bowtie \succ \succeq \nsucc \nsucceq \succnsim \succnapprox \shortmid \nshortmid
|| о С С <е э 0 их II- нь Y- VII < < < НА %> < < 4 -> > 1—> <—)• X. Стрелки \shortparallel \because \Bimpeq \sqsubset \sqsubseteq \Subset \backepsilon \between \precapprox. \Vdash \Vvdash \nvdash \111 \eqslantless \leqslant \leqq \lessgtr \lessdot \nless \nleq \lvertneqq \lneqq \lneq \lesssim \lnsim \lessapprox \lessapprox \lnapprox \blacktriangleleft \vartriangleleft \trianglelefteq \ntriangleleft и <\ 3) —о N >з и IH ЛИ > > > 1 Ли ► > > 187 \nshortparallel \therefore \bumpeq \sqsupset \sqsupseteq \Supset \multimap \models \succapprox \yDash \nVDash \nvDash Nggg \eqslantgtr \geqslant \geqq \gtrless \gtrdot \ngtr \ngeq \gvertneqq \gneqq \gneq \gtrsim \gnsim \gtrapprox \gtrapprox \gnapprox \blacktriangleright \vartriangleright \trianglerighteq \ntriangleright X. Стрелки \gets \longleftarrow \to \longrightarrow \mapsto \hookrightarrow \leftrightarrow \longleftrightarrow \rightrightarrows ф= => => 1—). <=> <=> t= \Leftarrow \Longleftarrow \Rightarrow \Longrightarrow \longmapsto \hookleftarrow \Leftrightarrow \Longleftrightarrow \leftleftarrows
188 Приложения X -г ;f± ^y^ у-♦ --■> -/» =£► т 1 : тт / \ 0 г\ Г —» \rightleftarrows \rightharpoonup \rightharpoondown \rightleftharpoons \rightsquigarrow \rightarrowtail \dashrightarrov \nrightarrow \nRightarrow \nleftrightarrov \uparrow \downarrow \updownarrow \upuparrows \nearrow \searrow \circlearrowright \curvearrowright \Rsh \twoheadrightarrow \looparrowright \Rrightarrow i=; 4—< <• +/- <t= <#► U \ / О >r^ 1 и— \leftrightarrows \leftharpoonup \leftharpoondown \leftrightharpoons \leftrightsquigarrow \leftarrowtail \dashlef t arrow \nleftarrow \nLeftarrow \nLeftrightarrow \Uparrow \Downarrow \Updownarrow \downdownarrows \nwarrow \swarrow \circlearrowleft \curvearrowleft \Lsh \twoheadleftarrow \looparrowleft \Lleftarrow XI. Карточные символы \spadesuit \diamondsuit \clubsuit \heartsuit
XIII. Кириллические шрифты 189 XII. Параметры стандартных классов В этом разделе приведены параметры стандартных классов book, report и article. Описание параметра класса Стандартный размер шрифта normalsize Размер (формат) бумаги (листа) Положение страницы Наличие титульной - страницы Положение номера в вынесенных формулах Выравнивание вынесенных формул Выделять / не выделять слишком длинные строки (overfull boxes) с помощью маркера Одно- или двухсторонняя печать Страница начала главы (с какой страницы может начинаться глава) Расположение текста в колонках Возможное значение параметра 10pt, llpt, 12pt a4paper, a5paper, b5paper, letterpaper, legalpaper, exe cut ivepaper landscape — альбомная titlepage, notitlepage leqno — номер ставится слева от формулы f leqn — выравнивание по левому краю draft — выделять (черновик), f inal — не выделять (чистовик) oneside — односторонняя, twoside — двухсторонняя openright — только с правой страницы разворота (нечётная страница), орепапу — с любой onecolumn — одна колонка, twocolumn — две колонки Значение по умолчанию 10pt a4paper без указания: книжная titlepage без указания: справа без указания: по середине final one side, но для класса book по умолчанию twoside Для класса book — openright, для остальных — орепапу onecolumn XIII. Кириллические шрифты Из поставляемых вместе с системой шрифтов, поддерживающих кириллицу, интерес представляют только шрифты Antykwa Torunska и Литературная. Кроме этих двух шрифтов, есть ещё несколько, поддерживающих кириллицу (например, CM-super, LH, cmcyr и т. д.), но все они являются аналогами шрифтов Computer Modern c поддержкой кириллицы. В частности, при подготовке этой книги были задействованы шриф-
190 Приложения ты CM-super, цспользуемые современными реализациями MgX по умол- чанию для представления кириллицы. Их преимуществом по сравнению с другими шрифтами является полное покрытие стандартных текстовых и математических шрифтов и кодировок как для растровых шрифтов, так и для векторных Typel-шрифтов, используемых в полиграфии. Шрифт Antykwa Torunska был первоначально создан в 1960 году польским печатником Зигфридом Гардцилевски (Zygfryd Gardzielewski) и оцифрован Янушем Новачи (Janusz Nowacki). Во время написания книги существовали следующие его варианты: \fontfamily{antt}\selectfont 1. Antykwa Torunska: простой прямой \fontseries{m}\fontshape{n}\selectfont Antykwa Torunska: простой прямой 2. Antykwa Torunska: простой курсив \fontshape{it}\selectfont Antykwa Torunska: простой курсив 3. Antykwa Torunska: простой уплотнённый прямой \fontseries{mc}\fontshape{n}\selectfont Antykva Torunska: простой уплотнённый прямой 4. Antykwa Torunska: простой уплотнённый курсив \fontshape{it}\selectfont Antykwa Torunska: простой уплотнённый курсив 5. Antykwa Torunska: светлый прямой \fontseries{l}\fontshape{n}\selectfont Antykwa Torunska: светлый прямой 6. Antykwa Torunska: светлый курсив \fontshape{it}\selectfont Antykwa Torunska: светлый курсив 7. Antykwa Torunska: светлый уплотнённый прямой \fontseries{lc}\fontshape{n}\selectfont Antykwa Torunska: светлый уплотнённый прямой 8. Antykwa Torunska: светлый уплотнённый курсив \fontshape{it}\selectfont Antykwa Torunska: светлый уплотнённый курсив 9. Antykwa Torunska: полужирный прямой \fontseries{sb}\fontshape{n}\selectfont Antykwa Torunska: полужирный прямой
XIII. Кириллические шрифты 10. Antykwa Torunska: полужирный курсив \fontshape{it}\selectfontAntykwaTorunska: полужирный курсив 11. Antykwa Torunska: полужирный уплотнённый прямой \fontseries{sbc}\fontshape{n}\selectfont Antykwa Torunska: полужирный уплотнённый прямой 12. Antykwa Torunska: полужирный уплотнённый курсив \fontshape{it}\selectfont Antykwa Torunska: полужирный уплотнённый курсив 13. Antykwa Torunska: жирный прямой \fontseries{b}\fontshape{n}\selectfont Antykwa Torunska: жирный прямой 14. Antykwa Torunska: жирный курсив \fontshape{it}\selectfont Antykwa Torunska: жирный курсив 15. Anfykwa Torunska: жирный уплотнённый прямой \fontseries{bc}\fontshape{n}\selectfont Antykwa Torunska: жирный уплотнённый прямой 16. Antykrta ToTunska: жирный уплотнённый курсив \fontshape{it}\selectfont Antykwa Torunska: жирный уплотнённый курсив Шрифт Литературная был создан фирмой Paratype. Он предоставляет двестепенинасыщенностиишестьначертанийшрифтов: \fontfamily{tli}\selectfont 1. Литературная: простой прямой \fontseries{m}\fontshape{n}\selectfont Литературная: простой прямой 2. Литературная:простойнаклонный \fontshape{sl}\selectfont Литературная: простой наклонный 3. Литературная: простой курсив \fontshape{it}\selectfont Литературная: простой курсив 4. Литературная: простой прямой курсив \fontshape{ui}\selectfont Литературная: простой прямой курсив
192 Приложения 5. ЛИТЕРАТУРНАЯ: ПРОСТОЙ КАПИТЕЛЬ \fontshape{sc}\selectfont Литературная: простой капитель 6. ЛИТЕРАТУРНАЯ: ПРОСТОЙ КУРСИВ-КАПИТЕЛЬ \fontshape{si}\selectfont Литературная: простой курсив-капитель 7. Литературная: жирный прямой \fontseries{b}\fontshape{n}\selectfont Литературная: жирный прямой 8. Литературная:жирный наклонный \fontshape{sl}\selectfont Литературная: жирный наклонный 9. Литературная: жирный курсив \fontshape{it}\selectfont Литературная: жирный курсив 10. Литературная: жирный прямой курсив \fontshape{ui}\selectfont Литературная: жирный прямой курсив 11. ЛИТЕРАТУРНАЯГЖИРНЫЙКАПИТЕЛЬ \fontshape{sc}\selectfont Литературная: жирный капитель 12. ЛИТЕРАТУРНАЯ: ЖИРНЫЙ КУРСИВ-КАПИТЕЛЬ \fontshape{si}\selectfont Литературная: жирный к урсив-капитель
Предметный указатель ' 141 V 183 " 141 \( 134 \) 134 \, 28, 136 \-30 \/54 \: 136 \; 28, 136 \[135 $ 134 $$ 135 MfeX10 10 \{ 138 \} 138 \] 135 V 183 \abstractname 180 \acute 141 \addto 180 \addtocounter 169 \addtolength 177 \aleph 184 align 153 \Alph 170 \alph 170 \alpha 183 \amalg 185 \angle 185 \appendix 76 \appendixname 180 \approx 186 \arabic 169 \arccos 145 \arcctg 145 \arcsin 145 \arctan 145 \arctg 145 \arg 145 array 115, 148 article 24 \Asbuk 170 \asbuk 170 \astl85 \asymp 186 babel \selectlanguage 26 \backepsilon 187 \backmatter 76 \backsim 186 \backsimeq 186 \backslash 133, 140, 185 \bar 141 \barwedge 185 \baselineskip 69 \because 187 \beta 183 \beth 184 \between 187 \bfdefault 60 \bfseries 53, 60 \bibitem 101 \bibname 180 \Big 138 \big 138 \bigcap 146, 186 \bigcirc 185 \bigcup 146, 186 \Bigg 138 \bigg 138 \bigodot 146, 186 \bigoplus 146, 186 \bigotimes 146, 186 \bigskip 41 \bigskipamount 41 \bigsqcup 146, 186 \biguplus 146, 186 \bigvee 146, 186 \bigwedge 146, 186
194 Предметный указатель \blacktriangleleft 187 \blacktriangleright 187 bmatrix 151 \boldmath 155 \boldsymbol 155 book 24 \bot 185 bottomnumber 106 \bowtie 186 \boxdot 185 \boxed 142 \boxminus 185 \boxplus 185 \boxtimes 185 \breve 141 \bullet 185 \Bumpeq 187 \bumpeq 187 \Cap 185 \cap 185 caption 104, 117 \captionsetup 104 \figure 105 \justification 105 \labelsep 105 \singlelinecheck 105 \table 105 \captionsetup 117, 131 figure 131 cases 151 \cdot 185 center 40 \centerdot 185 \chaptername 180 \check 141 \checkmark 185 \chi 183 \circ 185 \circeq 186 \circle 124 \circle* 124 \circlearrowleft 188 \circlearrowright 188 \circledast 185 \circledcirc 185 \circleddash 185 \circledR 185 \cite 101 cite 102 \cleardoublepage 71 \clearpage 71 \cline 109, 149 \clubsuit 188 \colorbox 56 \colunmbreak 72 \columnsep 71 \columnseprule 71 \complement 184 \cong 186 \contentsname 179 \coprod 146, 186 \cos 145 \cosec 145 \cosh 145 \cot 145 \coth 145 \csc 145 \ctg 145 \cth 145 \Cup 185 \cup 185 \curlyvee 185 \curlywedge 185 \curvearrowleft 188 \curvearrowright 188 \dagger 185 \daleth 184 \dashleftarrow 188 \dashrightarrow 188 \ddagger 185 \ddddot 141 \dddot 141 \ddot 141 \ddots 185 \DeclareTextFontCommand 61 \definecolor 57 \deg 145 \Delta 183
Предметный указатель 195 \delta 183 description 94 \det 145, 147 \dfrac 143 \diamond 185 \diamondsuit 188 \digamma 184 \dim 145 displaymath 135 \displaystyle 137 \div 185 \divideontimes 185 document 23 \documentclass 20, 50 \dot 141 \doteq 186 \doteqdot 186 \dotfill 88 \dotplus 185 \dots 34 doublespace 42 \Downarrow 188 \downarrow 188 \downdownarrows 188 \ell 184 \em 54 - ет'ЩХ 10 \emph 54 \emptyset 185 \enskip 28 \ensuremath 165 enumerate 90, 92 enumitem 95 noitemsep 96 nolistsep 96 resume 96 \epsilon 183 ' \eqref 152 \eqslantgtr 187 \eqslantless 187 equation 152 \equiv 186 \eta 183 \eth 185 \evensidemargin 69 \exists 184 \exp 145 \fbox 87, 142 \fcolorbox 56 figure 103, 131 figure* 73 \figurename 104, 180 \Finv 185 fleqn 135 \flqq 34 flushleft 40 flushright 40 \fnsymbol 170 \fontencoding 59 \fontfamily 58 \fontseries 58 \fontshape 59 \fontsize 59 \footnote 86 \forall 184 fp'^jX 10 \frac 143 \frontmatter 76 \frown 186 \frqq 34 \Game 185 \Gamma 183 \gamma 183 gather 154 \gcd 145 \ge 186 geometry 63 bmargin 66 body 65 bottom66 height 65 hmargin 66 hscale 65 ignoreall 67 ignorefoot 67 ignorehead 67 ignoreheadfoot 67
196 Предметный указатель ignoremp 67 includeall 67 includefoot 67 includehead 67 includeheadfoot 67 includemp 67 inner 66 landscape 64 left 66 lines 66 lmargin 66 onecolumn 64 oneside 64 outer 66 paper 63 paperheight 63 paperwidth 63 portrait 64 right 66 rmargin 66 textheight 65 textwidth 65 tmargin 66 top 66 total 65 totalheight 65 totalwidth 65 twocolumn 64 twoside 64 vscale 65 width 65 \geqq 187 \geqslant 187 \gets 187 \gg 186 \ggg 187 \gimel 184 \glqq 34 \gnapprox 187 \gneq 187 \gneqq 187 \gnsim 187 graphicx 127 \grave 141 \grqq 34 \gtrapprox 187 \gtrdot 187 \gtrless 187 \gtrsim 187 \gvertneqq 187 \hangafter 38 \hangindent 38 \hat 141, 142 \hbar 185 \headheight 69 \headsep 69 \heartsuit 188 \hline 108, 149 \hom 145 \hookleftarrow 187 \hookrightarrow 187 \hrulefill 88 \hslash 185 \hspace 29, 137 \Huge 50 \huge 50 \hyphenation 31 \ignorespaces 175 \ignorespacesafterend 175 \iiiint 147, 186 \iiint 147, 186 \iint 147, 186 \Im 184 \imath 141, 184 \in 186 \includegraphics 128 \includegraphics* 129 \indent 37 indentfirst 36 \indexname 180 \inf 145, 147 \infty 184 inputenc 59 \int 186 \intercal 185 \iota 183 \itdefault 60 \item 94
Предметный указатель 197 itemize 89, 90 \itshape 53, 60 \jmath 141, 184 \Join 186 \kappa 183 \ker 145 \label85, 152, 154 \Lambda 183 \lambda 183 \langle 140 \LARGE 50 \Large 50 \large 50 \lceil 140 \ldots 34, 185 \le 186 \left 138, 149 \Leftarrow 187 \leftarrowtail 188 \leftharpoondown 188 \leftharpoonup 188 \leftleftarrows 187 \Leftrightarrow 187 \leftrightarrow 187 \leftrightarrows 188 \leftrightharpoons 188 \leftrightsquigarrow 188 \leftroot 144 \leftthreetimes 185 \leqq 187 \leqslant 187 \lessapprox 187 \lessdot 187 \lessgtr 187 \lesssim 187 \lfloor 140 \lg 145 \lhd 185 \lim 145, 147 \liminf 145, 147 \limits 146 \limsup 145, 147 \line 123 \linebreak 37 \linethickness 122 \listfigurename 179 \listoffigures 104 \listoftables 104 \listtablename 179 \11 186 \Lleftarrow 188 \111 187 \ln 145 \lnapprox 187 \lneq 187 \lneqq 187 \lnsiml87 \log 145 \Longleftarrow 187 \longleftarrow 187 \Longleftrightarrow 187 \longleftrightarrow 187 \longmapsto 187 \Longrightarrow 187 \longrightarrow 187 longtable 118, 119 \endfirsthead 118 \endhead 118 longtable* 119 \looparrowleft 188 \looparrowright 188 \Lsh 188 \ltimes 185 \lvertneqq 187 \mainmatter 76 \maltese 185 \mapsto 187 marginpar 86 math 134 \mathbb 155 \mathcal 155 \mathfrak 155, 184 \mathring 141 matrix 151 \max 145, 147 MaxMatrixCols 151
198 Предметный указатель \mbox 31, 140 \mddefault 60 \mdseries 53, 60 \measuredangle 185 \medskip 41 \medskipamount 41 \MF9 \mho 185 \mid 186 М1кгЩХ 10 \min 145, 147 \models 187 \mp 185 \mu 183 multicol 71 multicols 71 \multicolumn 110 \multimap 187 \multiput 123 \multirow 114 multirow 113 multline 153 \nabla 184 \natural 185 \ncong 186 \ne 143, 186 \nearrow 188 \neq 143 \newcommand 163 \newcounter 168 \newenvironment 174 \newlength 176 \newline 37 \newpage 71 \nexists 185 \ngeq 187 \ngtr 187 \ni 186 \nLeftarrow 188 \nleftarrow 188 \nLeftrightarrow 188 \nleftrightarrow 188 \nleq 187 \nless 187 \nmid 186 \noindent 36, 38 \normalsize 50 \not 143 \notin 143, 186 \nparallel 186 \nprec 186 \npreceq 186 \nRightarrow 188 \nrightarrow 188 \nshortmid 186 \nshortparallel 187 \nsim 186 \nsubseteq 186 \nsucc 186 \nsucceq 186 \nsupseteq 186 \ntriangleleft 187 \ntriangleright 187 \nu 183 \numberwithin 173 \nVDash 187 \nvDash 187 \nvdash 187 \nwarrow 188 \oddsidemargin 69 \odot 185 \0E 183 \oe 183 \oint 147, 186 \0mega 183 \omega 183 \ominus 185 onecolumn 71 onehalfspace 42 \oplus 185 \oslash 185 \otimes 185 \overbrace 142 \overleftarrow 142 \overline 142 \overrightarrow 141 Package 21
Предметный указатель 199 \pagenumbering 84 \pageref 85, 94 \pagestyle 84 papersize 63 \par 37, 53 \parallel 186 \parbox 88 \parindent 38 \parshape 39 \parskip 41 \partial 184 \partname 180 \perp 186 \Phi 183 \phi 183 \Pi 183 \pi 183 picture 121 \pitchfork 186 Plaint 10 \pm 185 pmatrix 151 \pmb 155 \Pr 147 \prec 186 \precapprox 187 - \preceq 186 \precnapprox 186 \precnsim 186 \prime 185 \prod 146, 186 \propto 186 \providecommand 166 \Psi 183 \psi 183 \put 123 \qquad 28, 136 \quad 28, 136 quotation 97 quote 97 \rangle 140 \rceil 140 \Re 184 \ref 94 \refname 180 \refstepcounter 169 \renewcommand 60, 165 \renewenvironment 175 report 24 \rfloor 140 \rhd 185 \rho 183 \right 138, 149 \Rightarrow 187 \rightarrowtail 188 \rightharpoondown 188 \rightharpoonup 188 \righthyphenmin 31 \rightleftarrows 188 \rightleftharpoons 188 \rightrightarrows 187 \rightsquigarrow 188 \rightthreetimes 185 \risingdotseq 186 \rmdefault 60 \rmfamily 53, 60 \Roman 170 \roman 170 \Rrightarrow 188 \Rsh 188 \rtimes 185 scale 65 \scdefault 60 \scriptscriptstyle 137 \scriptsize 50 \scriptstyle 137 \scshape 53, 60 \searrow 188 \sec 145 secnumdepth. 77 \selectfont 60 \selectlanguage 26 \setcounter 169 \setlength 38, 177 \setminus 133, 185 setspace doublespacing 42
200 Предметный указатель onehalfspacing 42 singlespacing 42 spacing 42 \settodepth 178 \settoheight 178 \settowidth 178 \sfdefault 60 \sffamily 53, 60 \sharp 185 \shortmid 186 \shortparallel 187 \Sigma 183 \sigma 183 \sim 186 \simeq 186 \sin 145 singlespace 42 \sinh 145 \sldefault 60 \slshape 53, 60 \small 50 \smallfrown 186 \smallsetminus 185 \smallskip 41 \smallskipamount 41 \smallsmile 186 \smile 186 spacing \setstretch 44 \spadesuit 188 \sphericalangle 185 \sqcap 185 \sqcup 185 \sqrt 143 \sqsubset 187 \sqsubseteq 187 \sqsupset 187 \sqsupseteq 187 \square 185 \star 185 \stepcounter 169 \Subset 187 \subset 186 \subseteq 186 \subsetneq 186 \succ 186 \succapprox 187 \succeq 186 \succnapprox 186 \succnsim 186 \sum 146, 186 \sup 145, 147 \Supset 187 \supset 186 \supseteq 186 \supsetneq 186 \surd 185 \swarrow 188 table 103, 116, 119, 131 table* 73, 116 \tablename 104, 180 \tableofcontents 80 tabular 108 \tan 145 \tanh 145 \tau 183 10 \text 140 text 65 \textbf 53, 60 \textcolor 56 \textheight 69 \textipa 62 \textit 53, 60 \textmd 53, 60 \textrm 53, 60 \textsc 53, 60 \textsf 53, 60 \textsl 53, 60 \texttt 53, 60 \textup 53, 60 \textwidth 68 \tfrac 143 \tg 145 \th 145 thebibliography 101 \therefore 187 \Theta 183
Предметный указатель 201 \theta 183 \thicklines 122 \thinlines 122 \thispagestyle 84 \tilde 141, 142 \times 185 \tiny 50 tipa 62 \to 187 tocdepth 77 \top 185 \topmargin 69 topnumber 106 \topskip 69 totaunumber 106 \triangle 184 \triangledown 185 \triangleleft 185 \trianglelefteq 187 \triangleq 186 \triangleright 185 \trianglerighteq 187 \ttdefault60 \ttfamily 53, 60 twocolumn 71 \twoheadleftarrow 188 \twoheadrightarrow 188 \underbrace 142 \underline 87, 142 unitlength 121 \unlhd 185 \unrhd 185 \Uparrow 188 \uparrow 188 \updefault 60 \Updovnarrow 188 \updownarrov 188 \uplus 185 \uproot 144 \upshape 53, 60 \Upsilon 183 \upsilon 183 \upuparrows 188 \usepackage 21 \value 169 \varDelta 184 \varepsilon 183 \varGamma 184 \varkappa 183 \varLambda 184 \varnothing 185 \var0mega 184 \varPhi 184 \varphi 183 \varPi 184 \varpi 183 \varPsi 184 \varrho 183 \varSigma 184 \varsubsetneq 186 \varsupsetneq 186 \varTheta 184 \vartheta 183 \vartriangleleft 187 \vartriangleright 187 \varUpsilon 184 \varXi 184 \Vdash 187 \vDash 187 \vdots 185 \vec 141 \vector 124 \vee 185 \veebar 185 verbatim 98 verbatim* 98 verse 99 Vmatrix 151 vmatrix 151 \vspace 41 \Vvdash 187 \vedge 185 \widehat 142 \widetilde 142 \wp 184 \wr 185 wrapfig 131 wrapfigure 131
202 Предметный указатель vraptable 131 xcolor 55 \Xi 183 \xi 183 \zeta 183 Абзац 35 выравнивание 40 интервал 41 интерлиньяж 42 отступ 36 Двоеточие 32 Дефис 32 Документ 14 класс 20 article 24 book 24 report 24 рубрика 74 секция 74 стиль 20 Дроби 143 Запятая 32 Знак вопросительный 32 восклицательный 32 Индекс 137 Интеграл 146 Кавычки 34 ёлочки 34 лапки верхние 34 рукописные 34 Команда ^jX 19 Конструкция неразрывная 44 Корни 143 Матрицы 148 Многоточие 33 Оглавление 78 Окружение 22 Отбивка 74 Пакет 21 amsmath 133, 173, 183 amssymb 133, 183 array 114 babel 26 caption 104 enumitem 95 fontenc 26 geometry 63 graphicx 127 inputenc 26 longtable 118 multirow 113 setspace 42 wrapfig 131 xcolor 55 Переносы 30 вручную 31 принудительные 30 Период речи 35 Плавающий объект 103 заголовок 104 расположение 104 Поле верхнее 65 левое 65 нижнее 65 правое 65 текстовое 65 главное 65 Преамбула 17 Предел 146 Пробелы 28 Произведение 146 Пункт типографский 46 Рисунки вставка 127 обтекание текстом 131 Секционирование 74
Предметный указатель 203 глава 75 параграф 75 подпараграф 75 подподраздел 75 подраздел 75 раздел 75 часть 75 Синтаксис языка T^jX 18 Системы уравнений 151 Скобка 35 Скобки 138 Сноска 86 Содержание 78 Список источников 100 литературы 100 ненумеруемый 89 нумерумеый 90 Страница колонки 71 нумерация 84 размер 63 разрыв 71 ссылка 85 Строка концевая 35 Сумма 146 Счётчик 167 Таблица боковик 106 выравнивание 109 графа 106 заголовок 107,116 заголовочная часть 106 многостраничная 117 надзаголовочная часть 107 нумерация 116 объединение 110 прографка 106 сетка 107, 109 строка 106 хвостовая часть 106 шапка 107 ячейка 108 Текст основной 23 простой 26 сплошной 26 Тире длинное 33 короткое 33 простое 33 Точка32 Точка с запятой 32 Файл выходной 14 исходный 14 кодировка 26 основной 14 Формат вывода DVI 15 PDF 17 PostScript 15 Формула вынесенная 134 ненумеруемая 135 нумеруемая 152 пробелы 136 тёкст'140 текстовая 134 шрифты 155 Цитата 97 Шрифт жирный 53 капитель 53 кегль 46 курсив 53 машинка 53 наклонный 53 обычный 53 размер 46, 49 рубленый 53 цвет 55
URSSru URSS.ru URSS Другие книги нашего издательства: Математическое моделирование Тарасевич Ю. Ю. Математическое и компьютерное моделирование. Тарасевич Ю. Ю. Информационные технологии в математике. Тарасевич Ю. Ю. Перколяция: теория, приложения, алгоритмы. Мышкис А.Д. Элементы теории математических моделей. Блехман К #., Мышкис А.Д., Пановко Я. Г. Прикладная математика. Плохошников К. Э. Математическое моделирование и вычислительный эксперимент. Калман Р., Фалб П., Арбиб M. Очерки по математической теории систем. Оптимизация Софиева Ю. #., Цирлин A. M. Введение в задачи и методы условной оптимизации. Галеев Э. M. Оптимизация: теория, примеры, задачи. Ковалев M. M. Дискретная оптимизация (целочисленное программирование). Ковалев M. M. Матроиды в дискретной оптимизиции. Балакришнан А. Введение в теорию оптимизации в гильбертовом пространстве. Бондаренко B.A., Максименко A.H. Геометрические конструкции и сложность в комбинаторной оптимизации. Теория игр Шикин E. В. От игр к играм. Математическое введение. Оуэн L Теория игр. Жуковский В. И.у Жуковская Л. В. Риск в многокритериальных системах. Жуковский В. И. Кооперативные игры при неопределенности и их приложения. Смольяков Э. Р. Теория антагонизмов и дифференциальные игры. Смольяков Э. Р. Теория конфликтных равновесий. Теория графов Xapapu Ф. Теория графов. Ope О. Цзафы и их применение. Ope О. Теория графов. Березина Л. Ю. П>афы и их применение. Емеличев B.A., Мельников О. И. и др. Лекции по теории графов. Мельников О. К Незнайка в стране графов. Мельников О. И. Теория графов в занимательных задачах. Мельников О. И. Обучение дискретной математике. Родионов В. В. Методы четырехцветной раскраски вершин плоских графов. Прикладная лингвистика Хомский H., МиллерДж. Введение в формальный анализ естественных языков. Гладкий А. В. Синтаксические структуры естественного языка. Потапова Р. К. Речь: коммуникация, информация, кибернетика. Потапова Р. К. Тайны современного Кентавра. Речевое взаимодействие. Потапова Р. К. Новые информационные технологии и лингвистика. Потапов В. В. Динамика и статика речевого ритма. Венцов А. В., Касевич В. Б. Проблемы восприятия речи. Раскин В. К теории языковых подсистем. .eoi m 09 i ся 60 щ* 60 09] H- Ш 60 во! URSS.nuURSSruURSS.ru
URSSiu Другие книги нашего издательства: URSS Математическая логика Гуц А. К. Математическая логика и теория алгоритмов. Смирнов B.A. Логические методы анализа научного знания. Шалак В. И. (ред.) Логико-философские труды В. А. Смирнова. Сидоренко E. А. Логика. Парадоксы. Возможные миры. Френкель A.A., Бар-Хиллел И. Основания теории множеств. Драгалин А. Г. Конструктивная теория доказательств и нестандартный анализ. Карпенко А. С. Логики Лукасевича и простые числа. Карпенко А. С. Фатализм и случайность будущего: Логический анализ. Финн В. К. (ред.) Многозначные логики и их применения. В 2 т. Финн В. К. (ред.) Автоматическое порождение гипотез в интеллектуальныхсистемах. Бирюков Б. В., ТростниковВ. H. Жар холодных числ и пафос бесстрастной логики. Бирюкова H. Б. Логическая мысль во Франции XVII - начала XDC столетий. Бахтияров К. И. Логика с точки зрения информатики. Гамов Г., Стерн M. Занимательные задачи. Перминов В. Я. Развитие представлений о надежности математическогодоказательства. Петров Ю.А. Логические проблемы абстракций бесконечности и осуществимости. Бежанишвили M. H. Логика модальностей знания и мнения. Серия «Физико-математическое наследие: математика (основания математики илогика)» Клини С. Введение в метаматематику. Клини С. Математическая логика. Чёрч А. Введение в математическую логику. Лебег А. Об измерении величин. Серия «Классический университетский учебник» Колмогоров A. H., Драгалин А. Г. Математическая логика. Гнеденко Б. В. Курс теории вероятностей. Кононович Э. В., Мороз В. И. Общийкурс астрономии. Капитонов И. M., Ишханов Б. C., Юдин H. П. Частицы и атомные ядра. Квасников И.А. Термодинамика и статистическая физика. В 4 т. Петровский И. L Лекции по теории обыкновенных дифференциальных уравнений. Серия «Из истории логики XX века» Асмус В. Ф. Логика. Асмус В. Ф. Лекции по истории логики: Авиценна, Бэкон, Гоббс, Декарт, Паскаль. Серрюс Ш. Опыт исследования значения логики. Грязное Б. С Логика, рациональность, творчество. Ахманов А. С. Логическое учение Аристотеля. Строгович M. С. Логика. Карнап Р. Значение и необходимость: Исследование по семантике и модальной логике. Войшвилло E.K. Понятие как форма мышления: Логико-гносеологический анализ. Гастев Ю.А. Гомоморфизмыи модели (логико-алгебраич. аспекты моделирования). Челпанов Г. И. Учебник логики.
aiURSSfru URSSlrui Щ ~" Другие книги нашего издательства: URSS.ru m ш Гея iCO Щ и мм» Щ eoJ f i= Серия «Науки об искусственном» Финн В. К. Интеллектуальные системы и общество. Редько В. Г. (ред.) От моделей поведения к искусственному интеллекту. URSS Саймон Г. Науки об искусственном. Гаазе-Рапопорт M. Г., ПоспеловД.А. От амебы до робота: модели поведения. Попов Э. В. Общение с ЭВМ на естественном языке. Арбиб M. Метафорический мозг. Тарасов В. Б. От многоагентных систем к интеллектуальным организациям. Шамис А. Л. Поведение, восприятие, мышление. Варшавский В. И.у ПоспеловД.А. Оркестр играет без дирижера: Размышление об эволюции некоторых технических систем и управлении ими. Серия «НАУКУ ■— ВСЕМ! Шедевры научно-популярной литературы» Колмогоров A. H. Математика — наука и профессия. Мизес Р. Вероятность и статистика. Стинрод H.y Чинн У. Первые понятия топологии. Вольберг O.A. Основные идеи проективной геометрии. Меннхен Ф. Некоторые тайны артистов-вычислителей. ВилъямсДж.Д. Совершенный стратег, или Букварь по теории стратегических игр. Широков П.А. Краткий очерк основ геометрии Лобачевского. Ланге В. H. Физические парадоксы, софизмы и занимательные задачи. Кн. 1,2. Гарднер M. Теория относительности для миллионов. Хвольсон О.Д. Теория относительности А. Эйнштейна и новое миропонимание. Сазанов A.A. Четырехмерная модель мира по Минковскому. Перельман Я. И. Занимательная астрономия. Кононович Э. В. Солнце — дневная звезда. Липунов В. M. В мире двойных звезд. Тарасов Л. В., Тарасова A. H. Беседы о преломлении света. Каганов M. И. Электроны, фононы, магноны. Каганов М.И., Цукерник B.M. Природа магнетизма. Харкевич А. А. Автоколебания. Ашкинази Л.А. Электронные лампы: Из прошлого в будущее. Шейд К. Опыты по химии для начинающих. Кац E.A. Фуллерены, углеродные нанотрубки и нанокластеры. Серия «Синергетика в гуманитарных науках» Коротаев А. В., Малков С. Ю. (ред.) История и синергетика. Кн. 1,2. Назаретян А. П. Антропология насилия и культура самоорганизации. Вагурин B.A. Синергетика эволюции современного общества. Митюков H. В. Имитационное моделирование в военной истории. Буданов В. Г. Методология синергетики в постнеклассической науке и в образовании. Панов А.Д. Универсальная эволюция и проблема поиска внеземного разума (SETT). Белоусов К. И. Синергетика текста: От структуры к форме. Ельчанинов M. С. Социальная синергетика и катастрофы России в эпоху модерна. Старостенков H. В., Шилова Г. Ф. Российская цивилизация в социальном измерении. _^ URSS.ru=
URSS Другие книги нашего издательства: Серия «Синергетика: от прошлого к будущему» Пенроуз Р. НОВЫЙ УМ КОРОЛЯ. О компьютерах, мышлении и законах физики. Пер. с англ. Майнцер К. Сложносистемное мышление:Материя,разум, человечество. Новый синтез. Пер. с англ. Хакен Г. Информация и самоорганизация. Пер. с англ. Малинецкий Г. Г. Математические основы синергетики. Мшшнецкий Г. Г., Потапов А. Б. Нелинейная динамика и хаос: основные понятия. Малинецкий Г. Г.у Потапов А. Б., Подлазов А. В. Нелинейная динамика. Капица С. Я., Курдюмов С. #., Малинецкий Г. Г. Синергетика и прогнозы будущего. Малинецкий Г. Г. (ред.) Будущее России в зеркале синергетики. Малинецкий Г. Г. (ред.) Синергетика: Исследования и технологии. Редько В. Г. Эволюция, нейронные сети, интеллект. Чернавский Д. С. Синергетика и информация (динамическая теория информации). Безручко Б. П. и др. Путь в синергетику. Экскурс в десяти лекциях. Данилов Ю.А. Лекции по нелинейной динамике.Элементарноевведение. ТрубецковД. И. Введение всинергетику. В 2 кн.: Колебания и волны; Хаос и структуры. Климонтович Ю. JI. ^рбулентное движение и структура хаоса. Князева E. #., Курдюмов С. Я. Основаниясинергетики. Кн. 1,2. Арнольд В. Й. Теория катастроф. Баранцев Р. Г. Синергетика в современном естествознании. Баранцев P. L u др. Асимптотическая математика и синергетика. Тюкин И. Ю., Терехов B.A. Адаптация в нелинейных динамических системах. Анищенко В. С. Знакомство с нелинейной динамикой. Васильков Г. В. Эволюционная теория жизненного цикла механических систем. Долгоносое Б. M. Нелинейная динамика экологических и гидрологических процессов. Пригожин И. От существующего к возникающему. Пригожин Я., Стенгерс И. Время. Хаос. Квант. К решению парадокса времени. Пригожин Я., Стенгерс И. Порядок из хаоса. Новый диалог человека с природой. Пригожин Я, Николис Г. Познание сложного. Введение. Пригожин Я, Гленсдорф П. Термодинамическая теория структуры, устойчивости и флуктуации. Суздалев И. П. Нанотехнология: физико-химия нанокластеров, наноструктур и наноматериалов. Тел./фанс: (499) 135-42-46, (499) 135-42-16, E-mail: URSS@URSS.ru http://URSS.ru Наши книги можно приобрести в магазинах: «Библио-Глобус» (и.Лубянка, ул.Мясницкая, 6. Тел. (495) 625-2457) «Московский дом книги» (м.Арбатская, ул.Новый Арбат, 8. Тел. (495) 203-8242) «Молодая гвардия» (м.Полянка, ул.Б. Полянка, 28. Тел. (495) 238-5001,780-3370) «Дом научно-технической книги» (Ленинский пр-т, 40. Тел. (495) 137-6019) «Дом книги на Ладожской» (м.Баумансная, ул.Ладожская,8, стр.1. Тел. 267-0302) «Гнозис» (м.Университет, 1 гум.корпус МГУ, комн.141. Тел. (495) 9394ЛЗ) «У Кентавра» (РГГУ) (м.Новослободская, ул.Чаянова,15.Тел. (499) 973-4301) «СПб. дом книги» (Невский пр., 28. Тел. (812) 448-2355) 0i 09] i ji -«s^ м и! И i O9i И] ^Ч» 09 Gfl URSS.ru URSS.ru^RSS.ruURSS.ru
Уважаемые читатели! Уважаемые авторы! Наше издательство специализируется на выпуске научной и учебной литературы, в том числе монографий, журналов, трудов ученых Российской академии наук, научно-исследовательских институтов и учебных заведений. Мы предлагаем авторам свои услуги на выгодных экономических условиях. При этом мы берем на себя всю работу по подготовке издания — от набора, редактирования и верстки до тиражирования и распространения. URSS Среди вышедших и готовящихся к изданию книг мы предлагаем Вам следующие: Росс Эшби У. Введение в кибернетику. Бир С. Мозг фирмы. Бир С. Кибернетика и менеджмент. Бир С. Наука управления. Биркгофф Г. Математика и психология. Акофф Р., Эмери Ф. О целеустремленных системах. Caamu Т. Л. Принятие решений при зависимостях и обратных связях. Бибило П. H. Основы языка VHDL. Немытых А. П. Суперкомпилятор SCP4: Общая структура. Вязилов Е.Д. Архитектура, методы и средства Интернет-технологий. Ландэ Д. В., Снарский А. А., Безсуднов И. В. Интернетика: Навигация в сложных сетях. Кузнецова Ю. Af., Чудова H. В. Психология жителей Интернета. Бабичев А, В. Распознавание и спецификация структур данных. Евменов В. П. Интеллектуальные системы управления. Поваров Г. H. Ампер и кибернетика. Ворожцов А. В, Путь в современную информатику. Кронрод А. С. Беседы о программировании. Гуц А. К Комплексный анализ и кибернетика. Карабутов H. H. Адаптивная идентификация систем. Карабутов H. H. Структурная идентификация систем. Магазов С. С. Когнитивные процессы и модели. Магазов С. С. Лекции и практические занятия по технологии баз данных. Бриллюэн Л. Научная неопределенность и информация. Чесноков С В. Феноменология диалогов в гештальт-теории, математике, логике. Чесноков С. В. Детерминационный анализ социально-экономических данных. Лейбин В. M. Информатизация и системные исследования. Григорьев B.A. Человек как неформальная интеллектуальная система. Закревский А.Д. Параллельные алгоритмы логического управления. Закревский А.Д, Логические уравнения. Шамис А.Л. Пути моделирования мышления. Крылов С. M. Неокибернетика: математика эволюции и технологии будущего. Прайд В., Коротаев А. В. (ред.) Новые технологии и продолжение эволюции человека? Мищенко А. В. Апгрейд в сверхлюди. По всем вопросам Вы можете обратиться к нам: тел./факс{499) 135-42-16, 135-42-46 или электронной почтой URSS@URSS.ru Полный каталог изданий представлен в интернет-магазине: http://URSS.ru Научная и учебная литература