Gráficos vectoriales a rasterizados para modo borrador

Gráficos vectoriales a rasterizados para modo borrador

Estoy escribiendo un documento que tiene muchos gráficos con bastantes puntos de datos. Esos gráficos se almacenan como .pdfimá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 .pdfen 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 \includegraphicspara borrador y final.

Hay algunos parámetros de gráficos como typeo commandque no se explican en la documentación. ¿Quizás esto podría lograrse usando uno de esos? ¿Podría tal vez conectar \includegraphicsy 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:

  • \graphicspathcon un directorio para imágenes PDF o sus homólogos, las imágenes PNG.
  • \DeclareGraphicsExtensionsse puede usar para cambiar el orden, qué extensión se usa primero, cuando el archivo de imagen se proporcionó sin extensión. El paquete grfextproporciona una interfaz para cambiar la configuración.

El paquete epstopdfse 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 \mydraftse define como Y( \let\mydraft=Y), entonces la regla para la extensión .pdfse sobrescribe para realizar una conversión a .pngtravés de ImageMagick convert. De lo contrario, .pdfse 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.pdfse convierte y se incluye como image-pdf-converted-to.png.

De lo contrario, image.pdfestá incluido, incluso si image.pngse encuentra por ahí.

Clave para\includegraphics

La función de conversión también se puede limitar \includegraphicsmediante el uso de una clave pdfpng. El código clave cambia la regla de gráficos de .pdflos archivos para convertirlos a PNG. Si \mydraftno 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@keyse puede utilizar en lugar de \csname define@key\endcsname, cuando \makeatletterestá activo).

información relacionada