プログラミング
Show HN: TeXbrain、WASM経由でブラウザ上でpdfTeXを実行するLaTeXエディタ
Show HN: TeXbrain, a LaTeX editor that runs pdfTeX in the browser via WASM (github.com)
要約
本プロジェクトは、ブラウザ上でpdfTeXをWebAssemblyとして実行する静的なLaTeXエディタ「TeXbrain」です。ローカルのファイルシステムに直接アクセスし、Git同期や他のローカルツールとの連携を可能にします。アカウント不要でオフラインでも動作し、インストール不要な環境でのLaTeX利用を支援します。
全文翻訳
私は修士課程の工学系の学生で、LaTeXの大ファンであり、論文や研究記事にそれを使用しています。Overleafを使ったことがありますが、git同期が必要になった際に、残念ながらそれが有料機能であることに気づきました。単純に機能するはずのものにサブスクリプションを支払いたくなかったので、自由時間に私が欲しかったエディタを構築しました。これは、タブを開き、LaTeXを書き、PDFを取得でき、ファイルはすべて私のディスク上の1つのフォルダに保存されるものです。
TeXbrainはバックエンドのない静的サイトです。pdfTeXはWebAssembly(SwiftLaTeX)にコンパイルされ、ブラウザで実行されます。エディタはFile System Access APIを通じてプロジェクトフォルダの読み書きが可能なので、git、ローカルのTeXインストール、ローカルAIエージェント、または同じファイルに対する他のエディタを使用できます。gitはisomorphic-gitを通じて組み込まれており、コマンドでクローン、ブランチ、コミット、プッシュ、プルするよりも、ターミナルに触れたくないユーザーのために用意されています。アカウントは不要で、分析もなく、初回ロード後はすべてオフラインで動作します。
試してみてください: https://tex.swimmingbrain.dev/ (Chromiumブラウザは直接フォルダアクセスが可能ですが、FirefoxやSafariは仮想ファイルシステムにフォールバックします)
または、セルフホスティング/貢献のために: https://github.com/swimmingbrain/texbrain (MITライセンス、pdfTeXエンジンはEPL 2.0 / GPL 2.0で、THIRD_PARTY_LICENSESファイルに記載されています)。
私が最も誇りに思っているのは、パッケージ読み込みの部分です。エンジン自体はわずか1.8 MBです。持っていないファイルを要求すると、サービスワーカーがリクエストをインターセプトし、まずCache Storageを通じて解決し、次に小さなバンドルされたサブセット、次にjsDelivrにミラーリングされたTeX Liveツリー、そして最後の手段としてSwiftLaTeXスタイルのサーバーを通じて解決します。各ファイルは最大でも一度しか取得されず、最初のコンパイルが成功した後、コアサブセットはバックグラウンドでプリフェッチされるため、オフラインでの利用が実際に可能になります。ファイル名のみがネットワークを通過し、ドキュメントの内容が通過することはありません。
現時点では、pdfTeXのみをサポートしており(XeTeXやLuaTeXは不可)、そのためfontspecやpolyglossiaは動作しません。パッケージはエンジンとのフォーマットファイルの整合性を保つためにTeX Live 2020の時代にピン留めされており、エンジンにはまだbibtexやbiberがないため、これが最も粗い部分かもしれません。
これは、TeX Liveのインストールが常に可能とは限らないワークラップトップ、Chromebook、または大学のラボPCを使用している人々、そしてTeXのインストールを全く維持したくない人々にとって、良いソリューションになるはずです。もし既に気に入っているローカルセットアップがあるなら、それを使い続けてください。これは必ずしもそれを置き換えるものとして考えられているわけではありません。
過去数ヶ月で、すでに数人が自分の論文に使用しており、彼らのバグレポート(私が自分で気づくことはなかったでしょう)が、夏の作業の大部分を占めました。最初の外部PRも最近着陸したので、もし何かコンパイルできない場合は、パッケージ名やバグそのものに関する問題が、私に送ってくれる最も役立つものです!