技術の進歩により LaTeX の機能を拡張できる可能性はありますか?

技術の進歩により LaTeX の機能を拡張できる可能性はありますか?

過去に無数の質問/回答で指摘されているように、LaTeXでは参照やTOC/LOFなどがある場合、少なくとも2回コンパイルする必要があります。これらの状況の多くは、文書を複数回コンパイルする必要がある状況とはどのような状況でしょうか?

この余分なステップを回避する努力は、次のような特定のケースでは成功している。 2 回のコンパイルを回避するにはどうすればよいでしょうか? しかし、今日では、このプロセスを自動化するスクリプトやマクロを開発するだけで、苦痛が軽減されるという慣習が当たり前になっています。

答えは[前のページへの移動に関する質問]初期のコンピュータのメモリ制約が、TeX が元々そのように構築された理由の中心であったことをほのめかしています。後で必要になる可能性のある情報は、任意の数の補助ファイルに単に保存され、次のパスが実行されたときに参照されます。ページが「完了」すると、コンパイラによって忘れられます。

私はよくこう考えます。コンピュータ処理とメモリ機能の進歩を考慮すると、LaTeX が複数回コンパイルしなくても済むように、より多くのドキュメントをメモリ内に保持することは可能/現実的/計画的でしょうか?

ドキュメント全体をメモリ内に保持すると大量のメモリが必要になるため、非常に大きなドキュメントではこの方法は使えない可能性があります (オプションの動作にする必要があるかもしれません)。しかし、このような強化されたコンパイルにより、タイプセッティングの多くの側面でメリットが得られると思われます。

これは (La)TeX の本質とそれがどのように構築されたかに関係していることはわかっています。これは単純なパッチではなく、コア全体の書き直しが必要になる可能性が高いです (本当にそうでしょうか?)。これに関連する他の問題も確かにあります (これで実際にコンパイル時間が短縮されるでしょうか?)。この問題や関連する問題について議論している別の場所への参照があればうれしいです。(これは LaTeX3 で検討されましたか?)

答え1

Joseph が言ったように、これは LaTeX の機能ではなく、TeX の機能 (xetex および luatex と共有) なので、LaTeX と呼ばれるものでこれを実行する現実的な方法はありません。また、一般的にメモリの制約がそれほど異なるというのは真実ではないと思います。人々の期待はハードウェアの容量よりもさらに速く増大します。最新のハードウェアでも、いくつかの tikz 画像を含むドキュメントはすぐに大量のメモリを消費するため、tikz 外部化の必要性を確認してください。

しかし、すべては名前の中にあります。前方参照と後方参照を許可するシステムは情報を保存しています。どこか. ディスク上の .aux ファイルに LaTeX を保存するのは 1970 年代のやり方だと思われるかもしれません。しかし、.aux ファイルは SSD 上またはメイン メモリ内の仮想ファイル システム上にある可能性があり、アクセスに実質的な障害は発生しません。また、コメントにあるように、「latex」を make、latexmk、arara、context、または LaTeX を 4 回実行するバッチ ファイルに置き換えることができるため、ユーザーにとっての最終効果は、それが望まれる場合、1 回のパスでコンパイルすることです。

もちろん、1 回のパスで実行することは、完全なドキュメントをエラーなしで作成でき、それを複数回処理する必要がない場合に限り、実際にメリットがあります。編集/コンパイル/プレビュー サイクルを使用している場合は、サイクルが遅くなるという点でのみ煩わしいだけです。

関連情報