LuaTeX を Docker でリモート実行する — 思考環境を漏らさない設計
学術文書を LuaTeX で組版しようとすると、まず環境構築の重さが壁になります。TeX Live をフルインストールすれば数 GB、日本語フォントを揃えればさらに数百 MB かかります。依存パッケージは、OS によって振る舞いが違います。論文や報告書を書きたいだけなのに、組版のためにローカルマシンがどんどん膨らんでいきます。
組版の力は落とさず、ローカル環境は最小にしたい。この要望に応える一つの手が、組版環境をリモートの Docker に隔離することです。本稿では、その実装である luatex-docker-remote2 の設計方針を、部品ごとに整理します。
設計方針 — ローカルを汚さず、組版能力を最大化する
設計の出発点は単純です。
- ローカル環境: テキストエディタ +
.tex/.sty/ 図版ファイルだけ - 組版能力: TeX Live full + 日本語フォント生態 + LuaLaTeX-ja
- 両者の橋渡し: rsync + SSH + Docker
具体的には、手元で luatex-pdf document.tex と打つだけで、裏で次のことが起こります。
- ローカルの
.tex/.sty/ 画像ファイルがリモート Docker ホストに rsync される - リモート上の Docker コンテナが LuaTeX を起動して PDF を生成する
- 生成された PDF がローカルに戻され、リモート側の一時ファイルは破棄される
ローカルマシンに残るのは PDF だけです。TeX Live も、フォントも、キャッシュも、すべてリモートのコンテナに閉じ込めます。
本サイトの基礎記事 決定論的にではなく、相対的に の言葉でいえば、これは 媒介物を制御下に置く 設計です1。LuaTeX 環境は、「何をどう組版できるか」を決める媒介物です。これをローカルに広げると、TeX Live のバージョン、フォントの状態、依存パッケージの振る舞いが、ほかの作業と絡み合います。そしていつのまにか「捨てられない」状態になります。コンテナに隔離すれば、媒介の境界が物理的にはっきり引かれます。まるごと差し替えることも、捨てることもできます。媒介物が自分の手を離れて、勝手に育っていくのを防ぐ。それがこの設計の態度です。
ネットワーク自動検出 — 一つのコマンドで内・外を切り替える
実際に使ううえでいちばん面倒なのは、自宅のネットワーク内と外出先とで、SSH の接続先が変わることです。自宅では内部ホスト名 (例: zeus) で接続できます。外出先では、グローバル IP やドメイン経由 (例: zeus-soto) になります。同じコマンドで、どちらでも切れ目なく動かしたいわけです。
luatex-docker-remote のネットワーク自動検出は、次の二段階の判定でできています。
- 現在のグローバル IP を取得する
- 事前に登録した「自宅のグローバル IP」と比較する
一致すれば内部ホスト名で、一致しなければ外部ホスト名で接続します。それだけです。設定は ~/.home_global_ip と ~/.config/luatex/network-config の二つのファイルに分かれています。初回のセットアップは make setup-network で済みます。
仕組みは素朴ですが、使い勝手は大きく変わります。luatex-pdf document.tex という一つのコマンドが、自宅でもカフェでも同じ意味を持つ。これが目指した使い勝手です。
.sty 自動同期 — プロジェクトローカルとシステム共通の二層
LaTeX の .sty (スタイルファイル) の置き方は、昔から二通りに分かれます。
- プロジェクトローカル: 当該プロジェクト固有の
.styを.texと同じディレクトリに置く - システム共通: TEXMFHOME (
~/.local/share/texmf/tex/latex/) に置いて全プロジェクトから参照する
luatex-docker-remote も、この二層をそのまま受け継いでいます2。
- プロジェクトディレクトリ内の
.styは、.texと一緒に rsync される ~/.config/luatex/styles/以下の.styは、コンテナ起動時にマウントされ、全プロジェクトで利用できる
この分け方は、CLAUDE.md のようなプロジェクト固有の設定ファイルの扱いと、よく似た発想です。「プロジェクトに閉じる設定」と「横断する設定」を物理的に分けて、衝突を防ぐ。計算環境の設計では、おなじみの手です。
日本語フォント生態 — 原ノ味と Libertinus Math の組合せ
日本語の LuaLaTeX で長く課題だったのは、フォントを整える手間でした。Adobe Source Han が登場するまでは、IPA / IPAex / TakaoFonts などを一つずつ整える必要がありました。ライセンスの確認も含めて、最初にかかる手間が大きい領域です。
luatex-docker-remote の Docker イメージには、次の和文フォントがあらかじめ入っています2。
- 原ノ味フォント (Harano Aji) ── Adobe Source Han 系を TeX 用に最適化したもの
- Noto CJK ── Google・Adobe 共同のオープンソース CJK フォント
- IPA / IPAex ── 情報処理推進機構 (IPA) 提供の伝統的アカデミックフォント
- TakaoFonts / M+ FONTS / さわらびフォント / VL ゴシック など
このうち、欧文の Libertinus Math (数式・本文) と組み合わせるなら、第一の推薦は 原ノ味フォント です。Source Han 系と Libertinus Serif は字面が見た目に近く、和欧混植のときに「グレースケールの均衡」が取れるからです3。
数式の多い物理・工学系の文書では、Libertinus Math は unicode-math パッケージで使える、唯一級のオープンフォントです4。著者が個人的に標準として使っているのも、この組合せです。
使用フロー — 透明性と冪等性
設計が固まれば、日々の使い方はとても単純です。
# 通常コンパイル (LuaLaTeX + 日本語)
luatex-pdf document.tex
# 監視モード ── ファイル更新で自動再コンパイル
luatex-pdf -w document.tex
# エンジン切替 (upLaTeX, pLaTeX, XeLaTeX, pdfLaTeX)
luatex-pdf -e uplatex document.tex
この luatex-pdf コマンドが裏でしているのは、次の一連の処理です。rsync (ローカル→リモート)、SSH 経由での Docker の起動、コンパイル、PDF の取得 (リモート→ローカル)、リモートの後片付け。これらがすべて、コマンド一回で透明に完結するように整えてあります。
make uninstall を実行すれば、ローカルに残った設定ファイルとシンボリックリンクは、きれいに消えます。環境を捨てやすいことは、環境を入れやすいことと同じくらい大切です。
ここからは、この設計を 2026 年の知的生産論の文脈に置き直してみます。luatex-docker-remote のような環境設計は、ただの「便利ツール」ではありません。思考の延長を整える行為そのもの です。
梅棹忠夫が『知的生産の技術』(1969) で示したのは、思考と処理の 分離・統合の技術 が知的生産の中心にある、という命題でした5。Clark & Chalmers の「拡張された心」(1998) は、外の道具やメディアが認知を組み立てる部品になりうることを、哲学として定式化しました6。これらを luatex-docker-remote のような計算環境の設計に当てはめると、次のように読み替えられます。
- ローカル環境のクリーンさ = 思考の流れを止めない (梅棹のカード書き作業に対応)
- リモート Docker への隔離 = 処理装置を外部に置く (Clark & Chalmers の外部認知装置に対応)
- ネットワーク自動検出 = 道具操作を自動処理層に降ろす (Shiffrin & Schneider の自動処理に対応7)
つまり、組版環境の設計は計算工学の問題であると同時に、認知環境の設計 ── 媒介の設計 でもあります。Clark & Chalmers が「拡張された心」として論じたものと、本サイトが 媒介性 と呼ぶものは、同じ事態への別の入口です1。ここではそれが、「組版を媒介する装置を、どこに、どう隔離して持つか」という形で現れています。一行のコマンドが、文脈に応じて適切に動くこと。ローカルを汚さないこと。捨てやすいこと。どれも、媒介物を制御下に置きながら、書き手の思考の流れを止めないための条件です。
知的生産論の系譜に立ち戻れば、luatex-docker-remote のようなツール設計は、古典的な問いを現代に実装したものです。本サイトの既掲記事 書くことは考えることか — 思考と道具の境界 と、基礎記事 決定論的にではなく、相対的に をあわせて読むと、その射程がよりはっきりするはずです。道具を「正解の手順」にしない。媒介する範囲を明示して、状況に応じて差し替えられるようにする。そうした態度を、組版環境という分野で具体化したのがこの例です。
参考文献
-
媒介性 / 差延 / 検証と妥当性確認 (V&V) の非対称性 の操作的な定義と理論的な扱いについては、本サイトの基礎記事 決定論的にではなく、相対的に の脚注、および著者の Zenodo プレプリント・シリーズ (レター版 DOI: 10.5281/zenodo.20096462) を参照。 ↩↩
-
mashi727/luatex-docker-remote, GitHub リポジトリ. https://github.com/mashi727/luatex-docker-remote ── 設計の詳細、インストール手順、サポートエンジン一覧などはリポジトリ README を参照。 ↩↩↩
-
Libertinus Fonts Project. Libertinus. GitHub. https://github.com/alerque/libertinus ── Linux Libertine からフォークされ、unicode-math 対応を含む数式フォントとして整備されているオープンソースフォントファミリ。 ↩
-
Robertson, Will, et al. unicode-math: Unicode Mathematics Support for XeTeX and LuaTeX. CTAN, 2025. https://ctan.org/pkg/unicode-math ── LuaTeX で OpenType 数式フォントを利用するための標準パッケージ。 ↩
-
梅棹忠夫『知的生産の技術』岩波新書、1969 年。 ↩
-
Clark, A. and D. Chalmers. “The Extended Mind.” Analysis, vol. 58, no. 1, 1998, pp. 7–19, p. 7 ── “Where does the mind stop and the rest of the world begin?” ↩
-
Shiffrin, R. M. and W. Schneider. “Controlled and Automatic Human Information Processing: II. Perceptual Learning, Automatic Attending, and a General Theory.” Psychological Review, vol. 84, no. 2, 1977, pp. 127–190. ↩
この記事は役立ちましたか?