Latex

lunes, 21 de febrero de 2011

Incluir gráficos EPS con pdflatex

Es sabido que pdflatex soporta formatos de imagen jpg, png y pdf, siendo este último del tipo vectorial, mientras que latex soporta eps pero no los anteriores.
Lo más correcto sería tener todo en pdf, ya que es la tendencia que va a la vanguardia. Me ha pasado de tener documentos escritos con imágenes ya guardadas en formato eps, y no me sido fácil dar con la solución.

1. instalar el paquete epstopdf
Esta herramienta realizará la on-the-fly de las imágenes de eps a pdf
$ sudo apt-get install texlive-extra-utils

2. insertar el siguiente código en el preámbulo del documento:

\newif\ifpdf
\ifx\pdfoutput\undefined
\pdffalse
\else
\pdfoutput=1
\pdftrue
\fi
\ifpdf
\usepackage{graphicx}
\usepackage{epstopdf}
\DeclareGraphicsRule{.eps}{pdf}{.pdf}{`epstopdf #1}
\pdfcompresslevel=9
\else
\usepackage{graphicx}
\fi

También es posible escribir sencillamente
\usepackage[pdftex]{graphicx}
\usepackage{epstopdf}

3. Insertar gráficos como es usual
\includegraphics[width=7in]{result_1.eps}

4. Compilar el archivo tex con la opción -shell-escape
$ pdflatex -shell-escape documento.tex

Durante la compilación pdflatex convertirá todos los gráficos eps en imágenes pdf . Esto puede llegar a demorar si se tiene muchas imágenes eps en el documento. Una manera de corregir esto (aparte de dejarse de romper la cabeza y trabajar directamente con imágenes pdf!) es que cuando se inserte un gráfico eps con el comando \includegraphics NO SE DETALLE LA DESCRIPCIÓN. De esa forma, pdflatex chequeará siempre que no exista ya una imagen pdf, y recién en segunda instancia llamará al programa epstopdf.