LaTeX と typst の比較
目次
高校数学資料(授業プリント)をコンピュータで作るにあたっては,数式や図表を扱えるソフトウェアを使わねばならない。 オープンソースソフトウェアの中では,とくに LaTeX と typst が知られている(ほかにも SATySFi が知られるが,高校教員が実地で使うにはまだ情報が少なかろう)。 ここでは,組版ソフトウェアについての知識を前提とし,主に高校数学資料を作る観点から,LaTeX と typst それぞれの特徴を考える。
どちらを使おうか,あるいはそもそもオープンソースの組版ソフトウェアではなく WYSIWYG な Microsoft Word や 数研出版 Studyaid D.B. はどうか,と考えるにあたっては次を参照されたい。
背景
2023年まで,数学における論文・資料執筆ソフトウェアといえばまずは LaTeX であった(標準という意味では2024年末の今もそうである)。LaTeX は1984年に初版ができ,長年にわたり使われる中で多くの機能や知見が蓄積されている。
Typst は,2023年にパブリックベータ(まだこれから破壊的変更があるかもしれない)が公開されたオープンソースの組版ソフトウェアである。その記法の易しさとタイプセットの速さから話題となり,少しずつ知見が蓄積されつつある。
LaTeX で仕上げられた文書は美しい。 数学の教員免許を持っていれば,おそらく大学のレポートなどで使ったことがあるだろう。 しかし,LaTeX は論文や書籍のために整えられており,中等教育の教材のためにはやや大振りである。
そこで,中等教育での教材(授業プリント)作りに適した出力が手軽にできるテンプレートを整えることとした。
よければ,次も参照されたい。
- 数学教材作成ソフトに LaTeX / typst を選ぶ理由
- LaTeX と typst の比較(同じ趣旨の typst 版テンプレートもある)
Typst は,速い処理(コンパイル/タイプセット)と LaTeX に近い仕上がりを両立する。 これは,日々さまざまな業務の合間に教材を書かねばならない教員にとってはたいへんありがたい。 しかし,typst は論文や書籍のために整えられており,中等教育の教材のためにはやや大振りである。
そこで,中等教育での教材(授業プリント)作りに適した出力が手軽にできるテンプレートを整えることとした。
インストールが易しいこと・原稿を書くとリアルタイムでプレビューされること・短縮記法(>= で ≧ と入力できる,など)が使えることなどがよく挙げられる利点である。
背景
Typst は,2023年にパブリックベータ(まだこれから破壊的変更があるかもしれない)が公開されたオープンソースの組版ソフトウェアである。記法の易しさとタイプセットの速さから話題となっている。
Typst はパブリックベータであることからわかるように発展途上である。私もまだ使いこなすには至っていない。しかし,少し遊んだだけでも,主な執筆環境にできるのではという期待が持てた。LaTeX と比べコンパイルが圧倒的に早いため,仕事として資料を作るにあたっては,失う時間がかなり少なく済むのではないかと思っている。
ただし,typst は LaTeX とはコマンド体系が異なり,原稿の互換性もない。LaTeX は Knuth が心ゆくまで組版を整えるために作られており,かなりのことができる。Typst は LaTeX の難しさを避けるために作られたところもあり,今のところ満ち足りるまで細かく触れるわけではなさそうである。これらを踏まえ,教材作りのためにこれからどちらを使ってゆくかはよく考えねばならないだろう。
LaTeX と Typst
私はこれまで,高校数学における教材を LaTeX で作ってきた。数学教育界隈ではおそらく Studyaid D.B. が主流だが,プロプライエタリなソフトウェアであり,何らかの事情で Studyaid D.B. が使えない・使いにくい状況になったとき,失うものが大きい。そこで, オープンソースなソフトウェアであり,OS に依らず,自動化が図れ,仕上がりも美しい LaTeX を選んだ。
LaTeX にはいろいろとあるが,これから先を考えると pLaTeX / upLaTeX よりも LuaLaTeX を使うのがよいと考え,それらのためにテンプレートを用意した。ところが,望む体裁を整えるために処理が多くなり,もとより LuaLaTeX のタイプセットが遅いことも相まって,1枚の資料を作るために待たされる時間が長くなっていた。
Typst は,2023年にパブリックベータが公開されたオープンソースの組版ソフトウェアである。記法の易しさとタイプセットの速さから話題となっている。実際,入力とほぼ同時に処理が進んでゆき,待たされる時間がない。また,記法が易しく,入力そのものが少なくてすむ。また,それらの利点からユーザが増えており,将来も期待ができる。
教材づくりにおいては,ほかの業務との兼ねあいもあり,出版に堪える出力よりも短い時間でそれなりに完成することの価値が高い。Typst は執筆中のタイプセット待ち・エラー対応に優れるので,より向いているかもしれない。
仕上がりの比較
- LaTeX によるテンプレート (PDF)
- Typst によるテンプレート (PDF)
- このページで公開しているものによる。
- このテンプレートでできること (PDF)
- ダウンロードファイルにはソースコードも同梱している。
解決
Typst と LaTeX
出力とソースコード
1週間ほど試し,LaTeX で作っていた文書と似たようなことが typst でできるかも確かめた。細かな部分に粗はあるが,たとえば講義資料(授業プリント)を作るなどにあたっては十分な質であろう。
高等学校教員における typst の利点
高等学校数学科教員としての立場からは,原稿を書くとリアルタイムでプレビューされることが大きいだろう。
論文・書籍・大学などと異なり,その場で1枚ずつ配ることや読み手のモチベーションが比較的低いと考えねばならないことなどから,教材を1枚に見やすく収めるために時間をかけざるを得ない。たとえば,文末表現を見直して1行を削ったり,行送りを少し縮めて収めたりといった作業では,微調整のたびにタイプセット(コンパイル)を行わねばならない。こうした際,リアルタイムプレビューの恩恵は大きい。
一方,LaTeX にも安定感・コミュニティの大きさ・既存のパッケージたちによる多彩な表現などの多くのメリットがある。さらに,これまでの原稿も LaTeX で残っている。これらを考えると,乗り換えるとすれば大きな決断であることは確かである。
個人的な typst と LaTeX の比較については,私個人の選択で述べた。
補足
私個人の選択
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 では実現できていないものについて,次によくまとめられている。
- https://okumuralab.org/~okumura/misc/241111.html
- 奥村晴彦
- Typst入門
- 奥村研究室
- 参照 2024-11-18
- 「LaTeXと比べて未完成の部分」がわかりやすい。
最後に,私個人にとって,typst で困っている大きな点を挙げておく。
- ソースコード中に改行を入れると(和文の途中で改行すると),コメントアウトしていても半角スペースが入ってしまう。
- (地の文では実現できるのだが)数式内で,和文と欧文・数式のフォントサイズを変えられない。
- 和文として書きたい記号の一部が欧文として処理されてしまい,フォントやサイズが合わない。
- 句読点をぶら下げられない。
- 傍注が扱えない。教員用として傍注にメモを入れ,非表示にして印刷しているため,ここは欠かせない。
- PDF による図が埋め込めない。emath で描いた図をそのまま取り込むなどにあたって不便がある。
「読む気を持っている読者へ向けて,さしあたり困らない資料を少ない負担で作る」には,typst が効率的だろう。一方で,「自分なりの使いかたや生徒への効果を考えた細かな要望に応えてほしい」のであれば,現時点では LaTeX のほうが満足できそうだ。Typst は,おおらかに書く代わりに「面倒」から解放される,という効果が大きいのだろう。
私の個人的な話になるが,「LaTeX の思想」と「typst の思想」では,どうやら前者に親和性があるようだ。少しの手間で済むようなら,思い通りに制御したいという気持ちがある。
以上のことから,私としては,typst の進化に注目しつつも,当面の間は LaTeX で原稿を書こうと考えている。
2024-12-02 時点
何か意見が変わったわけではないが,LaTeX と typst を比べて思い立ったことを載せておく。
-
破線囲いにおいて,LaTeX では角に線が来るよう整えられるが,typst では角か否かに関わらず均等に線が引かれる。
-
LaTeX のほうがコマンドの記述量が多く,typst のほうが端的に書ける。一方,LaTeX はほとんどの記法が原則通りで,typst は覚えるべきルールが多い。たとえば,数式中に単に書けば処理される関数と,
#
を書かねばならない関数とがある。 -
LuaLaTeX において,私のプリアンブルでは A4 判2ページの原稿をタイプセットするために約7秒かかった。Typst ではほぼ一瞬である。ただし,typst はページをまたぐときなどに一瞬の引っ掛かりが生じる。
-
LaTeX の高速化については世に記事があるが,
uplatex
を使っている。これは,そもそもuplatex
のほうが速いことと,高速化の能力が高いmylatexformat
パッケージが(u)platex
でしか動かないことによる。 -
https://event.phys.s.u-tokyo.ac.jp/physlab2024/advent-calendar/24-2/
- JyJyJcr
- ただしい高速LaTeX論
- Physics Lab. Advent Calendar 2023
- 参照 2024-11-16
-
https://doratex.hatenablog.jp/entry/20211206/1638749451
- doraTeX
- mylatexformat を用いてコンパイル時間を短縮しよう!
- TeX Alchemist Online
- 参照 2024-11-16
Typst は直ちにプレビューができるように作られている以上,全体の様子を見てから処理を決めるといった動きは向かないのだろう。本を書くとなると,図をどこに置くかといったことを LaTeX に任せたくなるが,typst はどのように働くのか気になっている。ただし,高等学校向けの数学教材であれば,「その場所」に出力することばかりであるから,さほどデメリットにはならないだろう。