← ブログ一覧
フルスタック10分

Typstとは?LaTeXの代わりになる新しい組版システムを実際にインストールして試した

  • #Typst
  • #組版
  • #OSS

LaTeXは強力だが学習コストが高く、コンパイルも決して速くはありません。「もっと速くて、エラーメッセージも分かりやすい組版システムが欲しい」という要望に応える形で開発が続くオープンソースのツールがTypstです。公式リポジトリ(typst/typst)のREADMEは、自らを「a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use」と説明しています。

この記事は、公式GitHubリポジトリ(README・LICENSE・リリースノート・CHANGELOG)を一次情報としています。実際にこのクラウド環境へ公式の手順どおりcargo install --locked typst-cliでインストールし、サンプル文書のPDF/SVGコンパイル、watchによるインクリメンタルコンパイル、実験的なHTML出力までを実際に動かして確認しました。一方で、このクラウド環境のネットワークポリシー上、コミュニティパッケージを配布するpackages.typst.orgと、Webエディタを提供するtypst.appへの接続はいずれもブロックされており、パッケージ機能の実際の動作とWeb版の挙動はこの記事では確認できていません。本文ではその区別を明記します。

Typstとは:コンパイラ1本で完結する新しい組版システム

READMEによると、TypstはRustで書かれた単一のコンパイラが構文解析・レイアウト・レンダリングまでをすべて担う組版システムです。LaTeXのように外部の組版エンジン(TeX)に依存せず、typstという1つのバイナリで.typファイルから直接PDFを生成します。ライセンスはApache License 2.0で、リポジトリにはコンパイラ本体とCLIが含まれています。README本文は「Web版エディタが欲しい場合はtypst.appへ、IDE的な補完機能が欲しい場合はコミュニティ製の言語サーバーTinymistへ」という形で役割を切り分けている、と書かれています。

実際にcargo install --locked typst-cliでインストールした

READMEが案内するインストール方法は複数あります。GitHub Releasesから実行ファイルを直接ダウンロードしてPATHに置く方法、Homebrew(macOS)・winget(Windows)・各種Linuxディストリビューションのパッケージを使う方法(ただしREADMEは「最新版より古い場合がある」と明記)、Nix(nix-shell -p typst)、Dockerイメージ(ghcr.io/typst/typst)、そしてCargoでソースからビルドする方法です。このクラウド環境にはRustのツールチェインがすでに入っていたため、READMEが案内する次のコマンドでそのままインストールしました。

cargo install --locked typst-cli

ビルドには3分半ほどかかりましたが、エラーなく完了しました。インストール後にtypst --versionを実行すると、次のとおり返ってきます(実際の出力)。

typst 0.15.1 (unknown commit)

GitHub Releasesを確認すると、v0.15.1は2026年7月17日公開で、本稿執筆時点でもこれが最新の安定版でした。

サンプル文書を実際にPDF・SVGへコンパイルする

