Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 14
Текст из файла (страница 14)
Пункт —единица длины, равная 1/72 части дюйма. В Российской Федерации и ряде европейских стран, где за основу принят французский дюйм (27,1 мм), 1 пункт592.10. Длинаприблизительно равен 0,376 мм. В англо-американской системе мер, пользующейся английским дюймом (25,4 мм), 1 пункт приблизительно равен 0,351 мм.LATEX построен на англо-американской системе мер.
Он использует следующие единицы измерения длины:mmcminptbppcмиллиметрсантиметрдюйм (1 in = 2,54 cm)пункт (1 in = 72,27 pt)«большой» пункт (1 in = 72 bp)пайка (1 pc = 12 pt)Здесь все соотношения между единицами длины даны в виде точных равенств.Явная длина записывается в виде десятичного числа, за которым следует обозначение единицы измерения. Десятичное число может иметь знак и состоять излюбого числа цифр (нужно оставить десятичную точку, если цифр нет вообще).Между знаком (если он есть), числом и обозначением единицы измерения допускаются пробелы, однако пробелы нельзя оставлять между цифрами в числе имежду буквами в обозначении единиц измерения. Следующий пример даёт пятьобразцов правильной записи длины:3 in29pc-.667cm0.mm+ 42.1 ptНельзя записывать нулевую длину одним нулем без указания единиц измерения — нужно писать 0mm или 0in и т.
д.Объекты, измеренные в указанных выше единицах, имеют фиксированнуюдлину, которая не зависит от контекста, в котором применена та или иная команда. Линия длиной в 5 cm при любой модификации исходного текста всегда впечатном документе будет иметь этот размер.LATEX знает ещё две единицы измерения, которые скорее являются относительными, чем абсолютными:emex«М-ширина» текущего шрифта«x-высота» текущего шрифтаКаждый шрифт определяет свои собственные значения em и ex.
Достаточно давно величина em отождествлялась с шириной буквы «М» текущего шрифта. Внастоящее время так считать не совсем верно, хотя приближённо можно попрежнему рассматривать em и ex как ширину буквы «М» и высоту буквы «х». Всемействе шрифтов Computer Modern выдерживается правило, что ширина цифрот 0 до 9 равна 0,5 em, а высота строчной буквы «х» равна 1,0 ex; но для другихсемейств шрифтов это правило не является абсолютным. Для основного шрифта, которым набрана данная книга, 1 em = 10 pt, 1 ex ≈ 4,3 pt, для полужирногошрифта того же размера 1 em = 11,5 pt, 1 ex ≈ 4,44 pt, а машинописный шрифтимеет 1 em = 10,5 pt, 1 ex ≈ 4,3 pt.Командная длина суть команда, значение которой есть длина. Команднуюдлину, как и явную, можно использовать в аргументах команд.
Ширина отступа60Глава 2. Команды и процедурыв начале абзаца равна \parindent, а команда 1.5\parindent означает в 1,5 разабо́льшую длину. Командные длины, как и явные, могут иметь отрицательныезначения.Многие параметры, определяющие стиль документа, такие как ширина отступа в начале абзаца, ширина и высота страницы, расстояние между строками,являются командными длинами. Обычно такие команды задают нерастяжимуюдлину.
Случаи, когда команда задаёт растяжимую длину, всякий раз будут оговариваться особо. Растяжимая длина имеет естественную длину и степень растяжимости. Можно представить, что растяжимая длина — это пружинка, укоторой есть естественная длина, когда пружинка не деформирована, и есть коэффициент упругости, определяющий, насколько удлинится пружинка, когда еёрастягивают с определённым усилием.Величину растяжимой длины записывают с помощью словplusminusСлово plus означает, что длина может растягиваться, а слово minus — сжиматься. Например, выражение 1.5em plus 1pt minus 2pt означает растяжимую длину,которая в нормальном состоянии имеет размер 1,5 em, но может растягиватьсяна один пункт и сжиматься на два пункта.
Длина 1.5em minus 2pt может толькосжиматься. При формировании страницы LATEX растягивает или сжимает вертикальные пробелы между абзацами, чтобы все страницы имели одинаковую высоту. Если необходимо растянуть текст на 3 pt, а на страницу попали два пробелас растяжимостью 2pt и 4pt, они будут увеличены соответственно на 1 pt и 2 pt,т. е. каждый пропорционально степени своей растяжимости.Для работы с растяжимыми длинами вполне достаточно двух команд:\fill\stretch{dec-num}Первая из них есть «бесконечно» растяжимая длина.
Она имеет нулевую естественную длину и очень большую степень растяжимости. Примеры использования команды \fill даны в разделах 4.3 и 4.6. Команда \stretch есть длина с заданной степенью растяжимости. Она имеет нулевую естественную длину и степень растяжимости, составляющую долю dec-num от степени растяжимости \fill; dec-num может быть десятичным числом со знаком. Например,dec-num = −0.5 соответствует отрицательной длине, имеющей половину «силы» команды \fill.
Заметим, что простое умножение \fill даже на единицупревращает растяжимую длину в нерастяжимую, поэтому 1\fill есть нулеваядлина.LATEX располагает тремя декларациями для создания новых и изменения существующих командных длин:\newlength{len-cmd}\setlength{len-cmd}{len}\addtolength{len-cmd}{len}2.10. Длина61Первая из них объявляет новую командную длину с нулевой начальной длиной.Важно, чтобы команда len-cmd не была ранее определена. Например, \newlength{\abc} определяет новую командную длину \abc с исходной начальной длиной0. Значение \abc может быть изменено затем в любое время при помощи двухдругих деклараций.Декларация \setlength присваивает len-cmd значение len. Например, после\setlength{\abc}{1.2cm} длина \abc принимает значение 1,2 cm.Декларация \addtolength увеличивает значение len-cmd на len.
Если продолжить упражнение с длиной \abc, то после \addtolength{\abc}{-0.5\abc}она будет равна 0,6 cm.Существуют ещё несколько команд, которые позволяют измерять ширину ивысоту текста, рисунка или другого объекта, по терминологии LATEX’а являющегося боксом. Они описаны в разделе 9.1.1. Если загрузить пакет calc (раздел 7.5),то можно манипулировать с длинами при помощи привычных математическихопераций сложения, вычитания, умножения и деления, используя при этом обычные обозначения +, -, * и /.А пачпорт у тебя есть?А.
Куприн. Белый пудельГлава 3Печатный документВ этой главе мы рассмотрим общую структуру печатного документа. Напомним, что печатным документом, по терминологии LATEX’а, называется результаткомпиляции входного файла. Входной файл содержит исходный текст печатногодокумента, размеченный командами LATEX’а. Термины входной файл и исходный текст часто можно рассматривать как синонимы, но в контексте даннойглавы их лучше трактовать более чётко. Исходный текст может содержаться внескольких файлах, а главный, или корневой, входной файл помимо исходноготекста содержит ещё и преамбулу. На нескольких следующих страницах мы расскажем, как выбрать класс печатного документа, как разбить исходный текстна разделы и какие средства имеет LATEX, чтобы ускорить работу над большимпечатным документом.3.1.ПреамбулаПреамбула начинается с декларации\documentclass[options]{class}[release-date]которая выбирает класс печатного документа.
Она может иметь от одного до трёхаргументов. Обязательный аргумент class задаёт класс документа: декларация\documentclass указывает, что компилятор должен прочитать файл class.cls,который содержит определение тех команд, которые специфичны для каждогокласса. Например, в классах даны определения всех команд секционирования.Однако главное содержание файлов class.cls составляет определение множестваразмеров (параметров настройки), начиная от размеров букв и кончая размерамистраниц. Файлы с расширением cls могут находиться в одном из служебныхкаталогов LATEX’а или в текущем (рабочем) каталоге.Необязательный аргумент options, если он присутствует, модифицирует некоторые параметры настройки печатного документа, принимаемые по умолчанию.Необязательный аргумент может содержать несколько параметров, перечисленных через запятую, то есть в общем случае options есть option 1 , option 2 .
. .option N . Список стандартных классов и их опций приведён в разделе 3.2.Второй необязательный аргумент release-date используется для проверки версии выбранного класса; release-date — это дата выпуска наиболее старой версии3.1. Преамбула63класса, которую можно использовать для компиляции данного входного файла.Дата должна быть записана в формате гггг/мм/дд, где гггг, мм, дд — год, месяци день выпуска соответственно.
Приведём пример декларации \documentclass совсеми тремя аргументами:\documentclass[a4paper]{book}[2001/04/21]Вслед за \documentclass преамбула обычно содержит одну или несколькодеклараций\usepackage[options]{package}[release-date]Эта декларация действует аналогично \documentclass, но только загружает пакет package, а именно считывает файл package.sty.
Например, чтобы подготовить статью на русском языке, рекомендуется загрузить пакеты babel и indentfirst,причём первый с опцией russian:\documentclass[a4paper]{article}\usepackage[russian]{babel}\usepackage{indentfirst}Мы обсудим выбор опций при загрузке классов и пакетов позднее, в соответствующих главах книги,— пока же мы просто демонстрируем, как правильнозаписать несколько самых первых строчек входного файла.Пакеты могут иметь общие опции. Например, в дополнение к babel можнозагрузить пакет varioref, записав:\documentclass[a4paper]{article}\usepackage[russian]{babel}\usepackage[russian]{varioref}\usepackage{indentfirst}Эту запись можно сократить, так как одна декларация \usepackage способназагрузить несколько пакетов:\documentclass[a4paper]{article}\usepackage[russian]{babel,varioref}\usepackage{indentfirst}Наконец, пакеты также видят и используют опции, перечисленные непосредственно в \documentclass (если, конечно, они знают, что с ними делать), такчто можно записать:\documentclass[a4paper,russian]{article}\usepackage{babel,varioref,indentfirst}Если какая-нибудь из опций не была использована ни классом, ни одним из пакетов, компилятор выдаст предупреждение об этом:64Глава 3.
Печатный документLaTeX Warning: Unused global option(s) option 1.Заметим, что вариант\documentclass[a4paper]{article}\usepackage[russian]{babel,varioref,indentfirst}(не верно)не годится, так как пакет indentfirst не знает, как обращаться с опцией russian.Компилятор выдаст сообщение об ошибке и прекратит обработку документа:! LaTeX Error: Unknown option ‘russian’ for package ‘indentfirst’2.?Порядок загрузки пакетов обычно не играет роли. Однако из любого правилабывают исключения. Например, до недавних пор пакет amsmath (глава 8) следовало загружать до пакета babel с опцией russian, иначе возникала ошибка привыборе некоторых шрифтов. В последних выпусках пакета amsmath эта ошибкаустранена.Каждый пакет загружается только раз.
Если один и тот же пакет запрошенповторно, ничего не произойдёт (повторная загрузка не будет выполнена) приусловии, что пакет не затребован с опцией, отличной от использованной в первыйраз. Если такая опция заказана, то LATEX выдаст сообщение об ошибке:! LaTeX Error: Option clash for package package3.?Поскольку пакеты могут загружаться как из входного файла, так и из классаили из других пакетов, причину этой ошибки бывает нелегко распознать.