Typst を試す・学ぶための記事
目次
2023年に発表された組版ソフト typst が使いやすく楽しそうである。これを試す・学ぶための記事をひとまずまとめた。まだ日が浅いため、これからも詳しい記事が増えるだろう。
インストールが易しいこと・原稿を書くとリアルタイムでプレビューされること・短縮記法(>= で ≧ と入力できる、など)が使えることなどがよく挙げられる利点である。
個人的な typst と LaTeX の比較については、私個人の選択で述べた。
Typst と LaTeX
出力とソースコード
1週間ほど試し、LaTeX で作っていた文書と似たようなことが typst でできるかも確かめた。細かな部分に粗はあるが、たとえば講義資料(授業プリント)を作るなどにあたっては十分な質であろう。
高等学校教員における typst の利点
高等学校数学科教員としての立場からは、原稿を書くとリアルタイムでプレビューされることが大きいだろう。
論文・書籍・大学などと異なり、その場で1枚ずつ配ることや読み手のモチベーションが比較的低いと考えねばならないことなどから、教材を1枚に見やすく収めるために時間をかけざるを得ない。たとえば、文末表現を見直して1行を削ったり、行送りを少し縮めて収めたりといった作業では、微調整のたびにタイプセット(コンパイル)を行わねばならない。こうした際、リアルタイムプレビューの恩恵は大きい。
一方、LaTeX にも安定感・コミュニティの大きさ・既存のパッケージたちによる多彩な表現などの多くのメリットがある。さらに、これまでの原稿も LaTeX で残っている。これらを考えると、乗り換えるとすれば大きな決断であることは確かである。
個人的な typst と LaTeX の比較については、私個人の選択で述べた。
展望
Typst はまだ若く、LaTeX にある多くの拡張がまだ見当たらないようである(2024-11-03 時点、この記事よりも後に作られる可能性があるので、調べることを勧める)。
- https://qiita.com/Yarakashi_Kikohshi/items/c3eeabfe918d2850abc0
- Yarakashi_Kikohshi
- Typst でも縦書きをして新年のご挨拶をしたい
- Qiita
- 参照 2024-11-03
Typst は若いため、プロジェクトが頓挫してしまう可能性も指摘されている。
- https://x.com/Aki_HAGURO/status/1852548933991772514
- 羽黒アキ
- 参照 2024-11-03
背景
Typst は、2023年にパブリックベータ(まだこれから破壊的変更があるかもしれない)が公開されたオープンソースの組版ソフトウェアである。記法の易しさとタイプセットの速さから話題となっている。
Typst はパブリックベータであることからわかるように発展途上である。私もまだ使いこなすには至っていない。しかし、少し遊んだだけでも、主な執筆環境にできるのではという期待が持てた。LaTeX と比べコンパイルが圧倒的に早いため、仕事として資料を作るにあたっては、失う時間がかなり少なく済むのではないかと思っている。
ただし、typst は LaTeX とはコマンド体系が異なり、原稿の互換性もない。LaTeX は Knuth が心ゆくまで組版を整えるために作られており、かなりのことができる。Typst は LaTeX の難しさを避けるために作られたところもあり、今のところ満ち足りるまで細かく触れるわけではなさそうである。これらを踏まえ、教材作りのためにこれからどちらを使ってゆくかはよく考えねばならないだろう。
なお、ChatGPT もまだ typst をよくわかっていないようで、聞いてみても LaTeX の記法と混じったものが帰ってくる。日本語で問い合わせたので、英語で尋ねれば様子は異なる可能性もある。
紹介
Typst を導入するか悩んでいるようなら、これらの記事を読んでみられたい。
- https://zenn.dev/msakuta/articles/2f1cd11d6099d6
- msakutamsakuta
- 新興組版システム typst のススメ
- Zenn
- 参照 2024-10-25
- 組版・LaTeX・マークアップなどの基本的な解説がある。
- https://qiita.com/hikoharu14142/items/aa8cfb70d079b0324fba
- hikoharu14142
- Typstのここがすごい!!
- Qiita
- 参照 2024-10-25
- 主として書きやすさについて語られている。
- https://zenn.dev/monaqa/articles/2023-04-19-typst-introduction
- monaqa
- 話題の組版エンジン Typst を触ってみた
- Zenn
- 参照 2024-10-25
- コードと例がていねいに述べられている。
- https://qiita.com/naoppy/items/55a0df837858e553d430
- Naoppy
- 初めてのTypst:構文の基礎から応用
- Qiita
- 参照 2024-10-25
- もっとも初歩的な関数の例が述べられている。
- https://kimushun1101.github.io/How-to-use-typst-for-paper-jp/How-to-use-typst-for-paper-jp.pdf
- Shunsuke Kimura
- Typst で論文を書く
- GitHub
- 参照 2024-10-25
- プレゼンテーションである。具体的なソースを見ながら大づかみに知るのによい。
新規導入
Typst をローカル環境で使うにあたっては、Visual Studio Code における Tinymist Typsr の評判がよい。私が試したのはこの環境のみだが、不満はない。インストールには次の記事がわかりやすい。
- https://www.insource-da.co.jp/dxpedia/02_0001.html
- 株式会社インソースデジタルアカデミー
- Visual Studio Code インストールと日本語化
- DXpedia
- 参照 2024-10-25
- https://code.visualstudio.com/Download
- Microsoft
- Download Visual Studio Code
- code.visualstudio.com
- 参照 2024-10-25
- https://zenn.dev/1step621/articles/b427a8ee518e26
- 1Step621
- 学校のレポートをTypstで書こう
- Zenn
- 参照 2024-10-29
ドキュメント
- https://typst.app/docs
- Typst
- Typst Documentation
- Typst
- 参照 2024-10-25
- 公式ドキュメント、まずはこれを読む。
- https://sitandr.github.io/typst-examples-book/book/
- sitandr
- Typst Examples Book
- GitHub
- 参照 2024-10-25
- 非公式であるがたいへん参考になる事例集である。
- https://forum.typst.app/
- Typst
- Typst Forum
- Typst
- 参照 2024-10-25
- 公式フォーラム、困ったときの資料になる。
- https://typst-jp.github.io/docs/
- Typst Japan Community
- Typst ドキュメント日本語版
- GitHub
- 参照 2024-10-25
- 公式ドキュメントの一部が日本語訳されている。
- https://kumaroot.readthedocs.io/ja/latest/typst/typst-usage.html
- Shota TAKAHASHI
- Typstの使い方
- KumaROOT
- 参照 2024-10-25
- 目的ごとに日本語でまとめられている。
- https://zrbabbler.hatenablog.com/entry/2024/05/02/125454
- ZR-TeXnobabbler
- 非プログラミング者のためのTypst公式ドキュメント攻略ガイド
- マクロツイーター
- 参照 2024-10-25
- 公式ドキュメントは長いので、まずどこを読むべきかの参考になる。
- https://zenn.dev/monaqa/articles/2024-10-19-typst-updates-v0-12
- monaqa
- Typst 0.12.0 の内容を早めに深堀り
- Zenn
- 参照 2024-10-25
- パブリックベータ版であることを認識すること、使いかたの事例を探すことの2つにたいへん有用な記事である。
投稿サイトカテゴリ
- https://zenn.dev/topics/typst
- (Zenn)
- Zenn / Typst
- Zenn
- 参照 2024-10-25
- https://qiita.com/tags/typst
- (Qiita)
- Qiita / Typst
- Qiita
- 参照 2024-10-25
開発に役立つ記事
- https://oucc.org/blog/articles/1003/
- みやじ
- 覚えておくと便利なTypstの文法
- OUCC BLOG
- 参照 2024-10-25
- 関数へのまとめかた(抽象化)、カスタム関数のデフォルト値上書きなどが有用である。
- https://powercore.hatenablog.com/entry/2023/12/21/114030
- powercore
- Typst 備忘録 -自作書式のサンプル-
- 電気工学博士の雑記
- 参照 2024-10-25
- 処理がどう流れるかが読みやすく書かれている。
- https://qiita.com/gomazarashi/items/2e83759fe6755b14b2bb
- gomazarashi
- Typstで式やテキストを装飾する【showyboxパッケージ】
- Qiita
- 参照 2024-10-25
- 囲み環境の作りかたの例である。
- https://zenn.dev/saito_atsushi/articles/4b7379eb2972bf
- 齊藤敦志
- Typst で短縮記法
- Zenn
- 参照 2024-10-25
- 短縮記法( 2/3 のようなもの)を自作する例である。
- https://zenn.dev/mkpoli/articles/6234c1d2a595bd
- mkpoli
- Typstで日本語文字と英数字のフォントを別々に指定する
- Zenn
- 参照 2024-10-25
- 正規表現による処理の例である。
- https://zenn.dev/taiiin02/articles/typst_articles_main
-taiiin02
- [打倒LaTeX !!] 生まれたての組版システム’Typst’の使い方と便利な機能を実装した話(2023.10)
- Zenn
- 参照 2024-10-25
numbering
を自作する例である。
- https://idukn.com/tech/typst-labels/
- idukn
- Typstで要素を横並びにして脚注にラベル付けする
- idukn Website
- 参照 2024-10-25
grid
の例である。
- https://zenn.dev/nabetani/articles/c8deca489b4880
- Takenori NABETANI
- Typst で製本用PDF を作りたい
- Zenn
- 参照 2024-10-25
if
の例である。
- https://stackoverflow.com/questions/78272599/show-current-heading-number-and-body-in-page-header
- (stackoverflow)
- Show current heading number and body in page header
- stackoverflow
- 参照 2024-10-25
header
とページ情報取得の例である。
- https://qiita.com/Mya-Mya/items/fd8b624801634676d43d
- Mya-Mya
- 【Typst】subequation環境を実装する
- Qiita
- 参照 2024-10-25
- 新しいカウンタを定義する例である。
- https://event.phys.s.u-tokyo.ac.jp/physlab2024/advent-calendar/13/
- 東京大学 理学部 物理学科有志
- Typstの空白について
- Physics Lab. 2024
- 参照 2024-10-25
- 空白処理の研究である。
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
- 「章段の最初の段落がインデントされない」ことへのアドホックな修正である。
解答欄
- https://qiita.com/tomoyatajika/items/73977a655263f1790393
- tomoyatajika
- typstでanswer box の簡易版を作る
- Qiita
- 参照 2024-10-25
- 問題番号と解答欄の間が点線である。大問と解答欄が連結している。
- https://zenn.dev/1step621/articles/df285be712d9d5
- 1Step621
- Typstで試験の解答欄を作ってみた
- Zenn
- 参照 2024-10-25
- 問題番号と解答欄の間が実線である。大問と解答欄が離れている。
書きかた
- https://forum.typst.app/t/how-to-adjust-alignment-within-math/703/3
- (Forum)
- How to adjust alignment within Math ($$)?
- Typst Forum
- 参照 2024-10-29
私個人の選択
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-11-18
- 「私個人の選択 / 2024-11-18 時点」の文章を整えた。
- 改訂: 2024-11-18
- 改訂: 2024-11-05
- 改訂: 2024-10-29
- 「Typst と LaTeX」を書き加えた(「出力」は概要から移した)。
- 改訂: 2024-10-29