Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 50
Текст из файла (страница 50)
Изображение сосредоточено на белом фоне ограничивающего боксаsetfont(A) showshowpage% сделать его текущим шрифтом% нарисовать букву A% закончить страницуЧетыре числа во второй строке этого файла задают соответственно ординату,абсциссу левого нижнего угла и ординату, абсциссу правого верхнего угла бокса,внутри которого целиком помещаются все составные части изображения, записанного в файле. Координаты в eps-файле измеряются в «больших пунктах» bp(раздел 2.10) и отсчитываются от начала координат, которое привязано к воображаемому листу бумаги так, как показано на рис.
10.2. В файле a.eps ограничивающий бокс имеет левый нижний угол с координатами (100, 100) и верхнийправый угол с координатами (136, 136). Таким образом, рисунок имеет ширину ивысоту в 136−100 = 36bp, или 1,27см. Команда \includegraphics{a.eps} выделяет для размещения рисунка, записанного в a.eps, прямоугольник с размерами36 × 36 bp, причём точка (100,100) служит точкой привязки.Файл формата PostScript в отличие от EPS, вообще говоря, содержит изображение сразу нескольких страниц, тогда как LATEX может импортировать по одному рисунку за раз.
Программа GSview позволяет преобразовывать ps-файлы внабор eps-файлов. Если известно, что ps-файл содержит только один рисунок, топреобразование в EPS формат в простых случаях можно выполнить, что называется, вручную, просто добавив строку с BoundingBox в заголовок файла. Частофайлы с расширением ps на самом деле являются рисунками в формате EPS.Иногда один eps-файл может содержать два изображения: для воспроизведения с обычным и с высоким разрешением. В этом случае расположение второгоизображения описывается в строке, начинающейся с %%HiResBoundingBox.
Выборнужного изображения производится ключом hiresbb, который описан в разделе10.3.4.24210.3.3.Глава 10. Графика и цветДелаем PDFПочти все графические редакторы умеют сохранять рисунки в формате EPS, нони одна известная нам графическая программа не позволяет сделать то же самоев формате PDF. Однако совсем нетрудно конвертировать рисунок EPS в форматPDF при помощи программы epstopdf.
Например,epstopdf a.epsиз a.eps сделает рисунок a.pdf в формате PDF. Программа epstopdf используетисполняемые модули программы Ghostscript, которая распространяется бесплатно, но отдельно от системы LATEX. Заметим, что использование коммерческойпрограммы Adobe Distiller для подобной конвертации нецелесообразно, так какAdobe Distiller создаёт pdf-файл с размером страницы, который не соответствуетразмерам рисунка, указанным в строке с BoundingBox. Кстати, BoundingBox вpdf-файле имеет другое название, а именно MediaBox, однако для дальнейшегоэто отличие не существенно, поскольку оно автоматически учитывается драйвером pdftex.Чтобы вставить конвертированный рисунок a.pdf, нужно в примере на странице 236 в аргументе команды \includegraphics вместо a.eps указать a.pdf.После такой замены документ можно компилировать с помощью компилятораpdflatex.
Однако перед компиляцией с помощью latex тогда придётся вновьредактировать исходный текст, чтобы сменить расширение имени импортируемого файла. К счастью, есть универсальный способ, как сделать исходный текстодинаково пригодным для компиляции любым компилятором. Нужно удалитьрасширение имени импортируемого файла вместе с точкой!---\includegraphics{a}---—A—Компилятор сам выберет наиболее подходящее расширение. Правила, которымион при этом руководствуется, описаны в разделе 10.6.Далее везде, где не указано расширение имени импортируемого графическогофайла, предполагается, что выбор подходящего формата предоставлен компилятору.10.3.4.Импорт векторных рисунковЕсли рисунок записан в файле gr-file, то его можно вставить в печатный документ с помощью одной из команд\includegraphics[llx,lly][urx,ury]{gr-file}\includegraphics*[llx,lly][urx,ury]{gr-file}(graphics)Расширение имени вставляемого файла gr-file указывать необязательно.
Далеемы так и будем делать в большинстве случаев, предполагая, что любой графический файл имеется в двух форматах, EPS и PDF. Первый из них будет выбран24310.3. Импортирование графикикомпилятором latex, второй — компилятором pdflatex. Если необязательныйаргумент в команде \includegraphics пропущен, рисунок будет вставлен с егоестественными размерами, т. е. размерами ограничивающего бокса. Чтобы пояснить это, повторим пример со стр.
236, обозначив ограничивающий бокс рамкой:---\includegraphics{a}---—A—Опции [llx,lly], [urx,ury] позволяют изменить размер бокса, который LATEX выделяет для размещения рисунка. Если присутствуют обе опции, то они задаютсоответственно нижний левый угол и верхний правый угол ограничивающегобокса в системе координат eps-файла в единицах длины, принятых в LATEX’е(раздел 2.10). По умолчанию, когда единицы измерения длины не указаны, таковыми считаются большие пункты bp4 . Поэтому [1in,1in] эквивалентно [72,72].Если указана только одна опция, то она задаёт координаты верхнего правого угла[urx,ury], а координаты нижнего левого угла принимаются за нуль.
Точкой привязки рисунка служит нижний левый угол ограничивающего бокса. Посмотрим,что произойдёт, если нижний левый угол ограничивающего бокса в предыдущемпримере сдвинуть на четверть дюйма вверх и вправо:---\includegraphics[118,118][136,136]{a}---—A———Место, выделенноеEX’ом под рисунок, для наглядности мы вновь обвелирамкой, поэтому хорошо видно, что рисунок «наехал» на окружающие его тире. Это произошло потому, что заданный нами ограничивающий бокс оказалсяменьше рисунка.
Лишнюю часть можно обрезать, использовав *-форму команды\includegraphics:LAT---\includegraphics*[118,118][136,136]{a}---AЕсли Читатель попробует испытать приведённые примеры с вырезанием части рисунка, он обнаружит, что latex и pdflatex дают разные результаты. Делов том, что при преобразовании рисунка EPS в рисунок PDF изменяются координаты рисунка в системе координат графического файла. Так, если в файлеa.eps изображение занимало квадрат с координатами углов (100,100), (136,136),как показано на рис. 10.2, то в файле a.pdf, полученном с помощью программыepstopdf из a.eps, то же изображение будет помещено в квадрат с углами (0,0),(36,36). Результат не изменился бы, если исходное изображение имело эти коорТакое же «правило по умолчанию» действует для любых других команд из графическихпакетов коллекции graphics.
В частности, можно не указывать размерность длины в аргументахкоманд \rotatebox и \resizebox, которые обсуждались в разделах 10.1 и 10.2.3. Однако этоправило на самом деле является исключением, поскольку не действует для команд базовогоформата LATEX.4244Глава 10. Графика и цветдинаты, то есть было бы прижато к левому нижнему углу воображаемой страницы. Ещё одно различие проявляется при использовании \includegraphics сдвумя необязательными аргументами.
В то время, когда мы писали эту главу, привыборе драйвера pdftex в последнем примере в рамку попадал нижний левыйквадрант рисунка (что, по-видимому, является ошибкой), тогда как при выборе драйвера dvips — верхний правый. Далее мы покажем, что вырезать частьизображения можно с помощью ключей trim или viewport, причём этот способвсегда даёт одинаковый результат для рисунков как EPS, так и PDF.При вставке графического изображение в формате, отличном от EPS илиPDF, использование аргументов [llx,lly] и [urx,ury] фактически становится обязательным5 , так как иначе компилятор не может получить информацию о размере изображения. Однако не будем отвлекаться и продолжим разговор о рисункахна примере формата EPS, отложив обсуждение других форматов и других драйверов до раздела 10.3.6.Расширенный графический пакет graphicx вводит более гибкий синтаксис команды \includegraphics:\includegraphics[keyval-list]{gr-file}\includegraphics*[keyval-list]{gr-file}(graphicx)Обязательный аргумент gr-file должен содержать название импортируемого файла.
Необязательный аргумент keyval-list может содержать список ключей, перечисленных через запятую. Сами ключи записываются в виде равенств, в левойчасти которых стоит параметр, а в правой — его значение. Одного и того жерезультата можно добиться, используя разный набор ключей.Начнём с ключей, которые задают размер ограничивающего бокса:bb — параметр, используемый для задания всех координат углов ограничивающего бокса.