【脱Overleaf】ブラウザで動く爆速LaTeXエディタ「TeXbrain」を作ってみた
Show HN: TeXbrain, a LaTeX editor that runs pdfTeX in the browser via WASM
Show HN: TeXbrain, a LaTeX editor that runs pdfTeX in the browser via WASM
工学系の大学院生として、修士論文や研究論文でLaTeXを愛用しています。Overleafは便利ですが、Git連携が有料機能なのが悩みでした。「本来無料で使えるべき機能にお金を払いたくない」という一心で、隙間時間に自分好みのLaTeXエディタを自作しました。ブラウザのタブを開いてコードを書けばPDFが即座に生成され、ファイルはすべてローカルのフォルダに保存されます。TeXbrainはバックエンドを持たない静的サイトです。pdfTeXをWebAssembly(SwiftLaTeX)にコンパイルし、ブラウザ上で直接動作させます。File System Access APIを使用してローカルのプロジェクトフォルダを直接読み書きするため、Gitによるバージョン管理や、ローカルのTeX環境、AIエージェント、VS Codeなどの外部エディタと自由に組み合わせ可能です。CLI操作なしでGitのクローン、ブランチ、コミット、プッシュ/プルを行えるようisomorphic-gitも組み込みました。アカウント登録や分析トラッキングは一切不要、初回ロード後は完全にオフラインで動作します。ぜひお試しください:https://tex.swimmingbrain.dev/ (Chromium系ブラウザはフォルダアクセスに対応、Firefox/Safariは仮想ファイルシステムで動作します)セルフホスティングや貢献についてはGitHubをご覧ください:https://github.com/swimmingbrain/texbrain (MITライセンス、エンジン部はEPL 2.0 / GPL 2.0)特にこだわったのはパッケージの読み込み処理です。エンジン自体はわずか1.8MB。必要なファイルが足りない場合、Service Workerがリクエストをキャッチし、キャッシュ、バンドル済みサブセット、jsDelivr上のTeX Liveツリー、SwiftLaTeXスタイルのサーバーと順に探索します。ファイルは最大でも一度しか取得されず、初回のコンパイル成功後にオフラインでも動くようバックエンドでキャッシュがプリフェッチされます。通信されるのはファイル名のみで、ドキュメントの内容が外部に送信されることはありません。現状の制約として、pdfTeXのみ対応(XeTeX/LuaTeXは非対応)、パッケージはTeX Live 2020世代に固定、BibTeX/biberも未実装といった点はありますが、環境構築が難しいPCや、手軽にLaTeXを書きたい人にとっては最適なツールになるはずです。既にこのツールで論文を書き上げたユーザーもおり、フィードバックをもとに改善を続けています。バグ報告やプルリクは大歓迎ですので、ぜひ活用して改善に協力してください!
やるじゃん!
これめちゃくちゃクールだね。ConTeXtにもこういうのがあればいいのに。
FirefoxやSafariでも動くの?「FirefoxやSafariは仮想ファイルシステムにフォールバックする」って書いてあるけど、どうしてもそのフォールバックが機能しないんだよね。何か押すべきボタンとかあるのかな?
何年か前の適当なLaTeXドキュメント(TeX Live 2020にない新機能を使わないよう、2020年以前に書いたものか確認済み)をコピペしてみたんだけど、コンパイルすると13017行目でこんなエラーが出たよ。
Font OT1/cmr/m/n/10.95=cmr10 at 10.95pt not loadable: Bad metric (TFM) file.
ドキュメント自体は200行しかないから、多分どこかのパッケージが原因だと思う。エラーがどこから来てるのか全然わからなくて、\usepackage{microtype}かなと思ってコメントアウトしてみたけど、同じエラーが消えない。
タブをハードリフレッシュしてみたら、今度は別のエラーが出た。
TeX capacity exceeded, sorry [text input levels=15].
今度は39行目って出たけど、結局どのパッケージの39行目なのか不明なんだよね。