LaTeXは大変。Typstを使おう。

[Typst](https://typst.app/)(タイプス)は、**何もかもが超簡単な**$\LaTeX$です。

# いかに簡単か

今からこれを、$\LaTeX$とTypstで書きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976299/8a83a7ac-924f-7217-b312-08e4e02a3770.png)

<br>

これが$\LaTeX$

```latex
\begin{itemize}
  \item Fast
  \item Flexible
  \item Intuitive
\end{itemize}
```

<br>

これがTypst

```typst
- Fast
- Flexible
- Intuitive
```

<br>
明らかに簡単です。


<br>

# 一から書くな、パクれ

さらに、Typstには[様々なテンプレート](https://typst.app/universe/search/)があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976299/1c283355-0aa3-126e-cb41-959e453067c9.png)

`#import "ライブラリ名"`と行頭に書くだけで、履歴書からIEEEの論文まで、**一瞬で**なんでも書くことができます。
スライドだって作れます。(僕は普通にパワポ使います。)


# グラフも書けます。

これを実行すると...

```
#import "@preview/cetz:0.3.1": canvas, draw, vector, matrix

#set page(width: auto, height: auto, margin: .5cm)

#canvas({
  import draw: *

  // Set up the transformation matrix
  set-transform(matrix.transform-rotate-dir((1, 1, -1.3), (0, 1, .3)))
  scale(x: 1.5, z: -1)

  grid((0,-2), (8,2), stroke: gray + .5pt)

  // Draw a sine wave on the xy plane
  let wave(amplitude: 1, fill: none, phases: 2, scale: 8, samples: 100) = {
    line(..(for x in range(0, samples + 1) {
      let x = x / samples
      let p = (2 * phases * calc.pi) * x
      ((x * scale, calc.sin(p) * amplitude),)
    }), fill: fill)

    let subdivs = 8
    for phase in range(0, phases) {
      let x = phase / phases
      for div in range(1, subdivs + 1) {
        let p = 2 * calc.pi * (div / subdivs)
        let y = calc.sin(p) * amplitude
        let x = x * scale + div / subdivs * scale / phases
        line((x, 0), (x, y), stroke: rgb(0, 0, 0, 150) + .5pt)
      }
    }
  }

  group({
    rotate(x: 90deg)
    wave(amplitude: 1.6, fill: rgb(0, 0, 255, 50))
  })
  wave(amplitude: 1, fill: rgb(255, 0, 0, 50))
})
```

こうなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3976299/879b1c88-0e9c-e891-2a85-d57fbe47e710.png)

$\LaTeX$でグラフを入れようと思うと、まずGnuplotで書き、それをpdfにコンパイルして、LaTeX全体をコンパイルしなおして...とこれまたとても面倒。

# でも、環境構築したくない

$\LaTeX$は、環境構築が大変なことでも有名です。

* TeX Liveのインストール(約2GB)
これに5時間
.
.
.
.
.

* VSCodeの設定(拡張機能入れて、settings.jsonいじって...)
これに1~2時間
.
.
* 書き方を調べて...(Documentclass, usepackage, begin...)
これに1時間
.

ついに...ついに完成したぞ...!

*Hello, World*

日が暮れてしまいます。


### 対して、Typst

* Typstコンパイラのインストール (15.5MB、一瞬)
* VSCodeの設定 (拡張機能入れるだけ)
* 書き方はとても簡単。ちょっと調べたら書けます。

公式ドキュメントも充実してます。(日本語版はないので、Google翻訳で許してください)

https://typst-app.translate.goog/docs?_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=en-US&_x_tr_pto=wapp

使わない理由がありません。

# まとめ的な

他にも、計算ができるなど、色々な便利機能が備わっています。
知名度の低さ以外に欠点がありません。



ブラウザ上でも使えます。(無料、アカウント作成が必要)

https://typst.app/signup

$\LaTeX$でできて、Typstでできないことはありません。$\LaTeX$の時代は終ったのです。

## 付録 (本編)

### LaTeXユーザー向け

* [LaTeXユーザー向けのガイド(公式)](https://typst-app.translate.goog/docs/guides/guide-for-latex-users/?_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=en-US&_x_tr_pto=wapp)

### Typst便利ツール

* [パッケージの一覧](https://typst.app/universe/search/?kind=packages)
* [テンプレートの一覧](https://typst.app/universe/search/?kind=packages)
* [awesome-typst (Typstに関するものまとめ)](https://github.com/qjcg/awesome-typst?tab=readme-ov-file)

### チュートリアル(日本語)
* [Typstの始め方と使い方](https://qiita.com/nhancoromochi/items/47d3c010735cced4c1b6)
* [やりたいことから始めるTypst](https://qiita.com/tomoyatajika/items/649884befe95c5f1dcea)
* [日本語版Typstのドキュメント](https://typst-jp.github.io/docs/)(日本語のフォーク、あんまり充実してない)


### すでに同じようなこと書いてる人はけっこういた
* [Typstのここがすごい！！](https://qiita.com/hikoharu14142/items/aa8cfb70d079b0324fba)
* [話題の組版エンジン Typst を触ってみた](https://zenn.dev/monaqa/articles/2023-04-19-typst-introduction)
* [Rust製の組版システムTypstを使ってみた](https://zenn.dev/xbit/articles/bdb59d0081b2d3)
* [Typst： いい感じのLaTeXの代替](http://www-het.phys.sci.osaka-u.ac.jp/~yamaguch/j/typst.html)


#### 後書きの後書き
あんまりモチベーションがなかったので、最低限の文字数で伝えたいことを書きました。
~~多少~~言葉が雑かもしれません。ごめんなさい。