
私は、非常に多くのデータ ポイントを持つ多数のプロットを含むドキュメントを作成しています。これらのプロットは.pdf
ベクター画像として保存されており、レンダリングに非常に時間がかかります。そのため、そのようなプロットを含むページに遭遇するたびに、エディターが 1 分間フリーズしてしまいます。
graphicsx にはドラフト オプションがあることは知っていますが、これは画像を非表示にするため、ファイル名だけでは画像を区別できないため、あまり良い解決策ではありません。これらは、非常に一般的な名前で実験的に実行した結果です。
.png
ドラフト モードで画像をラスタライズ (たとえば に) し、最終モードでは元の画像を使用する方法はありますか.pdf
? ImageMagick などの外部ツールを使用して変換できることはわかっていますが、すべての画像を makefile に追加し、\includegraphics
ドラフトと最終用に を複製する必要があるため、余分な作業が多くなりそうです。
graphicsxには、ドキュメントで説明されていないtype
やなどのパラメータがいくつかあります。これらのいずれかを使用してこれを実現できるでしょうか? をフックして外部コマンドを呼び出すことはできますか? コマンドを記述することはできますが、LaTeX でフックがどのように機能するかはわかりません。command
\includegraphics
それ以外の点では、品質の点ではラスター グラフィックがベクター グラフィックより劣るという事実はよくわかっています。最終バージョンではベクター グラフィックを使用する予定です。これは、簡単なドラフト プレビューのみを目的としています。
答え1
画像の検索パスは変更できます:
\graphicspath
PDF 画像またはその対応する PNG 画像用のディレクトリを使用します。\DeclareGraphicsExtensions
画像ファイルが拡張子なしで指定された場合に、どの拡張子を最初に使用するかの順序を変更するために使用できます。パッケージは、grfext
設定を変更するためのインターフェイスを提供します。
epstopdf
pdfTeX または luaTeX が使用され、シェル エスケープ機能が有効になっている場合、パッケージを使用して PDF から PNG への変換を自動的に呼び出すことができます。
例:
が( )\mydraft
と定義されている場合、拡張子のルールが上書きされ、 ImageMagick の を介してに変換されます。それ以外の場合は拡張子が優先されます。Y
\let\mydraft=Y
.pdf
.png
convert
.pdf
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert #1 \OutputFile
}
\epstopdfDeclareGraphicsRule{.PDF}{png}{.png}{%
convert #1 \OutputFile
}
\else
\PrependGraphicsExtension*{.pdf}
\fi
\begin{document}
\includegraphics{image}
\end{document}
特別なドラフト モードは によって有効になります\let\mydraft=Y
。これは、コマンド ラインでも指定できます。例:
pdflatex --shell-escape "\let\mydraft=Y\input{mydocument}"
次にimage.pdf
が変換され、 として含められますimage-pdf-converted-to.png
。
それ以外は、周囲に転がっているimage.pdf
ものも含めますimage.png
。
キー\includegraphics
変換機能は、\includegraphics
キー の使用によってに制限することもできます。キー コードは、ファイルを PNG に変換するためpdfpng
のグラフィック ルールを変更します。が でない場合、キーは何も行いません。.pdf
\mydraft
Y
\documentclass{article}
\usepackage{graphicx}
\usepackage{grfext}
\ifx\mydraft Y
\usepackage{epstopdf-base}
\csname define@key\endcsname{Gin}{pdfpng}[]{%
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{%
convert ##1 \OutputFile
}%
}
\else
\PrependGraphicsExtensions*{.pdf}
\csname define@key\endcsname{Gin}{pdfpng}[]{}
\fi
\begin{document}
\includegraphics{image1}
\includegraphics[pdfpng]{image2-converted-to-png-when-mydraft}
\includegraphics{image3}
\end{document}
(がアクティブな場合\define@key
は の代わりに を使用できます。)\csname define@key\endcsname
\makeatletter