Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 57
Текст из файла (страница 57)
Изменяется с помощью \renewcommand.\tablename — ключевое слово в подписи к таблице. Изменяется с помощью \renewcommand.11.2.Подписи к рисункам и таблицамФормат подписей к плавающим объектам определяют классы печатных документов, причём делают это очень жёстко: изменить этот формат, не изменив определение команды \caption, почти невозможно. Например, стандартные классы11.3. Приёмы работы с плавающими объектами273после номера рисунка и таблицы ставят двоеточие, тогда как в литературе нарусском языке принято ставить точку.
Выход из такого рода затруднений открывает пакет caption и его более новая версия caption2. Оба пакета написаныХаральдом Зоммерфельдом (Sommerfeldt, Harald). Чтобы внести какое-нибудьизменение в формат подписей, достаточно всего лишь загрузить один из этихпакетов с соответствующей опцией. Например, при подготовке этой книги мызагружаем пакет caption2 с опциями centerlast и small:\usepackage[centerlast,small]{caption2}Первая из них приводит к тому, что последняя строчка в подписях центрируется,а наименование второй опции происходит от декларации переключения размерашрифта и означает, что подписи печатаются размером \small. Чтобы печататьподписи крупным шрифтом, следовало бы использовать опции large или Largeсоответственно декларациям \large и \Large.
Чтобы подписи были напечатаны полужирным (\bfseries) или машинописным (\ttfamily) шрифтом, следуетиспользовать опции bf или tt. Надеемся, что логика подбора опций Читателюпонятна. Наименования других опций, достойных упоминания, совпадают с именами процедур center, flushleft, flushright (глава 5).
Чтобы заменить злополучное двоеточие после номеров рисунков и таблиц в подписях, достаточно послезагрузки пакета caption2 переопределить команду\captionlabeldelim(caption2)Например, после\renewcommand{\captionlabeldelim}{.}двоеточие будет заменено точкой.Пакет caption2 имеет ещё много других возможностей для настройки формата подписей, однако он не входит в стандартный набор пакетов, распространяемых группой разработчиков формата LATEX 2ε , поэтому мы ограничимся толькоуже сделанными пояснениями. Нестандартных пакетов слишком много, чтобымы имели возможность описать хотя бы их десятую часть.
Тем не менее в следующем разделе мы упомянем ещё ряд таких пакетов1 .11.3.Приёмы работы с плавающими объектамиЗагрузив дополнительные пакеты, можно изменить способ размещения плавающих объектов с помощью процедур figure и table либо же добавить иныепроцедуры для размещения рисунков и таблиц.1Метод установки дополнительных пакетов описан в разделе 3.3.7.27411.3.1.Глава 11. Плавающие объектыПакет afterpageВ редких случаях, когда механизм позиционирования плавающих объектов бывает перегружен большим количеством рисунков и таблиц, ждущих своей очереди,приходится прибегать к помощи команды \clearpage.
Мы уже упоминали, чтоона принудительно печатает все плавающие объекты, пренебрегая некоторымиограничениями на их размещение. Недостаток такого метода заключается в том,что простое применение команды \clearpage может приводить к образованиюполузаполненных страниц. Удобное решение даёт команда\afterpage{text}(afterpage)реализованная в пакете afterpage Дэвида Карлайла (Carlisle, David). Она исполняет команды, находящиеся в её аргументе text после завершения текущейстраницы.
Следовательно, \afterpage{\clearpage} принудительно печатает всеплавающие объекты, в то время как текущая страница до конца будет заполнена текстом. Другой ценный пример применения команды \afterpage имеется вразделе 12.5. Пакет afterpage входит в число стандартных пакетов, т. е. имеетсяв любой минимальной реализации LATEX’а.11.3.2.Пакет endfloatРедакции некоторых журналов требуют, чтобы в представленных к публикациистатьях рисунки и таблицы были сгруппированы в конце документа. В подобных случаях рисункам и таблицам обычно должен предшествовать их список.Если редакция не подкрепляет свои требования специально разработанным классом документа, можно использовать пакет endfloat Джеймса Даррела (DarrelMcCauley, James) и Джефа Голдберга (Goldberg, Jeff).Он размещает рисунки и таблицы изолированно в конце статьи в отдельныйраздел, озаглавленный соответственно Figures (Рисунки) и Tables (Таблицы).
Вначале этих разделов автоматически печатается список иллюстраций и таблиц.Печать списков можно отключить, поместив в преамбулу документа декларации\nofiglist и \notablist соответственно.По месту исходного расположения процедур figure и table в текст документа вставляются примечания вида «[Figure 1 about here]».
Эти примечания можноотключить, поместив в преамбулу декларацию \nomarkersintext. Текст примечания можно изменить, переопределив команды \figureplace и \tableplaceпри помощи \renewcommand. Например, сделать метки на русском языке можнотак:\renewcommand{\figureplace}{\figurename~\thefigure\ здесь}\renewcommand{\tableplace}{\tablename~\thetable\ здесь}27511.3. Приёмы работы с плавающими объектамиа) Лайб) ЙонРис. 11.4. Семейка львов11.3.3.Пакет subfigureПакет subfigure Стивена Кокрена (Cochran, Steven) упрощает размещение нескольких рисунков внутри одного плавающего объекта, причём помимо общей подписикаждый рисунок может иметь свою собственную подпись.
Пакет вводит команду\subfigure[subhead]{subfigure}(subfigure)где обязательный аргумент subfigure предназначен для рисунка; если рисунокимпортируется командой \includegraphics, то subfigure должен содержать этукоманду. Если задан необязательный аргумент [subhead], то рисунок будет иметьсвой собственный номер, даже если [subhead] пуст, т. е. имеются только квадратные скобки []. По умолчанию этот номер печатается в виде (a), но это правило можно изменить, переопределив команду \thesubfigure, которая печатаетзначение счётчика subfigure. Значение счётчика увеличивается каждой командой \subfigure независимо от наличия необязательного аргумента.
Определение\thesubfigure, действующее по умолчанию, эквивалентно (\alph{subfigure}).С помощью команды \subfigure портреты ближайших родственников тигрят состраницы 268 можно вставить следующим образом:\begin{figure}\center\renewcommand{\thesubfigure}{\asbuk{subfigure})}\subfigure[Лай]{\includegraphics[width=0.47\textwidth]{lion2}}\hfill\subfigure[Йон]{\reflectbox{\includegraphics[width=0.47\textwidth]{lion2}}}\caption{Семейка львов}\label{fig:4a}\end{figure}276Глава 11.
Плавающие объектыЗдесь команда \thesubfigure изменена так, чтобы нумерация внутренних рисунков более соответствовала принятой в отечественной литературе. Результатпоказан на рис. 11.4.Размещение внутренних рисунков внутри плавающего объекта регулируетсякомандами\subfigtopskip\subfigcapskip(subfigure)Первая из них хранит величину вертикального пробела, который вставляетсясверху, между и снизу внутренних рисунков. Первоначально величина этого пробела равна 10pt. Ещё один вертикальный пробел размером \subfigcapskip добавляется перед общей подписью.11.4.Обтекание рисунковСтандартные классы печатных документов не содержат средств размещения небольших рисунков и таблиц так, чтобы они обтекались окружающим их текстом (пример такого обтекания даёт рис.
11.5). Однако существует несколько пакетов, которые позволяютэто делать. Они не входят в набор пакетов, поставляемых группой разработчиков формата LATEX, поэтомумы только упомянем некоторые из них, не углубляясьв детали. Эти и многие другие пакеты можно найти насерверах CTAN, адреса которых приведены на стр. 8,или на компакт-диске, прилагаемом к части тиражаРис. 11.5. Мать Лая и Йона нашей книги.11.4.1.Пакет floatfltПакет floatflt Матса Далгрена (Dahlgren, Mats) вводит две процедуры\begin{floatingfigure}[hpos]{width} . .
. \end{floatingfigure}\begin{floatingtable}[hpos]{width} . . . \end{floatingtable}(floatflt)для размещения соответственно небольших рисунков и небольших таблиц заданной ширины width. Эти процедуры могут иметь необязательный аргумент hpos,управляющий размещением рисунка или таблицы.
Рис. 11.5 во входном файлеописан следующим образом:\begin{floatingfigure}[l]{4.4cm} % Вставляем рисунок\includegraphics*[width=4.0cm]{lion1}\caption{Мать Лая и Йона}\label{fig:5}\end{floatingfigure}11.4. Обтекание рисунков277В зависимости от чётности номера страницы, класса печатного документа и опций, с которыми загружен пакет floatflt, обтекаемые рисунки и таблицы могутрасполагаться с правой или левой стороны страницы.
В нашем случае рисунокрасполагается по левому краю страницы вне зависимости от её номера, посколькупроцедура floatingfigure вызвана с опцией l. Все возможные значения параметра hpos перечислены ниже:l — разместить плавающий объект слева от абзаца;r — разместить плавающий объект справа от абзаца;p — разместить плавающий объект на внешнем крае страницы (справа для нечётной страницы, слева для чётной страницы).Если необязательный аргумент hpos пропущен, способ позиционирования объекта определяется значением необязательного аргумента defaultpos, с которомзагружен пакет floatflt:rflt — разместить плавающие объекты справа;lflt — разместить плавающие объекты слева.По умолчанию, если и пакет, и процедура вызваны без необязательных аргументов, плавающий объект будет размещен по внешнему краю страницы.Внутри процедур floatingfigure и floatingtable можно использовать команду \caption, которая создаёт подписи к рисункам.