これからLaTeXをするなら Typst はオススメ!

2023/05/14に公開

\LaTeXの御作法は離れると厄介😓

以前は何でもかんでも\LaTeXで書いていました。ところが触っていない間が少し空くと、あの独特な御作法がやたらと不自然で重く感じてしまい、「もう少しなんとかならないかなー。」そんなことを思っていました。しかし、幸運なことに、新しい組版システムであるTypstが目に留まりました。Typstはマークアップベースの組版システムであり、\LaTeXと同様に強力でありながら、学習と使用がはるかに簡単であるように設計されています。Typstを使うことで、\LaTeXの(私にとっては、間が開くと忘れやすい妙な)制約から解放され、より自然な作業環境を享受することができます。
https://typst.app/

勢いのあるTypst🚀

Typstは、さまざまな人々の貢献により現在も進化し続けています。Awesome Typstでは、Typstユーザーのための便利なリンク集が提供されています。このリポジトリには、Typstに関連するさまざまな情報やリソースが集約されており、Typstをより便利に使うためのヒントやテクニックを見つけることができます。
https://github.com/qjcg/awesome-typst

begin...の御作法よ、さようなら👋

Typstでは、従来の\LaTeXで行っていたような特定の書式や構造を維持する必要がなくなりました。数式の表示においても、ドル記号を使って数式を囲むだけで表現することができます。また、数式を別のブロックにするには、余分なスペースを追加することで実現できます。例えば、文中で数式をインライン表示したい場合は、$ \int_{1}^{\infty} f(x) \mathrm{d} x $ のように記述します。一方、数式をブロックとして表示したい場合は、次のようにスペースを追加します。

数式はドル記号で囲む。数式に余分なスペースを追加することで、数式を別のブロックに入れることができます。例えば文中は\intであり、ブロックしたい時はスペースで

\int_{1}^{\infty} f(x) \mathrm{d} x

とかきたければ

$  integral_(1)^(oo) f(x) dif x $ 

とすることで、ブロックにできます。

Typstでは、積分の表現においても独自の書式が提供されています。積分の微小量 \mathrm{d} x は、dif x という表記を使用することができます。もちろん、d x と書いてもわかりますが、Typstではdxとかくとデフォルトではエラーメッセージが発生しますので注意が必要です。

数式表現 についてはtypst-undergradmathの対応表などが参考になります。

https://github.com/johanvx/typst-undergradmath/

定理環境の設定だってさくっとできます‼️

Typstでは、定理環境を簡単に作成することができます。typst-theoremsを参考にすると、以下のような記述で定理環境を作成することができます。
https://github.com/sahasatvik/typst-theorems

#import "theorems.typ": *
#import "theorem_env_test.typ": *

#show: project.with(
  title: "書き換えたタイトル"
)

= セクション

#definition[
    これは定義です。
]

#theorem[
    これは定理です。
]

#lemma[
    補題です。
]
#proof[
    証明です。
]

#corollary[
    系です。
]


#example[
    例です。
]

#exercise[
    演習です。
]

できるものは以下です。

このようにすると、タイトルを変更したり、定義や定理、補題、証明、系、例、演習を簡単に作成することができます。Typstの定理環境は見やすく整理されており、使いやすさに優れています。

参考文献の引用や数式の参照を簡単に

Typstでは、参考文献の引用や数式の参照を簡単に行うことができます。参照したい箇所には<ref_name>というタグを付け、@ref_nameと記述することで参照することができます。ただし、セクションの参照を行う場合は、セクションに番号を付ける必要があります。プレアンブルに#set heading(numbering: "1.")などと記述することで、セクションに番号を付けることができます。

カッコのエラーに悩まされることなく

\LaTeXを使った人があるときに悩まされる、カッコを開いたけど閉じ忘れてエラー。

Typstを使うことで、カッコに関連するエラーに悩まされることなく数式を記述することができます。例えば、\left(\frac{(a + 1/2)}{2} \right) \times bは単に

$ ((a + 1/2) / 2) times b  $

と記述するだけで、Typstが自動的に適切な大きさの括弧を調整してくれます。
\right(\left(などのような明示的な指定は必要ありません。

埋もれているTexファイルをサルベージ

既に大量のTexファイルを保有している場合でも、Typstに移行することは比較的容易です。
pandocの変換機能 typst-pandoc使えば、比較的に容易にTypstに移行できるかもしれません。

https://github.com/lvignoli/typst-pandoc

導入について

公式でオンラインのサービスもあるのですが、本格的に使い倒すなら

  1. まず、VSCodeをインストールします。

  2. 次に、Typst LSPという拡張機能を導入します。この拡張機能を使うと、VSCode上でTypstを利用することができます。さらに、可視化のためにvscode-pdfもインストールしておくと便利です。

  3. Typstの文法や機能を使いながら文書を書いていきます。

https://marketplace.visualstudio.com/items?itemName=nvarner.typst-lsp

以上の手順に従うことで、Typstを利用して文書を作成する準備が整います。VSCode上でTypstを使用することで、より便利かつ効率的な文書作成が可能となります。詳細な使用方法や設定については、公式のレファレンスや追加のリソースを参照してください。

https://typst.app/docs

... and more!

  • bibファイルから参考文献を簡単に引用できたり、
  • imgファイルを埋め込んで位置の調整も簡単にできたり、
  • 定理環境のカスタムも驚くくらいに自然に設定できて楽☺️
  • 変数を定義して簡単な計算なら走らせることもできるし、ラップしてpythonを動かすことも!

そしてなにより、むちゃくちゃ早い🛣️

以上がTypstの特徴と利点についての簡単な紹介です。Typstを使うことで、従来の方法に比べてより簡単かつ自然な作業環境を享受することができます。ぜひTypstを試してみてください!

Discussion