Kompilieren wenn Bilder komplett fehlen, ABER bestimmte Bilder einschalten?

Kompilieren wenn Bilder komplett fehlen, ABER bestimmte Bilder einschalten?

Ich versuche, ein großes Gemeinschaftsdokument zusammenzustellen, das die Ergebnisse der Modellierung in Bildern enthält, die zwar sehr häufig, aber von anderen Mitarbeitern aktualisiert werden. Ich bekomme diese Bilder nicht. Ich möchte das Gesamtdokument noch zusammenstellen.

Ich habe verwendet \usepackage[demo]{graphicx}, was gut ist, weil das Dokument kompiliert wird, auch wenn Bildervollständigfehlt. Dies wird vorgeschlagen in:Erstellen Sie eine Datei, wenn Bilder fehlen/nicht verfügbar sind.

Ich möchte jedoch einige Bilder einbinden (meine, für die ich die Daten habe). Ich möchte etwas tun, wie das Hinzufügen \includegraphics[draft=false]{image}zu bestimmten Bildern bei Verwendung \usepackage[draft]{graphicx}gemäßBilder in Abbildungen ein- und ausschalten. Allerdings scheint diese Option für nicht verfügbar zu sein \usepackage[demo]{graphicx}.

Beachten Sie, dass das Team die Bilderweiterung weglassen muss, da aufgrund der plattformübergreifenden Zusammenarbeit einige Bilder mit .PDFErweiterungen und andere mit generiert werden .pdf.

Kennt hier jemand eine gute Lösung?

Antwort1

Es scheint, als würden Sie standardmäßig eine Bilddateierweiterung angeben. Dies ist hilfreich, dagraphicsbehandelt dies anders: Wenn Sie keine Bilderweiterung angeben und die Datei nicht existiert, wird nur eineWarnung[Fehler]. Das macht hinsichtlich der Kompilierung einen Unterschied, da eine Warnung nicht kritisch ist.

Daher empfehle ich die Verwendung

\usepackage[draft]{graphicx}

Hier ist ein Minimalbeispiel:

Bildbeschreibung hier eingeben

\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}

Wenn Sie die Bilddateierweiterung nicht standardmäßig angeben, muss möglicherweise ein Update durchgeführt werden, \includegraphicsum nach einer möglichen einzubindenden Datei zu suchen. Vorausgesetzt, Sie kompilieren mit pdfLaTeX, können wir durchgehendie möglichen Bilddateierweiterungen:

Bildbeschreibung hier eingeben

\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}

Wir durchlaufen alle möglichen Erweiterungen (einschließlich gar keiner Erweiterung, wenn Sie diese manuell als Teil von angegeben haben \includegraphics) und identifizieren die erste verfügbare Erweiterung, die als Kombination gefunden wird \imgfile. Wir fügen das Bild mit einem erfundenen (aber vorhandenen) .pngDateinamen ein, wenn das Bild nicht existiert.

verwandte Informationen