画像が完全に欠落しているときにコンパイルしますが、特定の画像をオンにしますか?

画像が完全に欠落しているときにコンパイルしますが、特定の画像をオンにしますか?

私は、他の共同作業者によって頻繁に更新されるイメージのモデリングの出力を含む大規模な共同作業ドキュメントをコンパイルしようとしています。これらのイメージを取得できません。それでも、ドキュメント全体をコンパイルしたいと考えています。

私はこれを使っています。\usepackage[demo]{graphicx}画像があってもドキュメントがコンパイルされるので良いです。完全に欠落しています。これは次のとおりです:画像が見つからない/利用できない場合にファイルをコンパイルする

しかし、私はいくつかの画像(私がデータを持っているもの)を含めたいと思っています。使用時に\includegraphics[draft=false]{image}特定の画像に追加するようなことをしたいのです。\usepackage[draft]{graphicx}図内の画像のオン/オフただし、このオプションは では利用できないようです\usepackage[demo]{graphicx}

チームはクロスプラットフォームのコラボレーションのために画像拡張子を省略する必要があり、その結果、一部の画像は.PDF拡張子付きで生成され、一部の画像は 付きで生成されることに注意してください.pdf

誰か良い解決策を知っていますか?

答え1

デフォルトで画像ファイルの拡張子を指定しているようです。これは便利です。graphicsはこれを異なる方法で処理します。画像拡張子を指定せず、ファイルが存在しない場合は、警告[エラー]。警告は重大ではないため、コンパイルに関しては違いが生じます。

したがって、私は

\usepackage[draft]{graphicx}

以下に最小限の例を示します。

ここに画像の説明を入力してください

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

デフォルトで画像ファイルの拡張子を指定していない場合は、\includegraphics含める可能性のあるファイルを検索するために更新する必要があるかもしれません。pdfLaTeXでコンパイルしていると仮定すると、次のように循環することができます。可能な画像ファイル拡張子:

ここに画像の説明を入力してください

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

可能性のあるすべての拡張子( の一部として手動で指定した場合は拡張子なしも含む\includegraphics)を循環し、見つかった最初の使用可能な拡張子を の組み合わせとして識別します。画像が存在しない場合は、\imgfile作成された(ただし存在する)ファイル名の画像を挿入します。.png

関連情報