Как стать автором
Обновить

Оптимизация векторной графики для LaTeX'a.

Время на прочтение 1 мин
Количество просмотров 4.6K
Зачем нужна оптимизация: eps и pdf файлы сохраненные векторным редактором не всегда полностью совместимы с LaTeX'ом. Кроме того, уменьшение их размера положительно сказывается на размере документа и скорости работы просмотрщика dvi.

Кроме собственно векторного редактора, нам понадобятся eps2eps и epstopdf. Эти две утилиты существуют и в Windows, и в Linux, и в Mac OS. В Windows они есть в составе MiKTeX. В Linux и Mac OS, насколько мне известно, они так же приходят с TeX'ом.

Весь процесс выглядит следующим образом. Создаем изображение в редакторе и сохраняем в eps. Прогоняем его через eps2eps и уже этот оптимизированный файл — через epstopdf. Оптимизированные eps и pdf подаем LaTeX'у (на самом деле pdfTeX'у). Напомню, что при компиляции \includegraphics{your_image} в dvi — автоматически используется your_image.eps, в pdf — your_image.pdf.


Формат eps2eps:
eps2eps -dNOCACHE input.eps output.eps

Параметр -dNOCACHE переводит шрифты в кривые. Без него шрифты будут битмапами.



Примечания: Имя выходного файла должно отличаться от входного, иначе получим пустой eps файл. Проверить результат, особенно качество шрифтов, никогда не помешает. Полезно сохранять исходный eps, текст после обработки редактировать уже не получиться.


Формат epstopdf:
epstopdf input.eps
Получаем input.pdf.


Чтобы не делать каждый раз все вручную, я написал небольшой скрипт под Windows:
@echo off

for /f "delims=." %%a in ('dir /b *.eps') do eps2eps -dNOCACHE %%a.eps %%a.prep_tmp
del /Q *.eps
ren *.prep_tmp *.eps

for %%a in (*.eps) do epstopdf %%a


Все eps файлы в текущей директории обрабатываются eps2eps, и создаются их pdf версии. Осторожно, оригинальные eps перезаписываются! Делайте копии!
Теги:
Хабы:
+4
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн