かなり長い文書を書く友人がいます。現在、彼の文書は 130 ページ (PDF) ほどあります。彼は Windows で TexWorks を使用しており、文書がコンパイルされるまでに 2 ~ 3 分かかることがあります。
このような長いファイルの場合、この時間が正常かどうかを尋ねているのではありません。これは多くの要因に依存し、各 PC の CPU などによって時間が異なることは承知しています。
しかし、文書内に tex ファイル内の構成要素が多数ある場合、どの構成要素に特に長い時間がかかるのか疑問に思いました。
draft
たとえば、多くの画像を含めると、すべての外部ファイルをドキュメントに読み込む必要があるため (有効になっていないと想定)、かなりの時間がかかると考えられます。
また、彼の文書では、ハイフネーションを防ぐために を頻繁に使用していますmbox
。 こうした 2 つの方法をたくさん使用すると、文書のコンパイルにかかる時間が長くなりますか?
最後の例として、彼はオプションを知らなかったopenright
ため、\newpage
新しい章を右のページで開きたいすべての場所で使用しました。これにより、コンパイル時間が余分にかかるのでしょうか?
私の質問が十分に明確であることを願います。
編集: 彼のドキュメントで私が見たもう 1 つのこと。一番最初の行として を見ました\documentclass[all]{...}
。そのオプションが存在することを知りませんでしたall
。これは私が想像しているとおりの動作をするのでしょうか? 実際にすべての可能なオプションを有効にするのでしょうか? しかし、それは矛盾していませんか? たとえば、parskip
およびの場合halfparskip
? これはパフォーマンスに悪影響を与えますか? Java のようなものだと想像していますimport *
。
答え1
数学は、多くの追加の考慮事項が関係するため、単純なテキストよりも時間がかかる可能性があることを理解しています。画像 (pdf または mps 以外) 形式を含めると、コードに単純にドロップするのではなく処理する必要があるため、コンパイル時間も長くなります。
しかし、TeX はタイプセッティング エンジンであり、チューリング完全ではあるものの、大量の処理を必要とする処理を TeX に実行させると、特に効率的というわけではありません。すぐに思い浮かぶ例は (最近リリースされたため) パッケージです。このqrcode
パッケージは、TeX を使用してテキスト文字列をバイナリ データに変換し、そこからグラフィック QR コードを作成します。TeX はこのような処理が可能ですが、そのために設計されたものではありません。そのため、QR コードの処理には、単純なテキストよりも少し時間がかかります (この場合はそれほど長くかかりません。qrcode
非常に優れているようです。それでもです)。
コメントでも触れられているように、TeX で広範囲に描画すると、同様に時間がかかります。 tikz
とその友人たちはこれに悩まされています。しかし、これらのプログラムの効率は、TeX を本来の限界を超えて拡張していることを考えると、注目に値します。 shapepar
は、本来の目的で TeX を使用していますが、奇妙で独創的な形で段落をタイプセットするように TeX を強制し、与えられたテキストをそれらの形状に最もよく適合させる方法を決定するために繰り返しテストを実行する必要があります。その結果、通常の長方形の段落にテキストをタイプセットするだけの場合よりも実行に時間がかかることがよくあります。
要するに、TeX は行を段落に、段落をページに、数式をきれいに組版された単位に分割するために設計されたものであり、それ以外の場合は遅くなります。