標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

LaTeX風新組版システム typst をちょっぴり試してみた

(La)?TeX のような組版システムに、新しい処理系が現れたという記事を最近よく目にするようになった。

LaTeX は学生時代に卒論・修論を書く際にとてもお世話になったツールで、肌にあってはいたが、社会人になってからは使う機会もなくなっていた1。今後も使う機会もないのだが気になっていたし、インストールも簡単と評判なのでちょっぴり試してみた。2

LaTeX はすばらしいシステムではあったが

いろいろと問題点も散見されていた。

(※ もう20世紀の記憶を頼りに書いているところもあるので、最近はいろいろ状況が変わっているだろう。おそらく、今の LaTeX はそんなことないよ!というツッコミが入りそうだが、まぁ、ご容赦いただきたい)

  • Windows ではインストールがたいへん
    UNIX的環境を大前提にしているところがあって、昔はながーいインストール手順書を見ながら、unzip をくりかえしていたものだった。近年は Linux 環境ごと ISO イメージで配布されたり、GUIインストーラーも登場したり、だいぶと状況は改善されたようだが…
  • 将来が不安
    詳しくは「pLaTeX が本格的にやばいかもという話 - Acetaminophen’s diary」という記事で述べられているが、日本語文章を扱えなくなるような改造が進められているらしい
  • 画像、図面の引用がちょっとたいへん
    dvi レベルで eps(Encupsled Postscript) を組み込んだり、フォントを微妙にならべて無理矢理グラフを作ったりといったことをしていた記憶がある。

そもそも何十年も競合が生れないという自体もあまりよいことではない。それゆえ、このあたりで「LaTeX と思想は似ているけれども、違う処理系」が登場してもよいのではないかとは思っていた。

参考文献

Typst という名前を初めて見たのは zenn.dev の Rust 系の記事だったような気がする。

インストール

Windows でのインストール方法はいろいろ紹介されている。

  • cargo install --git https://github.com/typst/typst 3
  • winget install --id Typst.Typst 4

自分の環境には Rust は既に入っているのだが、パッケージマネージャとしては scoop に慣れていたため、自分は scoop install typst で導入した。

おためし

次のような内容のファイル j.typ を UTF8 で作成した。

#set text(font: "Hiragino Kaku Gothic Pro")
#set heading(numbering: "1.1")

= セクション
== サブセクション

typst.exe compile j.typ を実行するだけで j.pdf という PDF ファイルが作成された。プレビューもブラウザで Ok だ。簡単すぎる。dviout とか xdvi とはなんだったのだ。

細かい文法の解説は前述の記事に記されているので、ここでは書かないが、2点だけ

  • デフォルトでは中国向けのフォントが使われてしまうので、日本語向けにはフォント名を明示した方がよい
  • LaTeX 風の番号付きの見出しもデフォルトではないので、明示が必要

見出しの番号のフォントが少し小さいのが気になったが、まぁ、なんとかする方法もあるだろう。概ね、よさそうだ。

余談

UNIX環境に依存しすぎるシステムといえば、LaTeX の他に git もあった。こちらも Windows 環境で動作させるのに MSYS 環境をまるごと同梱するという力技で解決していた。

git や LaTeXUNIX 環境に過度に依存するのは昔のC言語のライブラリの貧弱さに起因するので、近年のライブラリリッチな言語で作り直せば UNIX 以外の世界でも導入しやすい処理系になるというわけだ。

そして、git の次になりそうな分散バージョン管理システム jj組版システム typst が登場した。ともに Rust 製というところが面白い。


  1. 会社ではドキュメントを作成・編集するのは自分だけではないため、みんなが使うツールを使わねばならない。
  2. 年寄はブックマークするだけでは速やかに忘れるのだ。ちゃんとリポートを書かないとね
  3. https://zenn.dev/yuhi_ut/articles/how2start-typst#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86
  4. https://github.com/typst/typst#installation