
Estoy escribiendo un documento que tiene muchos gráficos con bastantes puntos de datos. Esos gráficos se almacenan como .pdf
imágenes vectoriales y su renderizado lleva mucho tiempo. Entonces, cada vez que me topo con una página con uno de esos, mi editor se congela durante un minuto.
Sé que Graphicsx tiene una opción de borrador, pero eso oculta las imágenes, lo cual no es una muy buena solución, ya que no puedo distinguir las imágenes solo por el nombre del archivo. Esos son resultados de ejecuciones experimentales con nombres bastante genéricos.
¿Existe quizás alguna forma de rasterizar las imágenes (por ejemplo, en .png
) en modo borrador y utilizar el original .pdf
en modo final? Sé que podría usar ImageMagick o cualquier herramienta externa para realizar la conversión, pero parece mucho trabajo adicional ya que necesitaría agregar cada imagen a un archivo MAKE y duplicarla \includegraphics
para borrador y final.
Hay algunos parámetros de gráficos como type
o command
que no se explican en la documentación. ¿Quizás esto podría lograrse usando uno de esos? ¿Podría tal vez conectar \includegraphics
y llamar a un comando externo? Me las arreglaría para escribir el comando, pero no tengo idea de cómo funcionan los ganchos en LaTeX.
Por lo demás, soy muy consciente de que los gráficos rasterizados son inferiores a los gráficos vectoriales en lo que a calidad se refiere. Voy a utilizar gráficos vectoriales en la versión final. Esto está destinado únicamente a una vista previa rápida del borrador.
Respuesta1
La ruta de búsqueda de las imágenes se puede cambiar:
\graphicspath
con un directorio para imágenes PDF o sus homólogos, las imágenes PNG.\DeclareGraphicsExtensions
se puede usar para cambiar el orden, qué extensión se usa primero, cuando el archivo de imagen se proporcionó sin extensión. El paquetegrfext
proporciona una interfaz para cambiar la configuración.
El paquete epstopdf
se puede utilizar para realizar la conversión de PDF a PNG automáticamente, si se utiliza pdfTeX o luaTeX y la función de escape del shell está habilitada.
Ejemplo:
Si \mydraft
se define como Y
( \let\mydraft=Y
), entonces la regla para la extensión .pdf
se sobrescribe para realizar una conversión a .png
través de ImageMagick convert
. De lo contrario, .pdf
se prefiere la extensión.
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert #1 \OutputFile
}
\epstopdfDeclareGraphicsRule{.PDF}{png}{.png}{%
convert #1 \OutputFile
}
\else
\PrependGraphicsExtension*{.pdf}
\fi
\begin{document}
\includegraphics{image}
\end{document}
El modo borrador especial se habilita mediante \let\mydraft=Y
, que también se puede proporcionar en la línea de comando, por ejemplo:
pdflatex --shell-escape "\let\mydraft=Y\input{mydocument}"
Luego image.pdf
se convierte y se incluye como image-pdf-converted-to.png
.
De lo contrario, image.pdf
está incluido, incluso si image.png
se encuentra por ahí.
Clave para\includegraphics
La función de conversión también se puede limitar \includegraphics
mediante el uso de una clave pdfpng
. El código clave cambia la regla de gráficos de .pdf
los archivos para convertirlos a PNG. Si \mydraft
no es así Y
, entonces la clave es no operativa.
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\csname define@key\endcsname{Gin}{pdfpng}[]{%
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert ##1 \OutputFile
}%
}
\else
\PrependGraphicsExtensions*{.pdf}
\csname define@key\endcsname{Gin}{pdfpng}[]{}
\fi
\begin{document}
\includegraphics{image1}
\includegraphics[pdfpng]{image2-converted-to-png-when-mydraft}
\includegraphics{image3}
\end{document}
( \define@key
se puede utilizar en lugar de \csname define@key\endcsname
, cuando \makeatletter
está activo).