Typst を試す・学ぶための記事

目次

2023年に発表された組版ソフト typst が使いやすく楽しそうである。これを試す・学ぶための記事をひとまずまとめた。まだ日が浅いため、これからも詳しい記事が増えるだろう。

インストールが易しいこと・原稿を書くとリアルタイムでプレビューされること・短縮記法(>= で ≧ と入力できる、など)が使えることなどがよく挙げられる利点である。

個人的な typst と LaTeX の比較については、私個人の選択で述べた。

Typst と LaTeX

出力とソースコード

1週間ほど試し、LaTeX で作っていた文書と似たようなことが typst でできるかも確かめた。細かな部分に粗はあるが、たとえば講義資料(授業プリント)を作るなどにあたっては十分な質であろう。

高等学校教員における typst の利点

高等学校数学科教員としての立場からは、原稿を書くとリアルタイムでプレビューされることが大きいだろう。

論文・書籍・大学などと異なり、その場で1枚ずつ配ることや読み手のモチベーションが比較的低いと考えねばならないことなどから、教材を1枚に見やすく収めるために時間をかけざるを得ない。たとえば、文末表現を見直して1行を削ったり、行送りを少し縮めて収めたりといった作業では、微調整のたびにタイプセット(コンパイル)を行わねばならない。こうした際、リアルタイムプレビューの恩恵は大きい。

一方、LaTeX にも安定感・コミュニティの大きさ・既存のパッケージたちによる多彩な表現などの多くのメリットがある。さらに、これまでの原稿も LaTeX で残っている。これらを考えると、乗り換えるとすれば大きな決断であることは確かである。

個人的な typst と LaTeX の比較については、私個人の選択で述べた。

展望

Typst はまだ若く、LaTeX にある多くの拡張がまだ見当たらないようである(2024-11-03 時点、この記事よりも後に作られる可能性があるので、調べることを勧める)。

Typst は若いため、プロジェクトが頓挫してしまう可能性も指摘されている。

背景

Typst は、2023年にパブリックベータ(まだこれから破壊的変更があるかもしれない)が公開されたオープンソースの組版ソフトウェアである。記法の易しさとタイプセットの速さから話題となっている。

Typst はパブリックベータであることからわかるように発展途上である。私もまだ使いこなすには至っていない。しかし、少し遊んだだけでも、主な執筆環境にできるのではという期待が持てた。LaTeX と比べコンパイルが圧倒的に早いため、仕事として資料を作るにあたっては、失う時間がかなり少なく済むのではないかと思っている。

ただし、typst は LaTeX とはコマンド体系が異なり、原稿の互換性もない。LaTeX は Knuth が心ゆくまで組版を整えるために作られており、かなりのことができる。Typst は LaTeX の難しさを避けるために作られたところもあり、今のところ満ち足りるまで細かく触れるわけではなさそうである。これらを踏まえ、教材作りのためにこれからどちらを使ってゆくかはよく考えねばならないだろう。

なお、ChatGPT もまだ typst をよくわかっていないようで、聞いてみても LaTeX の記法と混じったものが帰ってくる。日本語で問い合わせたので、英語で尋ねれば様子は異なる可能性もある。

紹介

Typst を導入するか悩んでいるようなら、これらの記事を読んでみられたい。

新規導入

Typst をローカル環境で使うにあたっては、Visual Studio Code における Tinymist Typsr の評判がよい。私が試したのはこの環境のみだが、不満はない。インストールには次の記事がわかりやすい。

ドキュメント

投稿サイトカテゴリ

開発に役立つ記事

Tips

  • https://zenn.dev/mkpoli/articles/7e54c1c780ff43
    • mkpolimkpoli
    • Typstの日本語Lipsumパッケージを作ってみた件
    • Zenn
    • 参照 2024-10-25
    • 日本語版 Lipsum である。体裁を作るにあたってきわめて有用である。また、パッケージを公開するまでの手続きも述べられている。
  • https://zenn.dev/mkpoli/articles/34a5ea47468979
    • mkpolimkpoli
    • Typst最初の段落の字下げの調整方法
    • Zenn
    • 参照 2024-10-25
    • 「章段の最初の段落がインデントされない」ことへのアドホックな修正である。

解答欄

書きかた

私個人の選択

2024-11-05 時点

私は高等学校教員としての教材づくりの特性から、次のように考えている。

  • 同じ授業を持ったときに資料を使いまわすことは多いが、資料の番号をはじめとして少し手直しをすることはよくある。
  • Typst や LaTeX によらない方法(いわゆる講義ノートなど)で準備をするよりも、typst や LaTeX で準備をするほうが、初めて授業をする(これまでの蓄積がない)単元を除けばいずれであれ速くなる。
  • Typst と LaTeX を比べると、体感ではあるが typst で原稿を書くほうが速い(とくに1枚に収めるとき)。
  • Typst が使えなくなったとしても、原稿がテキストベースであること、これまでの LaTeX テンプレートと似た作りにしたことから、授業準備の一環として(ある程度手作業で)原稿を typst から LaTeX に書きなおすことは現実的な作業に収まると考えている。
  • Typst と LaTeX で類似の体裁を実現しておけば、typst が頓挫したとしても、必要とあらば少ない手間で LaTeX でタイプセットし直すことができる。体裁が同じであるため、行送りなどが崩れたとしてもわずかであり、行間の少々の調整で事足りるはずである。

したがって、LaTeX に戻ることができるようにしたうえで typst を中心に原稿を書くこととした。

2024-11-18 時点

2024-11-05 に、typst を中心に原稿を書いてみようと考えた。2週間触り、いくつかの原稿を書いてみた。その結果、次のように感じている。

