世界を動かす技術を、日本語で。

Typstで博士論文を書きました

2025年6月23日原文(fransskarman.com)

概要

  • Typst で博士論文を執筆した体験談
  • Typst の利点と欠点を詳細に比較
  • LaTeX との違いや変換時の問題点
  • テンプレート作成・エコシステム の現状
  • 今後の推奨・使い分け についての所感

Typstで博士論文を書いた話

  • 博士論文を Typst で執筆、物理的な印刷待ちの間に体験をまとめた内容
  • TypstLaTeX の代替を目指す現代的な組版言語
  • 言語仕様は Markdown動的型付きRust のハイブリッド
  • 日常的な執筆はMarkdownライクで快適、スクリプト機能も強力
  • コードと文章の往復が容易、データ処理も一貫して行える

Typstの良かった点

  • コンパイル速度

    • LaTeXのような 90秒 待ちがなく、 Typst は小中規模なら即時プレビュー
    • 150ページ超でも クリーンビルド15秒程度、インクリメンタル時はほぼ瞬時
    • 大幅なレイアウト変更でも 10秒以内 で完了、作業効率向上
  • 言語仕様

    • 一貫性のある 動的型付き言語、Rust経験者には特に馴染みやすい
    • LaTeXのようなパッケージごとの文法差異がない
    • TOMLファイルの データ自動読み込み・図生成 も容易
    • 依存管理やLSP対応など 現代的開発ツール も充実
  • レイアウト調整

    • テンプレート編集が直感的、LaTeXのテンプレート改変よりも圧倒的に容易
    • 自由度が高く、思い通りのデザインを実現可能
  • シンタックスハイライト

    • コード掲載時の ハイライト精度 が高い
    • TextMateグラマー対応だが、独自のshowルール+正規表現で柔軟に対応
    • 特定言語の構文解析もTypst内で実装可能
  • エラーメッセージ

    • LaTeX特有の「Missing $ inserted!」のような意味不明エラーがない
    • 問題箇所を正確に指摘し、デバッグが容易

Typstの不満点・課題

  • 文献管理

    • 1ドキュメント1文献ファイル 制限、章ごとの複数文献リスト不可
    • Bibtexの変数利用や分割管理ができず、Makefileで結合する必要
    • パッケージ「alexandria」で複数文献対応は可能だが自動化は不十分
    • 書誌スタイル変換(例:タイトルのsentence case化)が不完全
    • BibtexフィールドのCSL変換が不透明、@TechReport等で情報欠落も発生
    • 細かな不具合が積み重なる「千の紙切れによる死」状態
  • エラーメッセージの限界

    • 複雑なパッケージやshowルール利用時にはエラー箇所が特定しづらい
    • 長いトレースバックが欲しい場面が多い
    • 「Layout did not converge in 5 attempts」等の警告はデバッグ困難
  • LaTeXとの互換性・変換

    • 学術界では依然として LaTeX標準
    • 既存論文のTypst変換はPandocでほぼ自動化可能
    • 新規論文はTypstで執筆→PDF提出→最終稿は独自ツールでLaTeX変換
    • 変換時に\includepdfを多用するため、出版社対応が懸念点
    • コラボ時は周囲にTypst習得を強いる必要あり
  • エコシステムの未成熟

    • Typst用テンプレートは自作が必要な場合が多い
    • 学会・ジャーナル用テンプレートも未完成や不備が散見
    • IEEEテンプレートは会議用のみ、LLNCSテンプレートもマージン誤り

Typstを博士論文に使うべきか

  • プログラミングやカスタマイズが好きな人 には強く推奨
  • 細部まで調整でき、作業効率も高い
  • 問題解決やテンプレート作成も楽しめる人向け
  • すぐに使える完成度 を求める場合は現時点ではLaTeXが無難
  • Typstは小規模文書や実験用途で導入し、大規模論文は今後に期待

まとめ

  • Typstは 柔軟性と現代的な開発体験 を提供
  • ただし 文献管理・エコシステム には未熟な部分が残る
  • LaTeXとの互換性・普及度 も課題
  • 将来的には大規模論文でも主流になり得る可能性
  • 現状は 用途や好みに応じて使い分け が最適

Hackerたちの意見

Typstはすごく期待できるね。特にIEEEのような共通テンプレートがあって、LaTeXと同じ内容が作れるのがいいよね。LaTeXで一番イライラするのはツールだな。前回の論文では、普通は動くmakefileを使ったんだけど、うまくいかないときは2回実行すれば解決したりしてた。たまにgit clean -xdfを実行しないといけなくて、その後はうまくいったり。何が起こってたのか全然わからないし、世の中のmakefileは異常に複雑で、特定のエラーが出たら出力を解析して同じコマンドを再実行するだけみたい。

