
Estou tentando compilar um grande documento colaborativo que inclua o resultado da modelagem em imagens que são atualizadas com frequência, mas por outros colaboradores. Eu não entendo essas imagens. Ainda quero compilar o documento geral.
Tenho usado \usepackage[demo]{graphicx}
o que é bom porque o documento será compilado mesmo quando as imagens foremcompletamenteausente. Isso é sugerido em:Compilar um arquivo quando as imagens estiverem faltando/não disponíveis.
No entanto, quero incluir algumas imagens (as minhas para as quais tenho os dados). Quero fazer algo como adicionar \includegraphics[draft=false]{image}
imagens específicas ao usar \usepackage[draft]{graphicx}
conformeAtivando e desativando imagens em figuras. No entanto, esta opção não parece disponível para \usepackage[demo]{graphicx}
.
Observe que a equipe teve que omitir a extensão da imagem devido à colaboração entre plataformas, fazendo com que algumas imagens fossem geradas com .PDF
extensões e outras com .pdf
.
Alguém conhece uma boa solução aqui?
Responder1
Parece que você está fornecendo uma extensão de arquivo de imagem por padrão. Isto é útil, uma vez quegraphics
lida com isso de maneira diferente: se você [não] fornecer uma extensão de imagem e o arquivo não existir, ele apenas criará umaviso[erro]. Isso faz diferença em termos de compilação, já que um aviso não é crítico.
Portanto, sugiro usar
\usepackage[draft]{graphicx}
Aqui está um exemplo 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}
Se você não fornecer a extensão do arquivo de imagem por padrão, talvez seja necessário atualizar \includegraphics
para procurar um possível arquivo a ser incluído. Supondo que você esteja compilando com pdfLaTeX, podemos percorreras possíveis extensões de arquivo de imagem:
\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}
Percorremos todas as extensões possíveis (incluindo nenhuma extensão, se você a forneceu manualmente como parte de \includegraphics
) e identificamos a primeira extensão disponível encontrada como a combinação \imgfile
. Inserimos a imagem de um nome de arquivo inventado (mas existente) .png
se a imagem não existir.