Вставка рисунков
Поговорим о том как и в каком формате вставлять рисунке в LaTeX документы.
Форматы рисунков
Самым часто используемым в LaTeX документах графическим форматом является формат EPS (Encapsulated PostScript). Второй по популярности и распространённости — это формат PDF (Portable Document Format). Традиционно формат EPS используют вместе с движком latex, тогда как формат PDF используют с движком pdflatex.
О движках
Первым появился движок latex, потом — движок pdflatex. Стоит отличать формат LaTeX и движок latex. Первый — это формальное описание команд, окружений, коллекции стандартных классов и приёмов для набора документов. Второе — обычная программа, используемая для вёрстки документа, набранного в формате LaTeX, в файл DVI (DeVice Independent). Документ в формате DVI можно преобразовать далее в PS или PDF файл и просмотреть его на экране монитора или распечатать. Обычно цепочка действий такова:
-
latex → DVI файл,
-
dvips → PS файл,
-
ps2pdf → PDF файл из PS,
-
-
dvipdfm → PDF файл,
Позже появилась программа, которая создавала сразу же 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. Пример ниже.
\documentclass{article} %%% <1>
\usepackage{graphicx} %%% <2>
\begin{document}
\includegraphics{image1} %%% <3>
\end{document}
-
Можно использовать любой другой стандартный класс документа, см. документацию.
-
Обязателен при вставки рисунков в документ.
-
Эта команда вставит рисунок в данном месте документа. Здесь 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. Пример использования программы ниже.
$ epstopdf image1.eps
После чего появится файл image1.pdf.
Для того, чтобы упростить переход пользователей к движку pdflatex и сделать совместное использование движков latex и pdflatex более простым был разработан пакет epstopdf (не путать с программой epstopdf), который позволяет на лету преобразовать рисунок в EPS формате в PDF и вставить его в документ. Типичный пример документа и ситуации его использования описаны ниже.
\documentclass{article}
\usepackage{graphicx}
\usepackage{epstopdf}
\begin{document}
\includegraphics{image1}
\end{document}
Допустим, что мы работаем над документом в формате 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).
T1 |
T2 |
T3 |
T4 |
|
файл |
ex1.ltx |
ex2.ltx |
ex3.ltx |
ex4.ltx |
описание |
см. пример № 1 |
см. пример №2 |
см. пример №1 |
см. пример №2 |
формат рисунка |
EPS |
EPS |
EPS, PDF |
EPS, PDF |
Результаты тестирования приведены ниже.
№ |
MiKTeX |
TL2011/L |
TL2011/W |
TL2009 |
TL2007 |
T1 |
+ + - + - |
+ + + + + |
+ + + + + |
+ + - + - |
+ N/A - N/A N/A |
T2 |
+ + + + - |
+ + + + + |
+ + + + + |
+ + + + + |
+ N/A + N/A N/A |
T3 |
+ + + + + |
+ + + + + |
+ + + + + |
+ + + + + |
+ N/A + N/A N/A |
T4 |
+ + + + + |
+ + + + + |
+ + + + + |
+ + + + + |
+ N/A + N/A N/A |
-
«+» вёрстка документа прошла успешно,
-
«-» сверстать документ не удалось.
Порядок следования движков в таблице: latex, dvilualatex, pdflatex, xelatex, lualatex.
Note
|
Замечания
|
Выводы
Если вы планируете использовать оба движка — latex и pdflatex — и вставлять рисунки в документ, то убедитесь, что
-
документ использует пакет graphicx;
-
рисунки вставляются командой \includegraphics, без указания расширения файла-рисунка, т.е. просто указано первичное имя файла;
-
каждый рисунок представлен в двух форматах — двух файлах — EPS и PDF.
Тогда вёрстка документа движками latex и pdflatex не будет ничем отличаться друг от друга, за единственным исключением, что вы получите документ в PS или PDF формате.
Комментариев нет:
Отправить комментарий