狂気の定義は、同じことを二度やって違う結果を期待することだよね。偶然にも、これがLaTeXをコンパイルする基本的な方法なんだ。

完璧な解決策ではないけど、もしかしたらもうMakefileの中で使ってるかもしれないね。でも、まだ知らない人のために言うと、Latexmkっていうのがあって、これが面倒なことを自動化してくれるんだ。少なくともDebianではtexlive-fullに含まれてると思うよ。それに、-outdirみたいな便利なフラグもあって、LaTeXの中間ビルドファイルを別のディレクトリに送れるから、gitignoreしやすいんだ。 https://mgeier.github.io/latexmk.html#running-latexmk

以前は理解してたと思うけど、真剣なLaTeXを書くのが久しぶりだから、もうわからないな。10年以上前の自分の_quick-build-latex_スクリプトにこんなのがあったよ:if [ -z "$(find . -name "*.bib" -print0)" ]; then # TOCビルドなどのために2回実行 pdflatex -interaction=nonstopmode "$SOURCE_FILE" && \ pdflatex -interaction=nonstopmode "$SOURCE_FILE" else pdflatex -interaction=nonstopmode "$SOURCE_FILE" && \ bibtex "$SOURCE_FILE" && \ pdflatex -interaction=nonstopmode "$SOURCE_FILE" && \ pdflatex -interaction=nonstopmode "$SOURCE_FILE" fi だから、もしbibtexを使ってるなら3回実行する必要があるけど、そうじゃなければ2回だけでいいのかな?あの頃が終わってよかったな。

最近はTectonicを使ってLaTeXソースをコンパイルしてるよ。自動的に何回もコンパイルする必要があるケースを処理してくれるから便利。

徐々にTypstに移行してるけど、すごく新鮮な気分だよ。コンパイルもめちゃくちゃ早いし。多分、一番難しいのは数学記法の文法を再学習することかな。Typstにはこの分野で面白い意見があるね。

mitexも選択肢だね。今の時点で別の記法を学ぶなんて無理だわ。

Typstは見た目がいいけど、実はLaTeXに戻るつもり。VS CodeでClaude Codeと組み合わせて使うつもり。LaTeXからはしばらく離れてた(博士号を取得してから10年以上経ってる)。TikZのコマンドは暗記してたし、洗練された前文も書いてた(たくさんの\newcommandを使ってた)。LaTeXの数式表記はまだ覚えてるけど(筋肉記憶に入ってるし、Markdownでも使われてる)、他のことはすっかり忘れちゃった。Claude Codeは驚くことに、そういう他のことも全部知ってる。やりたいことを言えば、95%は1〜2回でできちゃう。しかも、エラーメッセージも理解してくれる。LaTeXで一番面倒なのは、何が間違ったのかを見つけることだけど、Claudeだとそれがそんなに大きな問題じゃなくなる。

なんでCSの博士課程の候補者は組版にそんなに魅了されるんだろう?好きなことに夢中になるのはいいけど、誰かがLaTeXの話を始めて、マクロに何ヶ月もかけたとか言い出すと、「またLaTeXの罠にハマった不運な犠牲者が出たな」と思っちゃう。まるで、先延ばしにする学生を餌にするアントライオンみたいだね。

オーストラリアの共同医学-CSの名誉論文(1年間の研究プロジェクト)をWordで書いたんだけど、医学の指導教官は満足してくれた。でも、CSの指導教官は、組版が気に入らないからLaTeXで再フォーマットするように言ってきた。正直、彼の言うことも分かる。'TeXで書いた方が見た目が全然良かったから。でも、それは多分、学習した好みなんだよね。要するに、文化の問題だね。

LaTeXは、私たちに正当性を感じさせてくれるからだと思う。(だからこそ、LaTeXの文書では、文章よりも数式表記が過剰になりがちなんだよね。)教授やその分野の著名人が作ったような文書ができるから、Wordの数式エディタで書いたら、あんまり真剣に見えないんだよね。初めてAldus PageMakerでデザインしたニュースレターをレーザープリンターで印刷したときの喜びと同じだ。まだティーンエイジャーだったけど、「プロ」になった気がした。

LaTeXの組版は解決済みの問題だよ。MemoirやClassic Thesisを使って、microtypeを組み合わせれば、素晴らしい結果が得られるし、調整に時間をかける必要もない。Typstは面白いけど、microtypeが提供するすべてのマイクロタイポグラフィ機能にはまだ対応してない。個人的には、それが大きな違いを生むと思う。

Hacker Newsで議論の続きを見る