ドラフトモードは\inputコマンドを尊重しません

ドラフトモードは\inputコマンドを尊重しません

私はオプションを有効にしelsarticleてドキュメントクラスを使用していますdraft。ドラフトモードではコマンドでインポートされたファイルもスキップされると思っていました\input{}が、そうではありませんでした。私は\input{}Tiにコマンドを使用しています。Z 画像と表は別々のファイルに保存されます。

パッケージを使用することで回避策を見つけましたifdraftが、ドラフト モードで\input{}も行を自動的にスキップする必要があると思います。

この動作はバグですか、それとも機能ですか?

\ifdraftすべてのコマンドの前に コマンドを含めるよりも簡単な回避策はありますか\input{}?

コメント後に編集:

インポート可能なファイルが存在しない場合にコマンドがコンパイルに失敗しなければ十分です\input。つまり、エラーを警告に減らしたいのです。それは可能ですか?

答え1

externalTiを使用する代わりに Z ライブラリを使用します。そのライブラリを使用すると、それぞれがtikzpicture個別の LaTeX 実行でコンパイルされ ( でコンパイルする必要があります-shell-escape)、その画像の生成された PDF ファイルが取り込まれます。以下のサンプル ドキュメントは、最初の実行で 2 秒かかり、次の実行で 0.3 秒かかります。また、 オプションdraftが使用され、画像が外部 PDF ファイルであるため、画像の取り込みはスキップされ、代わりに通常のボックスが表示されます。

それなしdraft

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

draft

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

\documentclass[draft]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}

hello
\begin{tikzpicture}
  \foreach \i in {1,...,1000}
    \node at (0,0) {picture that takes a long time to compile};
\end{tikzpicture}
bye

\end{document}

更新に関しては、LaTeX の入力はおおよそ次のようになります。

\InputIfFileExists{file}%
  {}% do nothing if the file exists
  {\ERROR{file does not exist}}

つまり、次のように定義できます\myinput

\newcommand\myinput[1]{%
  \InputIfFileExists{#1}%
    {}% do nothing if the file exists
    {\PackageWarning{Mathiassa}{File '#1' not found.}}%
  }

そして、大胆に\inputそのように動作させたい場合は、 を定義する代わりに、 (それを処理する LaTeX マクロ)\myinputを再定義することができます。\@iinput

関連情報