なお、これは高等学校数学科教員としての資料作りを考えたものである。枚数が自由であれば、1枚に収めるために行送りを調整するようなことは少ないかもしれない。また、論文や学術書であれば引用の相互参照や参考文献リストなどの重要性が増すだろう。それぞれの使いかたに応じて検討されたい。

  • 仕上がりが標準的なものでよければ、typst を使うほうが執筆にかかる時間は短くなりそうである。ただし、typst のほうがつねにストレスが少ないかというと、必ずしもそうではない。
    • Typst はプレビューが速いので、資料を1枚に収めるための微調整や図を配置するための微調整などがかなり楽になる。
    • Typst はリアルタイムにプレビューするため、「今書いた部分でエラーが起きた」ということが直ちにわかる。
    • Typst はリアルタイムにプレビューするため、重い処理を行ったときには入力に引っ掛かりが生じる。私の体験では、今のところページの終盤(書かれたものの高さなどによって、ページを跨ぐかどうかを見張っているためと推測)を書いているときに多い。
    • LaTeX における「1枚に収めるとき、タイプセットを行い、処理が終わる5秒程度待たされ、様子を見ることを繰り返す」「エラーの箇所がわかりにくい」といった手間がかかる。
    • Typst の引っかかりと LaTeX の待ちについて、どちらを重く見るかは好みだろう。私は、まさに頭をつかっているときに邪魔が入ることのほうが嫌なので、この点では LaTeX のほうがよい。
    • この検討をするまで LaTeX の原稿は TeXworks で書いていた。Typst のために Visual Studio Code を導入したが、これによって LaTeX の執筆環境もかなり向上した。2024-11-05 にはこの点はまだ考えられていなかった。
    • LaTeX を VSCode で処理すると、保存するたびにタイプセットを行うようにできる。講義資料程度であれば、このようにして早めはやめに配置やエラーに気づくようにすれば、執筆のストレスはかなり減らせるだろう。
  • Typst では、現時点でできないことが多い(本質的にはできるかもしれないが簡単にはできなかったことと、仕様の都合から原理的にできないことを峻別することは難しいので、これらは包括して「できないこと」とした)。自分にとって大切なところが「できないこと」に入ってしまうと、typst を選ぶことは難しい。
    • そもそも、執筆にかかる時間が短いとは、執筆にあたって書きつけるべきことが少ないことと相関がある。そして、仕上げるにあたって書くべきことが少ないということは、表現力が下がることとも相関がある。Markdown を思い浮かべるとわかりやすい。
    • ただし、表現力が下がることは、見映えを気にせず中身に力を注げることと言い換えることもできる。このあたりは好みの問題である。
  • Typst では、本文を書くにあたってはマークアップによる平易な記法を実現しているが、デザインを触ろうと思えばプログラミングの発想が求められる。一方 LaTeX では、先人による数多くのパッケージや知識によって、ある程度のことができる。
    • 私自身はプログラミングには詳しくないため、見映えの操作は LaTeX のほうが親しみやすかった。
    • Typst のほうが多くの言語からみて標準的である一方 LaTeX は特殊なため、学習コストが大きいと言うこともできよう。ただし、この点について私は詳しくない。
    • LaTeX における「先人による数多くのパッケージや知識によって、ある程度のことができる」を便利ととるか望ましくないととるかは考えかたの問題である。しかし、ここでは講義資料を作る目的が果たせればよいものとして考えている。Typst では、現時点では学校向けのテンプレートは見当たらないため、ある程度は自作することが求められる状態にある。

LaTeX で実現できており、typst では実現できていないものについて、次によくまとめられている。

最後に、私個人にとって、typst で困っている大きな点を挙げておく。

  • ソースコード中に改行を入れると(和文の途中で改行すると)、コメントアウトしていても半角スペースが入ってしまう。
  • (地の文では実現できるのだが)数式内で、和文と欧文・数式のフォントサイズを変えられない。
  • 和文として書きたい記号の一部が欧文として処理されてしまい、フォントやサイズが合わない。
  • 句読点をぶら下げられない。
  • 傍注が扱えない。教員用として傍注にメモを入れ、非表示にして印刷しているため、ここは欠かせない。
  • PDF による図が埋め込めない。emath で描いた図をそのまま取り込むなどにあたって不便がある。

「読む気を持っている読者へ向けて、さしあたり困らない資料を少ない負担で作る」には、typst が効率的だろう。一方で、「自分なりの使いかたや生徒への効果を考えた細かな要望に応えてほしい」のであれば、現時点では LaTeX のほうが満足できそうだ。Typst は、おおらかに書く代わりに「面倒」から解放される、という効果が大きいのだろう。

私の個人的な話になるが、「LaTeX の思想」と「typst の思想」では、どうやら前者に親和性があるようだ。少しの手間で済むようなら、思い通りに制御したいという気持ちがある。

以上のことから、私としては、typst の進化に注目しつつも、当面の間は LaTeX で原稿を書こうと考えている。

改訂

  • 改訂: 2024-11-18
  • 改訂: 2024-11-18
    • 展望」のうち、個人的な LaTeX と typst の比較を「私個人の選択」へ移した。また、さまざまに試し・考えたところ、ひとまず移行は様子見することとした。
  • 改訂: 2024-11-05
    • 出力」を「出力とソースコード」に変え、typst と LaTeX それぞれのソースを載せた。
    • 展望」において LaTeX によるフォールバックに言及した。
  • 改訂: 2024-10-29
  • 改訂: 2024-10-29
    • 「紹介・新規導入」を「紹介」と「新規導入」に分けた。
    • LaTeX と typst の出力例を載せた。
    • リンクを加えた。