Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 51
Текст из файла (страница 51)
Значение параметра должно содержать четыре числа, разделённых пробелами; запись bb=a b c d эквивалентна набору ключей bbllx=a,bblly=b, bburx=c, bbury=d (см. ниже). Например, bb=0 0 1in 2in определяетограничивающий бокс с координатами нижнего левого угла (0,0) и с координатами верхнего правого угла — (72,144). Если единица измерения длины вкоординатах не указана, она считается равной bp;bbllx, bblly — абсцисса и ордината нижнего левого угла ограничивающего бокса;bburx, bbury — абсцисса и ордината верхнего правого угла ограничивающегобокса;natwidth, natheight — естественные ширина и высота рисунка; ключи natwidthи natheight удобны для установки координат верхнего правого угла в случае, когда обе координаты нижнего левого угла равны нулю.
Набор ключейnatwidth=w, natheight=h эквивалентен bb=0 0 w h;Правило определения размеров рисунков может быть также задано глобально для всех рисунков сразу (раздел 10.5).510.3. Импортирование графики245hiresbb указывает, что LATEX должен считывать размеры ограничивающего бокса из строки, начинающейся с %%HiResBoundingBox, где обычно записывается второе изображение для воспроизведения на устройстве с высоким разрешением, а не из строки с %%BoundingBox.
Ключ hiresbb=true эквивалентен простому заданию параметра hiresbb без значения. В случае, когда поумолчанию считываются размеры изображения с высоким разрешением (раздел 10.9.2), ключ hiresbb=false позволяет импортировать первый рисунок.Так как \includegraphics автоматически считывает размеры ограничивающегобокса из eps-файла, перечисленные выше ключи обычно не используются при импортировании рисунков формата EPS или PDF, если отсутствует необходимостьв выделении части рисунка, записанного в файле.Следующая группа ключей применяется для обрезания ненужных частей рисунка:clip может принимать значения true или false. При clip=true часть рисунка,выходящая за границы видимой области (см.
ниже), отсекается. Если параметр clip присутствует в списке ключей, но не определён, то предполагается,что clip=true;viewport задаёт видимую часть рисунка. Подобно параметру bb, видимая частьрисунка определяется двумя парами координат нижнего левого и верхнегоправого углов видимой области.
Координаты углов видимой области отсчитываются от левого нижнего угла ограничивающего бокса. Например, viewport=0 0 72 72 объявляет видимой областью квадрат высотой и шириной 1 дюйм,примыкающий к нижнему левому углу воображаемой страницы (т. е. к началукоординат графического файла);trim даёт альтернативный метод для выделения видимой части рисунка. Четыречисла задают смещение границ видимой области последовательно от левой,нижней, правой и верхней границ ограничивающего бокса. Положительныечисла соответствуют смещению границы видимой области внутрь ограничивающего бокса, отрицательные числа расширяют видимую область.
Например, trim=1mm 2mm 3mm 4mm отрезает от рисунка 1 мм слева, 2 мм снизу, 3 ммсправа и 4 мм сверху;draft устанавливает черновой режим импортирования, когда вместо рисункастроится рамка с размерами ограничивающего бокса, а внутри неё печатаетсяназвание импортируемого файла. Ключ draft=true эквивалентен простомуперечислению ключа draft без параметра. В случае, когда черновой режимиспользуется по умолчанию (разделы 10.5 и 10.9.2), ключ draft=false, напротив, позволяет реально импортировать отдельный рисунок.Хотя ключ bb в сочетании с clip может использоваться для обрезания лишнихчастей рисунка, рекомендуется применять viewport или trim.
Мы уже видели,что неаккуратное переопределение размеров ограничивающего бокса приводитк выходу рисунка за его пределы, что обычно нежелательно. Ключ clip делает246Глава 10. Графика и цветфактически ненужным существование *-формы команды \includegraphics, ноона сохранена для совместимости со стандартной версией графического пакетаgraphics (просто к списку ключей команды \includegraphics* автоматически добавляется clip). Для ещё большей совместимости команда \includegraphics сдвумя необязательными аргументами автоматически использует синтаксис, вводимый пакетом graphics, даже если загружена расширенная версия пакета graphicx.Для изменения масштаба и вращения рисунка используется другая группаключей:scale — изменение размера рисунка по заданному масштабу. Ключ scale=2 увеличивает рисунок в два раза относительно его естественного размера (заданного в строке с BoundingBox в eps-файле или ключом bb).
Пропорции рисункасохраняются;width — требуемая ширина рисунка;height | totalheight — требуемая высота или полная высота рисунка; заданиелюбого из параметров width, height, totalheight приводит к масштабированию рисунка по заданному размеру;keepaspectratio — масштабирование рисунка с сохранением пропорций. Рисунок увеличивается настолько, насколько это возможно при сохранении его аспектного (высота/ширина) отношения без выхода изображения за заданныеразмеры видимой области. Ключ keepaspectratio=true эквивалентен заданию ключа keepaspectratio без значения. Аспектное отношение сохраняетсятакже и том случае, когда заданы только требуемая ширина или только требуемая высота;angle — угол поворота рисунка (в градусах); положительное значение задаётвращение против часовой стрелки;origin определяет положение оси вращения рисунка; по умолчанию рисуноквращается относительно точки привязки.
Возможные значения параметраorigin показаны на рис. 10.1 на стр. 234. Например, origin=c устанавливаетось вращения в центр рисунка.Наконец, последняя группа ключей относится к случаю, когда расширениеимени импортируемого графического файла не указано:type — тип рисунка. Все рисунки одного типа обрабатываются драйвером одинаковым образом. Фактически тип — это набор инструкций для преобразования ключей команды \includegraphics в команды программы-драйвера,которая собственно и печатает изображение на выходном устройстве.
Обычно драйвер содержит набор инструкций для нескольких типов графическихфайлов. Например, при выборе драйвера dvips файлы с расширениями eps,ps, pz, eps.Z, ps.Z, eps.gz, ps.gz рассматриваются как векторные рисункитипа EPS, а файлы с расширениями bmp, mps и pcx считаются принадлежащими к типу растровой графики BMP.
Поэтому следует задать ключ type=bmp24710.3. Импортирование графикипри попытке вставить рисунок gif. Драйвер pdftex различает графику трёхтипов: PDF (файлы с расширениями pdf), MPS (mps) и PNG (png);ext определяет расширение имени графического файла, если имя файла gr-fileв обязательном аргументе указано без расширения. Например, если заданключ ext=.eps, то драйвер выходного устройства попытается загрузить файлс именем gr-file.eps. Как правило, используется в совокупности с ключомtype.
Некоторые драйверы, в том числе dvips, игнорирует ключ ext, если неизвестно значение type;read определяет расширение имени файла, в котором записаны размеры ограничивающего бокса в виде строки %%BoundingBox: llx lly urx ury и которыйсчитывается LATEX’ом при компиляции исходного текста печатного документа. Для графического файла с расширением eps размеры считываются изэтого же файла, поэтому применение ключа read=.eps повторяет правило,используемое по умолчанию;command — команда, которую программа-драйвер должна применить к графическому файлу перед его импортированием.
Обычно используется для распаковки «на лету» сжатых (запакованных) рисунков EPS. Например, для файловс расширениями pz, eps.Z, ps.Z, eps.gz, ps.gz драйвер dvips определяетправило, которое эквивалентно команде «‘gunzip -c #1».---\includegraphics[angle=90]{a}---—AПерейдём к примерам. Повернём сначала уже известный нам рисунок на 90◦ ,предполагая, что загружен пакет graphicx:—При загрузке стандартного графического пакета graphics тот же результат достигается более трудоёмким способом:---\rotatebox{90}{\includegraphics{a}}---который также проходит и с расширенным графическим пакетом graphicx. Теперьизменим размер рисунка, сохранив аспектное отношение:---\includegraphics[width=0.4in]{a}---—A—Тот же результат получается посредством\resizebox{0.4in}{!}{\includegraphics{a}}Покажем, как вставить рисунок, не превысив заданных размеров и сохранив аспектное отношение:---\includegraphics[width=0.4in,height=4in,keepaspectratio]{a.eps}---—A—248Глава 10.
Графика и цветВысота рисунка не достигла заказанной величины в 4 дюйма, так как иначеширина рисунка превысила бы заказанное значение в 0,4 дюйма или были бы искажены пропорции рисунка. Повторить этот пример при использовании средствстандартного пакета graphics предоставляем Читателю. Действие ключа trim всочетании с clip иллюстрирует следующий пример:---\includegraphics[trim=-2 -4 6 8,clip]{a}---—A—Наконец, продемонстрируем действие ключа draft:graph/a.pdf---\includegraphics[draft,width=0.5in]{a}---——Тот же результат получается, если графический пакет загружен с опцией draft,только эта опция действует на все команды \includegraphics.
Ключ draft=falseпозволяет реально вставить рисунок даже в этом случае.Примеры с использованием ряда других ключей имеются в разделе 10.3.6, гдеобсуждается вставка растровых рисунков.10.3.5.Импорт запакованных рисунковРазмер рисунков EPS (или PostScript), как правило, бывает неоправданно большим. При сжатии размер файлов часто удаётся уменьшить раз в 10.
Многие реализации LATEX’а могут производить распаковку сжатых рисунков что называется«на лету». Можно воспользоваться такой возможностью и постоянно хранить рисунки в сжатом виде.Покажем, как это сделать, на примере графического файла с именем tiger.ps,который распространяется вместе с программой Ghostscript (рисунок на стр. 268).Найдите в файле tiger.ps строку, содержащую размер рисунка. Для этого откройте файл tiger.ps в любом текстовом редакторе (например, в блокноте notepad) и найдите строку, начинающуюся с %%BoundingBox. Она располагается в первых строках файла.
Скопируйте эту строку во вновь созданный файл с именемtiger.ps.bb. Должно получиться нечто вроде%%BoundingBox: 0 0 567 738Разумеется, числа, которые собственно задают размеры, индивидуальны длякаждого рисунка. Теперь можно запаковать файл tiger.ps программой gzip:gzip tiger.psОн создаст запакованный рисунок tiger.ps.gz и удалит tiger.ps. Обратнуюоперацию распаковки выполняет программа gunzip.10.3. Импортирование графики249Чтобы вставить запакованный рисунок в документ LATEX, достаточно указать имя запакованного файла в аргументе команды \includegraphics, причёмлучше всего опустить расширение имени:\includegraphics{tiger}Как мы объяснили в разделе 10.3.3, компилятор определит, графический файлс каким расширением следует использовать.