Typstの環境構築 Windows編

# 概要
Windowsで[Typst](https://typst.app/)を用いた執筆作業を行うための環境構築手順の一例を述べる．

# 詳細
## Typstのインストール
コマンドプロンプトで `winget install --id Typst.Typst` を実行する．
使用許諾契約への同意を求められるため，確認の上 `y` を入力する．

```
C:\Users\denkiuo604>winget install --id Typst.Typst
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?
[Y] Yes  [N] No: y

Found Typst [Typst.Typst] Version 0.10.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
```

:::note info
環境によっては，Typstに必要な依存関係が別途インストールされる場合がある．
筆者の環境ではTypstがインストールされる前に `Microsoft.VCRedist.2015+.x64` がインストールされた．
```
This package requires the following dependencies:
  - Packages
      Microsoft.VCRedist.2015+.x64
Installing dependencies:
(1/1) Found Microsoft Visual C++ 2015-2022 Redistributable (x64) [Microsoft.VCRedist.2015+.x64] Version 14.38.33135.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://download.visualstudio.microsoft.com/download/pr/6ba404bb-6312-403e-83be-04b062914c98/1AD7988C17663CC742B01BEF1A6DF2ED1741173009579AD50A94434E54F56073/VC_redist.x64.exe
  ██████████████████████████████  24.2 MB / 24.2 MB
Successfully verified installer hash
Starting package install...
Successfully installed
```
:::

Typstのダウンロードとインストールが行われる．
```
Downloading https://github.com/typst/typst/releases/download/v0.10.0/typst-x86_64-pc-windows-msvc.zip
  ██████████████████████████████  13.9 MB / 13.9 MB
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "typst"
Successfully installed
```
無事に完了したら，一度コマンドプロンプトを開き直して，Typstがインストールされていることを確認しよう．
```
C:\Users\denkiuo604>typst -V
typst 0.10.0 (70ca0d25)
```

### 動作確認
適当な場所に以下の内容のファイル `sample.typ` を作成する．本稿では `C:\Users\denkiuo604\sample.typ` とする． 
```typ:sample.typ
Hello, World!
Hello, Typst!
```
コンパイルを実行する．
```
C:\Users\denkiuo604>typst compile sample.typ
```
`sample.typ` を作成したフォルダに `sample.pdf` ができていればOKである．

![sample.pdf](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478774/a5d8974b-8d63-ac28-633f-2a0ed296ae0a.png)

## 執筆環境の準備
エディタは[Visual Studio Code](https://code.visualstudio.com/)を使用する．
拡張機能[Typst LSP](https://marketplace.visualstudio.com/items?itemName=nvarner.typst-lsp)を導入することで，シンタックスハイライトやコード補完，自動コンパイルなどの機能を利用できる．自動コンパイル機能はデフォルトで `onSave` (保存時にコンパイル) の設定になっている．

### シンタックスハイライトの例
```typ:fermat.typ
#set text(font: "Source Han Sans JP")
#set math.equation(numbering: "(1)")

次の方程式を満たす正の整数の組 $(a,b,c)$ は無数に存在する。
$ a^2+b^2=c^2 $ <pythagoras>
(@pythagoras[])を満たす正の整数の組 $(a,b,c)$ を*ピタゴラス数*という。
一方、3以上の整数 $n$ に対して
$ a^n+b^n=c^n $
を満たす正の整数の組 $(a,b,c)$ は存在しない。
この主張は*フェルマーの最終定理*と呼ばれ、1995年にイギリスの数学者アンドリュー・ワイルズによって完全に証明された。
```
上記が以下のように表示される．

![シンタックスハイライト](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478774/4be25ed7-461e-a87b-2e48-a475ce0f5673.png)

ちなみに，これをコンパイルするとPDFファイルは以下のようになる．

![出力されたPDFファイル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478774/e11cc57c-ce61-e63d-6693-e043aa49417a.png)

:::note warn
Typstでは `#set text(font: "Source Han Sans JP")` のようにフォントを指定できるが，フォントがインストールされている必要がある．使用可能なフォントはコマンドプロンプトで `typst fonts` を実行することで確認できる．
:::

# 参考
- [初めてのTypst](https://qiita.com/haseyu-ut/items/2194b7f522ebdf51e8df)
- [install コマンド | Microsoft Learn](https://learn.microsoft.com/ja-jp/windows/package-manager/winget/install)