Как вставить eps в latex
theors.irkutsk
вторник, 11 октября 2011 г.
Рисунки в LaTeX документе
Вставка рисунков
Поговорим о том как и в каком формате вставлять рисунке в LaTeX документы.
Форматы рисунков
Самым часто используемым в LaTeX документах графическим форматом является формат EPS (Encapsulated PostScript). Второй по популярности и распространённости — это формат PDF (Portable Document Format). Традиционно формат EPS используют вместе с движком latex, тогда как формат PDF используют с движком pdflatex.
О движках
Первым появился движок latex, потом — движок pdflatex. Стоит отличать формат LaTeX и движок latex. Первый — это формальное описание команд, окружений, коллекции стандартных классов и приёмов для набора документов. Второе — обычная программа, используемая для вёрстки документа, набранного в формате LaTeX, в файл DVI (DeVice Independent). Документ в формате DVI можно преобразовать далее в PS или PDF файл и просмотреть его на экране монитора или распечатать. Обычно цепочка действий такова:
ps2pdf → PDF файл из PS,
Позже появилась программа, которая создавала сразу же PDF файл из LaTeX документа — движок pdflatex.
Кроме формата LaTeX есть обычный формат TeX (plain tex) и движок для него — tex, а движок для вёрстки документа в PDF формат — pdftex.
Вот известные движки:
latex — традиционный движок, верстает документ в DVI формат;
pdflatex — этот движок, как следует из названия, верстает документ в формат PDF, в остальном — ничем не отличается от latex;
xelatex — один из новых движок, верстает документ в PDF формат, поддерживает напрямую кодировку юникод, шрифты в форматах TTF, OTF и многое другое;
lualatex — новый движок, также верстает документ в PDF формат, но имеет встроенный язык программирования Lua, поддерживает напрямую кодировку юникод, шрифты в формате OTF и TTF;
dvilualatex — вариант движка lualatex, но в результате вёрстки выдаёт документ в формате DVI.
Пара dvilualatex и lualatex похожа на пару latex и pdflatex в том, что первая программа в паре верстает документ в DVI, вторая — в PDF.
Формат ConTeXt
Кроме форматов LaTeX и (plain) TeX также распространён формат ConTeXt. Этот формат может работать с движками pdftex, xetex, так называемый формат MkII, и с движком luatex — формат MkIV. ConTeXt позволяет использовать рисунки в форматах PDF, EPS, MPS, SVG. Но об этом не в этой заметке.
Как вставлять рисунки в документ
В зависимости от используемого движка в документе можно использовать либо рисунки в формате EPS, либо в формате PDF. Именно, если движок верстает документ в DVI, тогда следует использовать только формат EPS (см. детали ниже), если движок верстает документ в PDF — следует использовать рисунки в формате PDF.
Стандартный способ вставки рисунков в документ предполагает использование пакета graphicx и команды \includegraphics. Пример ниже.
Можно использовать любой другой стандартный класс документа, см. документацию.
Обязателен при вставки рисунков в документ.
Эта команда вставит рисунок в данном месте документа. Здесь image1 — это первичное имя файла, например для рисунка в формате EPS полное имя файла — image1.eps, для рисунка в формате PDF — image1.pdf.
«Детские» вопросы
«А как же движок узнает полное имя файла?»
Ответ очень простой — никак, он не делает никаких предположений относительно полного имени файла, он просто пытается вставить файл с указанным названием. Всё дело в пакете graphicx, он достаточно «сообразительный», он «знает», что для движка latex нужен файл image1.eps, а для движка pdflatex — image1.pdf. Если имеются два файла — image1.eps и image1.pdf, то движок latex будет использовать файла image1.eps, а движок pdflatex — файл image1.pdf!
«Ну и в чём преимущество, выгода, использовать только первичное имя файла?»
А в том, что можно сверстать один и тот же документ, ничего не изменив в нём как в DVI/PS, так и в PDF формат, воспользовавшись либо движком latex, либо движком pdflatex. НИЧЕГО НЕ ИЗМЕНИВ! Кстати, часто встречаются ситуации, когда на разных этапах или разным людям нужны документы в разных форматах. Это — решение для таких ситуаций.
Небольшое техническое отступление и исследование
«Всё течёт, всё изменяется» и в описанной схеме появляются интересные подробности. Первое о чём следует сказать, это что движок xelatex позволяет вставлять рисунки не только в формате PDF, но и EPS! Дело в том, что в действительности движок xelatex не верстает документ непосредственно в PDF формат, а создаёт промежуточный файл в формате XDV (eXtended DeVice independent), который сразу же преобразуется с помощью программы xdvipdfmx в PDF документ. На стадии работы программы xdvipdfmx рисунок EPS автоматически преобразуется в формат PDF. Но происходит это незаметно для пользователя.
Может быть к неудовольствию части пользователей LaTeX, такого преобразования над EPS файлами движки pdflatex и lualatex не делают, поэтому напрямую вставлять рисунки в формате EPS они не могут. Пользователю следует самостоятельно преобразовать EPS рисунки в PDF формат. Для этого есть небольшая программа epstopdf. Пример использования программы ниже.
После чего появится файл image1.pdf.
Для того, чтобы упростить переход пользователей к движку pdflatex и сделать совместное использование движков latex и pdflatex более простым был разработан пакет epstopdf (не путать с программой epstopdf), который позволяет на лету преобразовать рисунок в EPS формате в PDF и вставить его в документ. Типичный пример документа и ситуации его использования описаны ниже.
Допустим, что мы работаем над документом в формате LaTeX, вставляем рисунки в формате EPS, так что у нас все рисунки в этом формате. Всё работает нормально, движок latex верстает документ в DVI, а программа dvips выдаёт из DVI файла — PS документ, который мы просматриваем на экране и выводим на печать. Если вдруг потребуется перевести документ в PDF формат, то преобразование PS в PDF выполнит программа ps2pdf. Но что делать, если потребуется сверстать документ с помощью pdflatex? Что делать с рисунками? О варианте с преобразованием EPS в PDF при помощи программы epstopdf говорилось выше, а если файлов много? Воспользуемся пакетом epstopdf как в примере. Что же произойдёт? При вёрстке движком pdflatex пакет на лету преобразует файлы EPS в PDF (с помощью той же программы epstopdf), после чего PDF рисунки будут вставлены в документ.
Ранее пакет при преобразовании из файла image1.eps создавал файл image1.pdf, независимо от того, был файл с таким именем или нет. Сейчас пакет для файла image1.eps создаёт image1-eps-converted-to.pdf.
Поддержка пакета epstopdf разными дистрибутивами
Чтобы определить степень поддержки разными дистрибутивами TeX пакета epstopdf было проведено тестирование на 4 документах. В тестировании участвовали:
MiKTeX 2.9 (обновлённый по состоянию на 06-10-2011), установленный в Windows;
TeX Live 2011 (обновлённый по состоянию на 06-10-2011), установленный в ОС Linux и в Windows;
TeX Live 2009, установленный из репозиториев в дистрибутиве Ubuntu; версия TL2009 появилась в Ubuntu начиная с Lucid (10.04) и доступна в текущей ветке Natty (11.04);
TeX Live 2007, установленный из репозиториев в дистрибутиве Fedora 15.
TeX Live 2011 проверялся тремя способами: непосредственно в Linux, непосредственно в Windows и подключением ресурса с Linux машины с доступными win32 программами (samba share и net use).
Inserting Images
Images are essential elements in most of the scientific documents. L a T e X provides several options to handle images and make them look exactly what you need. In this article we explain how to include images in the most common formats, how to shrink, enlarge and rotate them, and how to reference them within your document.
Contents
Introduction
Below is an example on how to import a picture.
Latex can not manage images by itself, so we need to use the graphicx package. To use it, we include the following line in the preamble: \usepackage
The command \graphicspath < <./images/>> tells L a T e X that the images are kept in a folder named images under the directory of the main document.
Note: The file extension is allowed to be included, but it’s a good idea to omit it. If the file extension is omitted it will prompt LaTeX to search for all the supported formats. For more details see the section about generating high resolution and low resolution images.
The folder path to images
When working on a document which includes several images it’s possible to keep those images in one or more separated folders so that your project is more organised.
The command \graphicspath <
as in the introduction.
The path can also be absolute, if the exact location of the file on your system is specified. For example, if you were working on a local LaTeX installation on your own computer:
Notice that this command requires a trailing slash / and that the path is in between double braces.
Changing the image size and rotating the picture
If we want to further specify how L a T e X should include our image in the document (length, height, etc), we can pass those settings in the following format:
The command \includegraphics[scale=1.5]
You can also scale the image to a some specific width and height.
As you probably have guessed, the parameters inside the brackets [width=3cm, height=4cm] define the width and the height of the picture. You can use different units for these parameters. If only the width parameter is passed, the height will be scaled to keep the aspect ratio.
The length units can also be relative to some elements in document. If you want, for instance, make a picture the same width as the text:
There is another common option when including a picture within your document, to rotate it. This can easily accomplished in L a T e X :
The parameter angle=45 rotates the picture 45 degrees counter-clockwise. To rotate the picture clockwise use a negative number.
Positioning
In the previous section was explained how to include images in your document, but the combination of text and images may not look as we expected. To change this we need to introduce a new environment.
The figure environment is used to display pictures as floating elements within the document. This means you include the picture inside the figure environment and you don’t have to worry about it’s placement, L a T e X will position it in a such way that it fits the flow of the document.
Parameter | Position |
---|---|
h | Place the float here, i.e., approximately at the same point it occurs in the source text (however, not exactly at the spot) |
t | Position at the top of the page. |
b | Position at the bottom of the page. |
p | Put on a special page for floats only. |
! | Override internal parameters LaTeX uses for determining «good» float positions. |
H | Places the float at precisely the location in the L a T e X code. Requires the float package, though may cause problems occasionally. This is somewhat equivalent to h!. |
In the next example you can see a picture at the t op of the document, despite being declared below the text.
The additional command \centering will centre the picture. The default alignment is left.
It’s also possible to wrap the text around a figure. When the document contains small pictures this makes it look better.
For the commands in the example to work, you have to import the package wrapfig. Add to the preamble the line \usepackage
Now you can define the wrapfigure environment by means of the commands \begin
For a more complete article about image positioning see Positioning images and tables
Captioning, labelling and referencing
Captioning images to add a brief description and labelling them for further reference are two important tools when working on a lengthy text.
Captions
Let’s start with a caption example:
It’s really easy, just add the \caption
Captions can also be placed right after the figures. The sidecap package uses similar code to the one in the previous example to accomplish this.
There are two new commands
You can do a more advanced management of the caption formatting. Check the further reading section for references.
Labels and cross-references
Figures, just as many other elements in a L a T e X document (equations, tables, plots, etc) can be referenced within the text. This is very easy, just add a \label to the figure or SCfigure environment, then later use that label to refer the picture.
There are three commands that generate cross-references in this example.
\label
The \caption is mandatory to reference a figure.
Another great characteristic in a L a T e X document is the ability to automatically generate a list of figures. This is straightforward.
This command only works on captioned figures, since it uses the caption in the table. The example above lists the images in this article.
Important Note: When using cross-references your L a T e X project must be compiled twice, otherwise the references, the page references and the table of figures won’t work—Overleaf takes care of that for you.
Generating high-res and low-res images
So far while specifying the image file name in the \includegraphics command we have omitted file extensions. However, that is not necessary, though it is often useful. If the file extension is omitted, LaTeX will search for any supported image format in that directory, and will search for various extensions in the default order (which can be modified).
This is accomplished by
There are some important things to have in mind though:
Reference guide
L a T e X units and legths
Abbreviation | Definition |
---|---|
pt | A point, is the default length unit. About 0.3515mm |
mm | a millimetre |
cm | a centimetre |
in | an inch |
ex | the height of an x in the current font |
em | the width of an m in the current font |
\columnsep | distance between columns |
\columnwidth | width of the column |
\linewidth | width of the line in the current environment |
\paperwidth | width of the page |
\paperheight | height of the page |
\textwidth | width of the text |
\textheight | height of the text |
\unitlength | units of length in the picture environment. |
About image types in L a T e X
Записки дебианщика
В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.
Иллюстрации и рисунки в LaTeX
Здесь приводятся базовые идеи и примеры, которые вам нужно освоить для вставки изображений и рисунков в LaTeX. Мы рассмотрим вставку нескольких рисунков в ряд и оформление групп рисунков, для чего будем пользоваться окружением minipage. Для набора дипломов по техническим специальностям приведённых сведений должно хватить.
После этого копируем полученный eps-файл в каталог, указанный в \graphicspath <
Теперь надо ссылаться на рисунок так: как показано на Рис.
Полезно запомнить, что ЛаТеХ рассматривает рисунок как одну большую букву. Поэтому в некоторых сложных случаях полезно применять грубую силу, т.е. например можно сделать интервал от подписи командой \vspace <1cm>— не очень изящно, зато действенно.
Здесь ширина рисунка указана 1 \linewidth то есть во всю строку, но строка теперь ширины 0.49 \linewidth так что рисунок будет во весь фрейм размера в половину строки. Кроме того, после каждого рисунка идётразрыв строки и буква, обозначающая рисунок. Нужно помнить, что ссылка и подпись под рисунками одна.
Результат, как всегда, логичен и приятен:
Команда \hfill позволяет раздвинуть рисунки к краям страницы, как бы заполняя между ними пространство пустотой. Из приведённых примеров должно быть понятно, как вставлять несколько рисунков в строку, теперь немного усложним задачу и попробуем вставить два рисунка в строчку и два в столбец.
То есть теперь мы не падаем в обморок от просьбы вставить 12 рисунков по 3 в ряд. Все идеи те же самые, хотя едва ли в дипломе вам придётся столкнуться с большим количеством хитро расположенных рисунков.
Для этого случая код следующий:
Как видно, всё достаточно легко и просто. Не забываем проставлять нужные размеры minipage и рисунков, периодически посматривая на результат в kdvi и корректируя код по ходу дела.
Три рисунка с индивидуальными ссылками
Вариация на тему предыдущего случая, но через subfigure. При этом можно ссылаться на под-рисунки отдельными ссылками, например «см. Рис
\ref< fig:actuatorscouplingSheme _ decoupledcase > будет отображено как «Рис 2(а)». Добавляем в преамбулу:
\usepackage < subfigure >
и далее вставляем этот код:
Так что теперь в тексте можем ссылаться отдельно на рисунок 2а, 2b или 2c с помощью команды \ref <>. На самом деле, subfigures умеют намного больше.
Три рисунка разной высоты
Иногда случается такая партизанская засада, как разномасштабные рисунки, которые под один размер подгонять нехорошо по смыслу, и нужно сделать так, чтобы подписи к ним были в одну строчку. Иначе получается некрасиво: буквы под рисунками в разных положениях. Я не претендую на истину в последней инстанции, но вот выход, который я нашёл для себя:
Как это выглядит в документе:
Я немного забегаю вперёд и использую таблицы, которые будут описываться в другом разделе, но думаю, что человек с высшим образованием без труда переведёт слово tabular.
После этого у нас появляется замечательная возможность продемонстрировать свою невероятную оформительскую крутизну, используя окружение \begin < wrapfigure >. \end < wrapfigure >, когда нужно сделать обтекание рисунка:
Вставка рисунков в документ LaTeX
Мы расскажем о том:
Пакеты и настройка
Для вставки рисунков понадобится пакет graphicx. Его, как и другие пакеты LaTeX, необходимо указать в преамбуле документа:
Значение аргумента argument может быть следующим:
Теперь укажем путь к графическим файлам. Пусть они помещаются в подкаталог pictures текущего каталога
(текущим считается тот каталог, где находится наш файл *.tex).
Кроме того, в преамбуле можно указать список расширений, которые будут трактоваться как графические
Теперь, вставляя в документ файл одного из указанных выше типов, его расширение указывать не обязательно.
Итак, для вставки рисунков к преамбуле документа нужно добавить:
Команда вставки графического файла
В текст документа графический файл вставляется командой \includegraphics :
Например, рисунок chick.png вставляется так:
Команда \includegraphics может иметь список аргументов
Вот некоторые из них
Параметр | Описание |
---|---|
width=xx | Задаёт ширину рисунка равной xx |
heigth=xx | Задаёт высоту рисунка равной xx (если задана только ширина или только высота, то рисунок масштабируется пропорционально) |
scale=xx | Умножает размеры изображения на коэффициент xx |
angle=xx | Поворачивает изображение на xx градусов по часовой стрелке |
переворачивает рисунок и уменьшает его размер вдвое.
Окружение figure
Получаем нечто вроде:
Добавление буквы p позволяет разместить картинку на отдельной странице:
Обратите внимание, что к подписи под рисунком добавлено «Рис. 1» (или какой-то другой номер). Автоматическую нумерацию рисунков можно отключить, используя пакет caption и «*»:
(не забудьте \usepackage
Пример
Читайте также
Комментарии
Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.