私はオプションを有効にしelsarticle
てドキュメントクラスを使用していますdraft
。ドラフトモードではコマンドでインポートされたファイルもスキップされると思っていました\input{}
が、そうではありませんでした。私は\input{}
Tiにコマンドを使用しています。けZ 画像と表は別々のファイルに保存されます。
パッケージを使用することで回避策を見つけましたifdraft
が、ドラフト モードで\input{}
も行を自動的にスキップする必要があると思います。
この動作はバグですか、それとも機能ですか?
\ifdraft
すべてのコマンドの前に コマンドを含めるよりも簡単な回避策はありますか\input{}
?
コメント後に編集:
インポート可能なファイルが存在しない場合にコマンドがコンパイルに失敗しなければ十分です\input
。つまり、エラーを警告に減らしたいのです。それは可能ですか?
答え1
external
Tiを使用するけ代わりに 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