
Estoy intentando compilar un gran documento colaborativo que incluya el resultado del modelado en imágenes que se actualizan muy a menudo pero por otros colaboradores. No entiendo estas imágenes. Todavía quiero compilar el documento general.
He estado usando \usepackage[demo]{graphicx}
lo cual es bueno porque el documento se compilará incluso cuando se muestren imágenes.completamentedesaparecido. Esto es como se sugiere en:Compile un archivo cuando falten imágenes o no estén disponibles.
Sin embargo, quiero incluir algunas imágenes (las mías para las que tengo datos). Quiero hacer algo como agregar \includegraphics[draft=false]{image}
imágenes específicas cuando las uso \usepackage[draft]{graphicx}
segúnApagar y encender imágenes en cifras.. Sin embargo, esta opción no parece estar disponible para \usepackage[demo]{graphicx}
.
Tenga en cuenta que el equipo tiene que omitir la extensión de la imagen debido a la colaboración entre plataformas, lo que lleva a que algunas imágenes se generen con .PDF
extensiones y otras con extensiones .pdf
.
¿Alguien conoce una buena solución aquí?
Respuesta1
Parece que estás proporcionando una extensión de archivo de imagen de forma predeterminada. Esto es útil, ya quegraphics
maneja esto de manera diferente: si [no] proporciona una extensión de imagen y el archivo no existe, solo crea unaadvertencia[error]. Eso marca la diferencia en términos de compilación, ya que una advertencia no es crítica.
Por lo tanto, sugiero utilizar
\usepackage[draft]{graphicx}
Aquí hay un ejemplo mínimo:
\documentclass{article}
\usepackage[draft]{graphicx}
\begin{document}
\includegraphics[width=100pt]{some-bizarre-image.png}% This does not exist
\includegraphics[width=150pt,draft=false]{example-image.png}% This exists (http://ctan.org/pkg/mwe)
\end{document}
Si no proporciona la extensión del archivo de imagen de forma predeterminada, es posible que deba actualizar \includegraphics
para buscar un posible archivo para incluir. Suponiendo que esté compilando con pdfLaTeX, podemos recorrerlas posibles extensiones de archivos de imagen:
\documentclass{article}
\usepackage[draft]{graphicx}
\usepackage{pgffor,letltxmacro}
% https://tex.stackexchange.com/q/72930/5764
% .png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2
\newif\iffilefound
\LetLtxMacro\oldincludegraphics\includegraphics
\renewcommand{\includegraphics}[2][]{%
\global\filefoundfalse
\foreach \fext in {,.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2} {%
\iffilefound\else\IfFileExists{#2\fext}{\global\filefoundtrue\xdef\imgfile{#2\fext}}{}\fi%
}%
\iffilefound
\oldincludegraphics[#1]{\imgfile}%
\else
\oldincludegraphics[#1]{example-image}%
\fi
}
\begin{document}
\includegraphics[width=100pt]{some-bizarre-image}% This does not exist
\includegraphics[width=150pt,draft=false]{example-image}% This exists (http://ctan.org/pkg/mwe)
\end{document}
Pasamos por todas las extensiones posibles (incluso ninguna extensión, si la proporcionó manualmente como parte de \includegraphics
) e identificamos la primera extensión disponible encontrada como la combinación \imgfile
. Insertamos la imagen de un nombre de archivo inventado (pero existente) .png
si la imagen no existe.