次のような、見出し・リスト・数式・Typst独自のスクリプト機能(#letで関数を定義して埋め込む)を混ぜた短い.typファイルを用意しました。

#set page(width: 10cm, height: auto, margin: 1cm)

= Hello Typst

This is a *test* document compiled with Typst.

- incremental compilation
- markup-based syntax
- built-in math: $ x^2 + y^2 = z^2 $

#let fib(n) = if n <= 1 { n } else { fib(n - 1) + fib(n - 2) }
Fibonacci(10) = #fib(10)

これをtypst compile doc.typで変換すると、追加の設定なしでそのままdoc.pdf(16,236バイト)が生成されました。見出しの自動フォーマットや数式のレンダリング、スクリプトで定義したフィボナッチ関数の呼び出し結果(Fibonacci(10) = 55)まで、LaTeXのプリアンブルに相当する設定をほとんど書かずに反映されています。出力形式はオプション1つで切り替えられ、typst compile --format svg doc.typ out.svgとすればSVGも問題なく出力できました。

watchコマンドで体感するインクリメンタルコンパイル

TypstはREADMEで「インクリメンタルコンパイル」を設計上の重視点として挙げています。実際にtypst watch doc.typを実行してファイルを保存すると、変更を検知して自動的に再コンパイルされ、ターミナルには次のように表示されました(実際の出力)。

watching doc.typ
writing to doc.pdf

[20:53:35] compiling ...

watching doc.typ
writing to doc.pdf

[20:53:35] compiled successfully in 6.61 ms

ごく短い文書での計測なので一般化はできませんが、再コンパイルが6.61msで終わっている点は、LaTeXの「保存してからPDFが出てくるまで数秒待つ」体感とは明確に違う感触でした。

実験的なHTML出力:--features htmlを明示しないと動かない

TypstはPDF以外にHTML出力も開発中です。README本文はAcknowledgementsの中で、HTML出力がNLnet財団の助成を受けた開発であることに触れています。実際に試すと、何も指定せずにtypst compile --format html doc.typ out.htmlを実行するとこうなりました(実際の出力)。

error: html export is only available when `--features html` is passed
 = hint: html export is under active development and incomplete
 = hint: see https://github.com/typst/typst/issues/5512 for more information

--features htmlを付けて実行すると変換自体は成功しますが、次の警告が表示されます(実際の出力)。

warning: html export is under active development and incomplete
 = hint: its behaviour may change at any time
 = hint: do not rely on this feature for production use cases
 = hint: see https://github.com/typst/typst/issues/5512 for more information

warning: page set rule was ignored during HTML export

2つ目の警告は、サンプル文書内で指定していた#set page(width: 10cm, ...)というページサイズの設定が、HTML出力では無視されたことを示しています。HTMLはPDFのような固定サイズの「ページ」という概念を持たないため、紙面向けの設定がそのままでは意味を持たない、という構造上の違いが実際の警告として表に出てきた格好です。

typst infoで見えた実験的フラグとパッケージの保存先

typst infoを実行すると、ビルド設定・フォント・パッケージの保存先に加えて、実験的機能(Features)の一覧が表示されます(実際の出力)。

Features
  html        off (Experimental HTML export)
  bundle      off (Experimental bundle export)
  a11y-extras off (Experimental accessibility additions)

Packages
  Package path       /root/.local/share/typst/packages
  Package cache path /root/.cache/typst/packages

HTML出力以外にも、「bundle」(実験的なバンドル出力)と「a11y-extras」(アクセシビリティ関連の追加機能)という2つの実験的フラグが既定で無効化されていることが確認できました。いずれもREADMEやリリースノートの目立つ場所には書かれておらず、CLIを実際に動かして初めて気づいた挙動です。また、Packagesの項目からは、コミュニティがテンプレートやパッケージを公開する場Typst Universeからダウンロードしたパッケージが~/.cache/typst/packagesにキャッシュされる設計になっていることが分かります。実際に#import "@preview/cetz:0.3.1"でパッケージを読み込もうとしたところ、このクラウド環境のネットワークポリシーが配布元のpackages.typst.orgへの接続を許可していないため、「Proxy failed to connect」のエラーで失敗しました。パッケージの取得自体がオンライン前提の設計であることは確認できましたが、パッケージが実際に動く様子はこの検証環境では確認できていません。

最新リリースv0.15.1(2026年7月17日)の変更点

GitHub Releasesのv0.15.1によると、直近のリリースでは次のような修正が入っています。

  • 数式用のComputer Modernフォントを8.1.1に更新し、スタイリスティックセット6専用だった旧字形を使っていた標準体の数式フォントの不具合を修正
  • lrや対になる区切り記号内でのアラインメントポイント、op要素の縦位置ズレという2件のリグレッションを修正
  • number-alignやmarker-alignに縦方向の要素を含むアラインメントを指定した際、複数ページに渡るリストに隙間が出る不具合を修正
  • html.frame要素から生成されるインラインSVGがpretty printingを尊重するよう修正
  • watchのバンドルサーバーがJSONなどより多くのファイル種別にContent-Typeヘッダーを付与するよう改善
  • typst evalが式の評価に失敗した場合、終了コード1を返すよう修正

向いている場面・まだ注意が必要な場面

  • 向いている:LaTeXの文法や長いコンパイル時間に疲れていて、Markdownに近い感覚で書ける組版システムを試したい場合。コンパイラが単一バイナリで完結しているため、TeX Liveのような大きなディストリビューションを入れずに始められます
  • まだ注意が必要:HTML出力・バンドル出力・アクセシビリティ拡張はいずれも実験的機能で、typst infoでも「off」が既定です。READMEもLaTeXに比べて専門分野向けパッケージの数はまだ少ないと述べており、学術分野固有の複雑な組版(特殊な引用形式や専門分野向けテンプレートなど)では、必要なパッケージがTypst Universeに揃っているか事前に確認したほうが安全そうです

この記事で確認できなかったこと

繰り返しになりますが、このクラウド環境のネットワークポリシー上、コミュニティパッケージの配布元packages.typst.orgとWebエディタtypst.appへの接続がブロックされているため、Typst Universe上の実際のパッケージ(図形描画ライブラリなど)を使った組版や、Web版エディタの実際の操作感・料金プランはこの記事では確認できていません。これらは公式サイトの記述(検索結果経由で確認できた範囲)に基づく参考情報であり、本文中で「実際の出力」と明記した部分のみが、このクラウド環境でtypst-cli 0.15.1を使って実際に得た結果です。

まとめ

Typstは、Rust製の単一コンパイラで構文解析からPDF生成までを完結させる、LaTeXの代替を目指した新しい組版システムです。実際にこのクラウド環境へ公式手順のcargo install --locked typst-cliでインストールし、バージョン0.15.1が問題なく導入されたこと、サンプル文書がPDF・SVGへ正しくコンパイルされること、watchによるインクリメンタルコンパイルが数msで完了することを確認できました。一方で、HTML出力・バンドル出力・アクセシビリティ拡張はtypst infoが示すとおりまだ実験的機能であり、コミュニティパッケージやWeb版エディタの挙動はこの検証環境のネットワーク制限により確認できていません。導入を検討する際は、自分が使いたい機能やパッケージがどの成熟度にあるか、公式ドキュメントで確認しておくのが安全です。

参考にした一次情報

まずは、やりたいことを聞かせてください

「何から手をつければいいか分からない」段階でも大丈夫です。 ご相談・お見積りは無料。碧南近郊なら直接伺います。