TDOM

LaTeXのコンパイル待ち時間を 短縮する組版エンジン

前回の組版状態を保持し、変更した箇所の直前から処理を再開します LaTeX文書を編集してから、結果を確認するまでの待ち時間を減らします

Kosei Kawaguchi / Takumi Kokawa

変更箇所の直前から処理を再開

LaTeXでは、数式や文章を修正するたびにコンパイルして紙面を確認します。 TDOMは、前回の組版で処理した状態を再利用することで、この確認にかかる待ち時間を短縮します。

文書を段落ごとに区切り、各段落まで処理したLuaTeXの状態を保持します。 修正が入ると、その直前の状態から組版を再開し、変更の影響を確認しながら表示を更新します。

TDOM論文の図1。文書を段落単位のブロックに分け、各境界でLuaTeXの状態を保持する。ブロックkの編集時には、その直前の状態から処理を再開する

LuaLaTeXの出力との比較

TDOMの表示と、通常のLuaLaTeXで組版した結果を照合します。 正しく表示できると確認されていない構文や処理には、実際の組版結果を使います。

現在の研究実装では、microtype、ページをまたぐ脚注、Windows上でのネイティブ実行には対応していません。 二段組やページ全体の描画を変更するパッケージを使う場合は、文書全体の実出力に切り替えます。

処理時間の測定結果

4〜30ページの文書で測定したところ、定常状態の同期時間の中央値は13.9〜18.2msでした。 95パーセンタイルは、最も長い条件で73.6msでした。 PDF生成と画像生成の時間は、この測定には含まれていません。

論文第6節・表4より。Apple M5、メモリ16GB、LuaHBTeX 1.18.0で測定しています。 対象はamsmathを使った英語のarticle文書で、チェックポイントの上限は8です。 各文書の3か所で30文字ずつ入力し、編集位置を移した直後の1文字を除いて集計しています。

TDOM研究論文の第一ページ

TDOM: LaTeX Authoring Without the Compile Wait

Verified Incremental Typesetting over a Live Document Tree

Kosei Kawaguchi / Takumi Kokawa
Fermion Inc.