Compilar quando as imagens estiverem completamente ausentes, MAS ativar determinadas imagens?

Compilar quando as imagens estiverem completamente ausentes, MAS ativar determinadas imagens?

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 .PDFextensõ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 quegraphicslida 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:

insira a descrição da imagem aqui

\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 \includegraphicspara 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:

insira a descrição da imagem aqui

\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) .pngse a imagem não existir.

informação relacionada