Typst 0.14登場!LaTeXからの乗り換え続出と話題の新文書作成ツールがさらに進化!
引用元:https://news.ycombinator.com/item?id=45693978
Typstはオンラインエディターがプロプライエタリ、CLIがオープンソースだよ。俺はCLIを使ってる。PowerPointの代わりで使い始めたけど、LaTeXと違って Typst は久しぶりに使ってもすぐ思い出せて便利だよ。
何十年もLaTeX使ってたけど、今月 Typst に乗り換えたら超良かった! Knuthには感謝してるけど、 Typst はあらゆる面で LaTeX より体験が良いね。VS Code と TinyMist の組み合わせが最高。LaTeX でいつも苦戦してたテンプレート修正も、 Typst なら一日でできたよ。
新しい言語を学ぶのは大変だけど、 Typst コードの生成は LLM が結構やってくれたよ。 LLM でスニペット作ったり言語を学んだりして、 Typst のドキュメントも良いんだけど、時間短縮になったね。
どの LLM?俺の経験だと Typst で使うとひどい結果だよ。ChatGPT とか Gemini は動かないコードを出すし、エラーメッセージやドキュメントをコピペしても直せないことも多い。 Typst は LLM が苦手な言語だと思ってたから、驚いたよ。
数ヶ月前は Claude Sonnet 3.5 を使ったよ。ハルシネーションはあるけど、一度に大量のコードを生成させず、細かく指示すれば軽減できる。俺はドキュメントのコピペでうまくいったし、 Typst は言語がシンプルで古い情報も少ないから LLM にはそこまで難しくないのかもね。
これはオープンコアモデルの良い例だね。フル機能の F/LOSS 製品があって、その上に商用サービスがあるんだ。俺は CLI ツールしか使ってないけど、不便を感じないよ。商用製品も全然押し付けがましくない。料金プランも寛大でお手頃価格だし、プロジェクトが長く続くための安定した収入源があるのは素晴らしいことだね。
isitreallyfoss.com が Typst について詳しく分析してるよ。
https://isitreallyfoss.com/projects/typst/
ほとんど良いけど、「コンパイラに Typst GmbH のサーバーに繋がるパッケージマネージャー「 Typst Universe 」が含まれる」って点が少し気になるかな。
すごく簡単なリクエストでも全然ダメだったよ。ChatGPT で「 Make a Typst doc with two columns per page and US page dimensions 」ってプロンプトしたら、 Typst エディターで20個もコンパイルエラーが出た。同じプロンプトを LaTeX で Overleaf に入れたら問題なかったのに。Claude は試してないけど。
コア製品とオンラインエディターの話で思い出したんだけど、俺たちが作ってきた製品ではレポート機能が必要なことが多くて、PDF 出力は LaTeX ベースになることが多かったんだよね。でもセキュリティはいつもイマイチだったな。 Typst レンダラーを既存の Rust 製品に統合するのは、どれくらい大変なんだろう?
TypstをPowerPointの代わりとして使い始めたんだ。主にスライド作りで使ってるよ。Slydstもおすすめ!
Knuthはデジタル組版を解決しようとしたんであって、使いやすいHCIじゃなかった。だから、こんなツールが出てくるのは普通だよね。
TeXとTypstは開発された環境が全然違うんだ。KnuthはLiterate Programmingの方がTeXより重要って言ってたけど、『TeX: The Program』はweb2cやpdftex、xetex、luatexみたいなツール開発にめちゃくちゃ役立ったんだよ。http://literateprogramming.com/
https://www.goodreads.com/book/show/499934.Computers_Typeset…
もっと視覚的に凝ったプレゼンをTypstに持っていくにはどうする?SVGでアイコン作って配置するのがいいのかな?
Marp大好きなんだけど!プレゼンでTypstがMarpより良いって思うのはなんで?
100%同意。TeXだとパッケージやテンプレートを使うと、設定を変えるのが大変で身動きが取れない感じだよな。Typstなら、嫌なところは自分でいじれる自信がある。これは本当に新鮮な気分だ。
LLMがTypstコード生成が得意って話だけど、俺は逆だったな。ChatGPTやClaudeはエラーばっかりで謝るし、「キーワードは<blahblah>だよ」って言ってもまたエラー。Geminiは正直に「Typstでそれは無理」って言ってくれた。俺がちょっと変わったこと試してただけかもしれないけど、LLMの学習データが少ないせいだと思う。でも、Typstのドキュメントはめちゃくちゃ良いから、例のコードをいじるだけでうまくいったよ。
多くのオープンソースプロジェクトってこんな感じで始まるよね…変わっちゃうまではさ。
TinyMistはVS Code / Cursorでのローカル開発に、オンラインエディタの素晴らしい代替になるよ。https://myriad-dreamin.github.io/tinymist/
ClaudeでTypstテンプレート作ったら、エラー出たけどコピペで直してくれたんだ。箇条書きがハイフンじゃなかったのは残念だけど、ゼロから作るよりずっと速かったよ。ASCIIアートからTypstコード作るのは得意だったな。全体的に良い経験だった。
同じプロンプトをChatGPTで試したら、10個もエラーが出ちゃったよ。主に#をコメントに使ってたのが原因で、Typstの学習データが少ないんだろうね。Claudeと比べるとイマイチだったな。
Web版は必須じゃないけど、Typst開発を応援するために年間購読してるよ。Typstの例を共有したり、Githubリポジトリと同期しながらドキュメントを編集できるのは便利だね。開発支援と機能の両面で満足してる。
LLMって予測不能だよね。Go言語の生成でひどい経験したのに、逆の経験も聞くし。トレーニングデータの量より質が大事だと思うんだ。Typstは新しくて悪いコードが少ないから、LLMが生成しやすいのかも。Rustみたいに複雑な言語は難しくて、Pythonはシンプルでも生成コードに頼るのは怖いな。
OSSでビジネスをやるのは本当に大変だよね。批判するより、GrafanaやClickHouse、TimescaleDBみたいに成功してる例を認めようよ。特にGrafanaはOSSの素晴らしい管理者だと思う。Typstも今のところ順調だし、称賛すべきだね。
去年、LaTeXからTypstに乗り換えたんだ。本の執筆や請求書、スライドに使ってるよ。もうLaTeXは二度と触りたくないくらいTypstは最高だね!本当に素晴らしいツールだよ。
俺もTypstを始めた時はそうだったよ。最初は難しそうで、チュートリアルにない部分はChatGPTに頼ってたんだ。でも今は関数を生成したり、もっと複雑な機能も使いこなせて、自力でドキュメントを作れるようになったんだ。成長できたって感じ。
Claude Sonnet 4.5で同じプロンプト試したら、US Letter 2カラムレイアウトのTypstコードがエラーなしで動いたよ。あなたの20エラーの経験とは違って、これは成功だね。ChatGPT-4oだと最初はエラー出たけど、プロンプト変えたり修正したりで改善したよ。LLMはアシスタントとして使って、生成コードは公式ドキュメントで確認するのが賢い使い方だね。
多くのパッケージマネージャーはリポジトリURLをconfigから読むけど、Typstはバイナリにハードコードされてるんだよね?確認したいな。
MarpよりTypstの方が好きだって。
MarpはCSSで書式設定するからミスが捕まえられないし、プラグインの導入も面倒。PDF生成もChromeが必要だったりするんだ。Typstはこれらが全部解決されてる。HTMLベースのプレゼンならMarpもいいけど、個人的にはPDF使うからTypstが最適だね。
オンラインエディターは、リアルタイム編集が必要な簡単なプロジェクトや、ツールをダウンロードしたくない人にとって、すごく便利だよ。
Typstスレッドではいつも書くけど、LaTeXと比べてこんなにいい点があるよ!
コンパイルが速くてファイルも少ないし、エラーも分かりやすい。リストの書き方も良いし、マクロも好きな場所に書ける(後で訂正されたけど)。バージョン管理もしやすいし、ページ設定も簡単。CSL対応の引用スタイルがうまく動かないのが唯一の不満だけど、大体の機能は内蔵されてるからパッケージの導入もほとんどいらないね。LaTeXはディストリビューションも巨大だし。0.14のアクセシブルPDFとHTMLエクスポートは嬉しい!
もっとコメントを表示(1)
LaTeXのコンパイルはTectonic¹を使えば依存関係も自動でダウンロードしてくれるし、一時ファイルも隠してくれるよ。
Overleaf²を使ってる知り合いも多くて、リアルタイムレンダリングだからコンパイル速度の差も気にならないんじゃないかな。
だから、コメント87185の指摘だと、Typstの優位点は診断の良さとリストの構文ぐらいだね。他の点は的外れか疑わしいよ。Typstにはもっと面白い特徴があるはずなんだけどな。
¹: https://tectonic-typesetting.github.io/
²: https://docs.overleaf.com/on-premises/installation/using-the…
みんな色々な経験があるよね。
LaTeXでマージンやフッターの設定が難しいって言ったのを「疑わしい」って言われたけど、僕は実際に何時間もかけて悩んだんだ。ページ番号つきのフッターを設定しようとして、結局レンダリングがページの外に出てたのが原因だったりして。本当に大変だったよ。
Typstならこんな感じのコードで、フッターとかマージンの設定がすごく簡単なんだ。比較にならないくらいね。
Overleafと比べてTypstのコンパイル速度が「マイナー」だっていうのは違うと思うよ。個人的には全然違う体験だよ。
OverleafはTikZ図がいくつかあると、3ページ目くらいでも保存するたびに数秒かかってた。Typst(Tinymist in VS Code)は本当にリアルタイム。テキスト更新は数十ミリ秒だし、図の挿入も1秒以下だよ。この「即時性」が体験を大きく変えるんだ。
僕のノートPCは数年前のCPUだけど、Tinymistだと3ページ目くらいで既に重くなるんだ。キーボードを打ってから文字が表示されてプレビューが更新されるまでに、はっきりとした入力遅延があるんだよね。
これはTinymistの問題だと思うんだけど、デバウンスがないし、プレビュー更新もVSCodeの入力処理と同じスレッドで動いてるみたいだからかな。
へぇ、面白いね。僕はそんな経験ないな。
ただ、Tinymistのプレリリース版を試した時に、PDF画像を複数ビューでクロップして大きなPDFを作ろうとしたら、ちょっと重くなったことはあったよ。あれはまだベータ版だったからって思ってたけど。
それに、Typstでまだそんなに大きな文書は作ってないんだ。
Unicodeの上付き文字を使えばいいんだよ。
https://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts
LaTeXは軽くかじった程度だけど、Typstはすごく簡単に習得できたよ。最近、Typstで本を一冊出版したんだ。ページ番号の左右交互配置とか、細かい書式設定に少し時間はかかったけど、印刷可能な美しいPDFを簡単に作れたよ。pandocもTypstをかなりサポートしてるから、docx作成に使ってる。いくつかpandocのサポートに関するissueを開いたんだけど、ほとんどすぐに解決されたね。
[0]: https://thelabofthought.co/shop/p/nbmi3
>コンパイル時に5つもファイルを作らないって最高!これは15年以上前にStack Overflowで質問したんだけど、今でも一番多くのアップボートをもらってる質問なんだ。たまに通知が来るよ。
[0] https://tex.stackexchange.com/questions/11123/prevent-pdflat…
本当にLaTeXよりずっと良いよ。Typstを使うのが楽しいから言ってるんだけど、LaTeXはいつも何かを調整して、コンパイルを待って、何が起きてるか全く分からないまま動くことを祈ってたんだ。
>セマンティックな改行を使うなら、バージョン管理や差分が取りやすいって話だけど、これには納得いかないな。セマンティックな改行を使うなら、どっちでも同じくらい差分は取りやすいでしょ。
LaTeXのテンプレートをTypstに変換したり、その逆はできるの?多くの学会誌はLaTeXのテンプレートがあって、LaTeXを要求するんだよね。
- 信頼できない入力に対する時限爆弾じゃないんだ。
>HTMLやSVGへのエクスポートでは、PDFが埋め込みSVGにオンザフライで変換されるんだね。そしてPNGエクスポートやウェブアプリのプレビューでは、PDFがラスタライズされる。これらのPDF処理機能は全てTypstコンパイラ内にあり、システム依存性がない。これはコミュニティメンバーの@LaurenzVがRustでゼロからPDF処理ライブラリ hayro を作ったおかげだよ。すごい努力だったんだろうな。
それに hayro ライブラリはスタンドアロンで、Typstの外でも簡単に使えるよ。CPUだけを使っていて、純粋なRustだからWebAssemblyでも使えるんだ。デモへのリンクはこちら。
https://github.com/LaurenzV/hayro
https://laurenzv.github.io/hayro/
やばい、400ページ超えの結構大きなPDFを読み込ませてみたんだけど、ほとんど瞬時にレンダリングされたよ!これは本当にすごいわ。
へぇー、hayroの作者さんはTypstのためにこの作業をしてくれたのかな?それとも、どっちみちやる予定だったのかな?
作者だよ!Typstの要望が多かった機能を解決したかったのは大きな動機だけど、それだけじゃないよ。PDFの作業はkrillaライブラリとかで結構やってたから、仕組みはよく知ってたんだ。それに、Rustで2Dレンダリングに関する修士論文も書き終えたばかりだから、その知識も活かせたね。自由な時間に大きなオープンソースプロジェクトを作れる良い機会だったんだ!
hayro-interpretとkrillaを使って、既存のPDFをアクセシビリティ対応させることは可能なのかな?各ページをタグ付けしてマーク付きコンテンツのスパンで囲んでラウンドトリップさせる感じ。PDFiumはコンテンツストリームのラウンドトリップとマーク付きコンテンツスパンの追加はできるけど、タグ付けはできないからね。どう思う?
うん、それ、将来の目標だね。でも、それを可能にするには、両方のライブラリでまだ結構な作業が必要だよ。
背景を教えてくれてありがとう。すごい仕事だね。修士論文が気になるんだけど…公開されてるの?
まだだよ。でも、1~2週間以内には採点が終わるはずだから、そしたら共有できるよ!
そして、仕事のオファーも来ることを願ってるよ!
>だから移植性が高いね
とはいえ、Cエコシステムに比べたら移植性はかなり低いと思うけどね。
Cよりポータブルじゃないって?理論上はそうかもだけど、実際に(a)標準Cコンパイラがあって、(b)Rustターゲットがなくて、(c)PDFを扱うのに十分なメモリがあるプラットフォーム向けに開発してる人っているの?
それは単純すぎるよ。俺は大規模なCとRustのプログラムをメンテしてるけど、Unix/Windowsの問題はCよりRustの方が断然直しやすいんだよね。Rustがサポートしてない一部の変なCPUより、LinuxとWindowsをしっかりサポートする方がずっと大事だよ。
アプリを使うつもりはないけど、”資金援助”のつもりでTypstを購読しようと思う。LaTeXは好きだけど嫌いでもあって、その後継や代替ツールってコンセプトはめちゃくちゃ魅力的だね。あと、微細なタイポグラフィの重要性を理解してて、それに取り組んでるって事実が超超プラスポイントだよ。
50年前のオープンソースは、利用方法がわからなかったから、今じゃ数ギガの配布物とか、ごちゃごちゃの構文で何とかしてるよね。Typstは50年間のTeXの経験から学んで、45MBのバイナリに欲しい機能を全部詰め込んでるんだ。俺は学術出版以外にも(本、パンフレット、カードレイアウトも!)使ったけど、どんな種類の文書作成にも間違いなく最高のツールだよ。JSONやCSVからの手続き的なレイアウト生成は最高!
Typstはオープンソースだから、自分のPCで動かせるよ。CLI版もあるし、多くのIDE(ほとんどはtinymistを使ってる)と統合されてる。個人的には、購読するだけで使わないより、Typstを使ってコンテンツを作り始めたり、応援したり、バグや困り事をチームに伝える方が良いと思うな。
CLIを使ったり、アプリ(オンラインエディタ)を使わずに(アプリのプロ機能に)購読して、金銭的にちょっとサポートしつつ、Typstを使ってコンテンツを作るってこともできるよ。
直接寄付もしたし、今はウェブアプリの購読で財政的にサポートしてるよ。CLIとウェブアプリを結構切り替えて使うことが多いかな。ウェブアプリは実験したり、特にサポートを受ける際に問題をデモするのに共有しやすいし、GitHub連携も十分良いね。Typstがバウンティをサポートしてくれたら嬉しいな、HTMLサポートのためにもう少し貢献できるのに。
もっとコメントを表示(2)
LaTeXも悪くないけど、ちゃんと使いこなすのは難しいよね。個人的にLaTeXの不満点は、実行する環境にすごく依存しちゃうところなんだ。
これに関して、nix flakesのセットアップで成功したよ!LLMの助けを借りて、フォント一つ変えることもできたんだ。以前は、何してるか全くわからずにrootでたくさんのスクリプトを実行して同じ変更をしてたからね。イライラする!
Webアプリを使わないなら、GitHubでスポンサーしてあげたら?ステッカーももらえるよ。
Typstがマイクロタイポグラフィのサポートに取り組んでるって示してる?リンクの文字レベルの調整例は素晴らしいからTypstを試したいけど、この記事からだと彼らが積極的にマイクロタイポグラフィに取り組んでるか不明だね。
Typstは履歴書作成で好きだけど、LaTeXから乗り換えられないのはキラー機能がないからだね。1. Beamer: 週に何度もスライド作るから、Beamerのスタイルとフォントの豊富さは他にはない。Typstでこれをやるのはまだ大変。2. TikZで図を生成: GUIツール嫌いだし、LLMがTikZ生成を手伝ってくれるから便利。3. Overleafに慣れててCERNのプロアカウントもあるし、コラボ機能もTypst Cloudよりいい。いつかTypstがこの方向で成長して、LaTeXをやめられるといいな。それまではOverleafのテンプレートを使うよ。
もうチェック済みかもしれないけど、もし見てなかったらこれらを確認してみてね。
- https://touying-typ.github.io/ Creating slides in Typst
- https://cetz-package.github.io/ CeTZはTikZやProcessingにインスパイアされたAPIでTypstで描画できるパッケージだよ。プロットやチャートライブラリも提供してて、他のパッケージでも回路図などを作るのに使われてる。
- チームでバージョン管理を使ってみたら?無理だと思っても、Gitみたいな既存のバージョン管理システムはLaTeXやTypstを含むテキスト形式でかなりうまく機能するよ。
いい提案だけど、GitをOverleafの代替として勧めてるって理解した?それは全く現実的じゃないし、Overleafがどんな問題を解決してるか完全に理解してないよ。Overleafは内部ではGitを使ってるけど、本当に提供してるのはGoogle DocsみたいなLaTeXドキュメントでのコラボ機能なんだ。Overleafでレビューする変更をGitHubのプルリクでレビューするのはすごく大変で、新しい、複雑で直感的じゃないワークフローを導入することになるよ。
TypstのWebアプリでは、プロジェクトをGitリポジトリにリンクできるよ。これでWebアプリでリアルタイムコラボレーションとGitでのバージョン管理ができるんだ。Overleafの履歴GUIとは違うけど、機能としては使えるよ。
参考までにだけど、数週間前にHNでTypstのオープンソースのコラボエディタが投稿されてたよ: https://news.ycombinator.com/item?id=45481791
LaTeXでたくさんスライド作ってるなら、Typstは試す価値絶対あるよ。講義とかでたくさんのアニメーション付きTikZ図があるLaTeXのプレゼンをたくさん持ってるんだけど、コンパイル時間がものすごいんだ。ある時点ですごく時間がかかってたけど、Typstならコンパイルがめちゃくちゃ速いからコンパイルを始めるのをためらわなくて済む。これでプレゼンをはるかに早く終わらせられるようになったよ。CeTZもすごくうまく機能してる。自分の用途でTikZを置き換えられるか本当に不安だったけど、どうやら良い幾何学的プリミティブ(線、長方形、円など)があれば、かなりのことができるみたい。それにTypstでプログラミングしてちゃんとした関数を作るのもすごく楽しい。Beamerを置き換えるTypstの選択肢はまだ完全に揃ってないのは事実だけど、かなり使える状態なのは間違いないよ。例えばtypst-presentate [1]を見てみて。[1] https://github.com/pacaunt/typst-presentate
Typstでスライド作るときに物足りないのは、短い動画やアニメーションGIFを表示する機能だね。まあBeamerでも簡単じゃないけどさ。TypstはGIFを含めることはできるけど、僕の環境だと動かないんだ。HTMLで直接スライドを作れたら、この問題が解決するんじゃないかってちょっと期待してるんだ。
Touying Exporterを使ってみたらどうかな: https://github.com/touying-typ/touying-exporter
Fletcherの例が一つあるよ。これもいい感じだね: https://typst.app/universe/package/fletcher
いくつか手短に言うと、1) Typstを使ってスライドを作ったけど、うまくいってるよ。特殊機能の追加はBeamerより簡単な傾向があるね。2) cetz (https://github.com/cetz-package/cetz) はかなりうまく機能してて、複雑さや能力はTikZと匹敵するよ。もちろんTikZの方がサポートは多いけど、cetzも時間とともに改善されるはず!
Typstで自分用のスライド作成ツールを作るのは簡単だったよ。LaTeXじゃ絶対やらなかったな。2か3には答えられないな。TikZは一度使ったことがあるよ。デファクトスタンダードなプログラム描画ツールがあればいいのにって思う(いつもはGraphvizかMatplotlibに頼っちゃうけど)。80%解決なものが多すぎるんだよね。
スライドデッキについて既に出てる話に付け加えると、Typstのもう一つの素晴らしいスライド作成パッケージはtouyingだよ[1]。僕はこれでコースや学会発表用に自分の学術テーマを作ったことがあるんだ[2]。[1] https://touying-typ.github.io/
[2] https://typst.app/universe/package/touying-unistra-pristine/
仕事で数学的なコンテンツを作ってる者として、1. Touying、2. Cetzはおすすめ。個人的にはLLMはTikZがかなり苦手だと思うな。GUIツールは好きじゃないって言ってたけど、Inkscapeは素晴らしいよ。3. GitHub >>> Overleaf
1と2は既にTypstのエコシステムにあるよ。本当に必要なのは、CERNメンバーとしてのTypstのプロアカウントだね。
1と2は既にTypstエコシステムにあるって?いや、まだだよ。他の人たちが答えてるように、似たようなものはあるけど、同じ機能の完全性はないんだ。僕はBeamerについて具体的に話したんであって、「スライド」全般について言ったわけじゃないからね。
10年以上ぶりにあの古い.docxファイルをたまに更新してたけど、最近Typstを使って履歴書を作り直したんだ。それが本当に楽しいプロジェクトだったよ!今では履歴書はプライベートなリポジトリで管理してて、個人情報や職歴、スタイリングデータはTOMLファイルに保存してるんだ。それから、興味深いTypstの履歴書テンプレートを引っ張ってきて、ジョブやプロジェクトの配列をループさせながらTOMLファイルから情報を流し込んで、文書テンプレートに当てはめてるんだ。完全にやりすぎだけど、楽しいプロジェクトだったしTypstで作業するのが本当に楽しかったよ。チュートリアルすら見なかったけど、そのまま言語に飛び込んで、いくつかの例があれば直感的だろうと思ってたら、まさにその通りだったんだ。
既存のパッケージを使ったの?それとも一から書いたの?僕もTypstで履歴書を書き直そうと考えてるんだけど、今の仕事に満足してるから、そんなに優先度の高いタスクじゃないんだよね。
履歴書にはTypst Universeリポジトリ (https://typst.app/universe/) の既存テンプレートを使ったよ。それから、二次的なドキュメント、つまりカバーレターとか僕がやったプロジェクトのケーススタディみたいなものは、もっとシンプルなものを一から作ったんだ。もし興味があれば、リポジトリから個人情報(PII)を抜いて公開してもいいよ。別にものすごくプライベートなものはないんだけど、これ以上迷惑電話が増えるのは嫌だからね。