# Typst で書く

Typst の論文、報告書、履歴書を、コードまたはビジュアルモードで書きます。ツールバーが Typst を代わりに書いてくれます。

Typst のテンプレートを選び、その `.typ` ソースを、コンパイルされた PDF の隣で編集します。ツールバーが Typst の構文を書いてくれるので、すべての変更は、読んで編集できるソースに残ります。マークアップを見たくないときは、ファイルをビジュアルモードに切り替えます。

![書式ツールバー、ソース、コンパイルされた報告書が並んだ Typst の例。](https://cdn.oleafly.com/images/screenshots/desktop/docs/typst-writing-dark-window-v2.png)

## 小さな報告書をコンパイルする

1. **新規プロジェクト → テンプレートを使う → Blank Typst document** を選びます。
2. **測定メモ** と名前を付けて、`main.typ` を開きます。
3. 下の例を貼り付けて、**再コンパイル**を選ぶか、⌘Enter / Ctrl+Enter を押します。

```typst title="main.typ"
#set document(title: "Measurement note", author: "Alex Chen")
#set page(paper: "a4", margin: 25mm)
#set heading(numbering: "1.")

= Measurement note
A short report on repeated measurements.

== Method <method>
We collect three observations and compare their mean.

$ overline(x) = (1 + 2 + 3) / 3 = 2 $

== Results
See @method for the procedure.

#table(
  columns: 2,
  [Run], [Value],
  [1], [1],
  [2], [2],
  [3], [3],
)
```

PDF には、番号付きの見出し、ディスプレイ数式、手法への参照、2 列の表が表示されるはずです。

入力に合わせて PDF が変わるのを見るには、**再コンパイル**の横の矢印を開き、**自動コンパイル**を**オン**にします。Typst プロジェクトでは、これがライブプレビューです。[自動コンパイルによるライブプレビュー](/docs/typst/#live-preview-with-auto-compile)を参照してください。

[例のソースをダウンロード](/examples/writing-example.typ)

## すべてのツールバーのツール

書式ツールを使う前にテキストを選択すると、そのテキストが囲まれます。選択がなければ、ツールバーは上書きして入力できるプレースホルダーを挿入します。エディタが狭くてすべてのボタンが収まらないときは、収まらないものが**その他の書式設定**（`…`）に移ります。これらのツールの多くは、エディタの右クリックメニューにもあります。

### コード / ビジュアル

ツールバーの先頭にあるスイッチは、ファイルの表示方法を切り替えます。**コード**は Typst のソースを表示します。**ビジュアル**は、見出し、強調、リスト、数式、画像、表、参照、脚注をその場で描画し、カーソルがある行ではソースに戻して表示します。ファイルはどちらのモードでも同じです。詳しくは、[Typst のビジュアルモード](#visual-mode)を参照してください。

### 元に戻す

直前の編集を取り消します。⌘Z / Ctrl+Z。元に戻す操作がないときは、ボタンがグレーアウトされます。

### やり直す

取り消した編集をもう一度適用します。**⌘Shift+Z / Ctrl+Shift+Z**。

### 見出し → タイトル

タイトルを選んで**タイトル**を選びます。`= Title`。

### 見出し → 節

文書の中にセクションを追加します。`== Section`。

### 見出し → 小節

セクションの 1 つ下のレベルを追加します。`=== Subsection`。

### 見出し → 小々節

第 4 レベルの見出しを追加します。`==== Subsubsection`。

### 見出し → 小見出し

第 5 レベルの見出しを追加します。`===== Minor heading`。

### 見出し → 段落レベルの見出し

第 6 レベルの見出しを追加します。`====== Paragraph heading`。

### 太字

「three observations」を選びます。`*three observations*`、⌘B / Ctrl+B。

### 斜体

強調したい用語を選びます。`_term_`、⌘I / Ctrl+I。

### 下線

語句を選びます。`#underline[phrase]`。

### 取り消し線

不要になった語句に印を付けます。`#strike[phrase]`。

### インラインコード

ファイル名や変数名を選びます。バッククォートで囲みます。

### リンクを挿入

`url` を置き換え、次に `text` を置き換えます。`#link("url")[text]`。

### プロジェクトから引用

プロジェクトの参考文献を、キー、著者、タイトルで検索して、項目を選びます。Oleafly が `@key` を書き込みます。文書にまだ `#bibliography` の呼び出しがなければ、Oleafly が追加します。一覧の下にある**新しい引用を探して追加…** は、新しい資料の検索を開きます。[引用を追加する](#add-citations)を参照してください。

### 相互参照を挿入

プロジェクトの一覧からラベルを選ぶと、`@label` が書き込まれます。例では `method` を選ぶと `@method` になります。**ここにラベルを追加**は、代わりにカーソル位置の項目に新しいラベルを付けます。

### ラベルを追加

見出し、図、数式の中にカーソルを置いて**ラベルを追加**を選びます。例の Results の見出しでは、Oleafly が `<sec:results>` を追加します。項目にすでにラベルがあるときは、ボタンがそれを選択します。

### 脚注を挿入

単語の後ろにカーソルを置きます。`#footnote[note text]`。

### 引用ブロックを挿入

新しい行にカーソルを置きます。`#quote(block: true)[quote]`。

### 図を挿入

図のダイアログを開きます。**プロジェクトの画像**から画像を選ぶか、**ディスクから読み込む…** を選び、幅、キャプション、ラベル、代替テキスト、配置を設定します。カーソルが既存の `#figure` の中にあると、同じボタンが**図を編集**を開き、それらをどれでも変更できます。[キャプション付きの図を追加する](#add-a-captioned-figure)を参照してください。

### 表を挿入

グリッドを開き、行数と列数を選びます。Oleafly は、見出し行と上、中、下の罫線を持つ `table` を含む `#figure` を挿入し、`caption: [Caption]` とラベル `<tab:label>` も加えます。キャプション、ラベル、空のセルを置き換えます。代わりにスプレッドシートから表を作るには、[データファイルからの表](#tables-from-data-files)を参照してください。

### 画像を挿入

画像を読み込み、選択されているファイル名を、その相対パスに置き換えます。`#image("image-filename")`。画像ファイルをエディタに貼り付けるかドロップすることもでき、Oleafly はそれをプロジェクトに保存して、その画像を使う図を挿入します。

### 図を描く

Typst モードで[ダイアグラムコンポーザー](/docs/figures-diagrams/)を開きます。キャンバスに描くか fletcher のコードを編集してから、**Typst として挿入**を選ぶと、カーソル位置にダイアグラムが入ります。最初のプレビューでは Typst Universe から fletcher パッケージをダウンロードするため、オンラインである必要があります。

### 画像から Typst へ

数式やテキストのスクリーンショットを選ぶと、カーソル位置に Typst として文字起こしされます。ツール用のモデル（別のモデルを選ばない限り、ローカルの Ollama モデル）を使います。モデルを選んでいない状態で、Ollama が動いていないか、画像を読めるモデルがない場合は、代わりにアシスタントのモデルを使い、画像はそのプロバイダに送られます。結果を確認して、コンパイルしてください。

### リスト → 箇条書き

観察項目のリストを始めます。`- Item`。

### リスト → 番号付きリスト

手順の連番を始めます。`+ Item`。

### 数式

`x` を選んで、数式のアイコンをクリックします。`$x$`。

### ディスプレイ数式

独立した行の数式です。`$ x $`。各 `$` の内側にスペースが入ります。

### 番号付き数式

ラベル付きのディスプレイ数式で、`$ x $ <eq:label>` のようになります。Typst が数式に番号を付けるのは、文書に番号付けのルールがある場合だけです。ルールがなければ、注意書きに**ルールを追加**が表示され、これを選ぶとファイルの先頭近くに `#set math.equation(numbering: "(1)")` が追加されます。

### 揃えた数式

`&` で揃えた複数の数式で、行の間に `\` を置きます。`$ a &= b \ c &= d $`。

### 分数

`frac(a, b)` を挿入します。カーソルがまだ数式の中にないときは、`$` で囲みます。テキストを選択している場合は、その選択範囲が分子になります。

### 記号

記号ピッカーを開き、記号を検索して選択します。Oleafly は、Typst での名前で書き込みます。数式の中なら `arrow.r`、地の文では `#sym.arrow.r` です。

### コードブロック

コードを数行選ぶか、プレースホルダーを置き換えます。3 つのバッククォートで囲んだブロックになります。開きのフェンスの後ろに言語を書くと、ハイライトされます。

### コードインテリジェンス → 定義へ移動

ラベル、変数、関数にカーソルを置いてこのアクションを選ぶか、F12 を押します。別のファイルにあっても、定義された場所が開きます。

### コードインテリジェンス → 参照を検索

ラベル、変数、関数が使われているすべての場所を一覧します。⇧F12。

### コードインテリジェンス → シンボルの名前を変更

ラベル、変数、関数の名前を、プロジェクト全体で変更します。F2。3 つすべてについては、[コードインテリジェンス](/docs/code-intelligence/#typst-files)で説明しています。

### Typst パッケージ

バーの右端にあるパッケージのアイコンは、Typst Universe を検索し、`#import` 行を挿入します。詳しくは、[パッケージ、設定、分析](#packages-settings-and-insights)を参照してください。

### 文書の分析

文書の見出し、図、表、数式、ラベル、引用、to-do を、それぞれの行へのリンク付きで一覧します。[文書の分析](/docs/document-insights/)を参照してください。

### 文書の設定

文書の `#set` ルールを編集して、用紙サイズ、余白、フォント、言語、行揃え、行間、番号付けを変更します。[文書の設定](/docs/document-settings/)を参照してください。

### プロジェクト情報

文書と選択範囲の、単語数、図の数、数式の数と、校正の結果を表示します。

### 検索

アクティブなファイルで単語を検索します。⌘F / Ctrl+F。

### PDF へ移動

カーソルの位置から、コンパイルされた PDF の対応する場所へ移動します。このボタンは Typst 0.13 以降で表示されます。[ソースと PDF の間を移動する](#jump-between-the-source-and-the-pdf)を参照してください。

## ビジュアルモード

どの `.typ` ファイルでも、ツールバーを**コード**から**ビジュアル**に切り替えます。ビジュアルモードは、マークアップをその場で描画する、同じエディタです。

- 見出し、強調と太字のテキスト、raw テキスト、リンク、色付きのテキスト
- マーカー付きの箇条書き、番号付きリスト、用語リスト
- Typst が描画する行内数式とディスプレイ数式
- 画像と図。キャプションはテキストとして表示されます
- 入力できるグリッドとしての表。セルを選ぶと、罫線、配置、行、列のための小さなツールバーが表示されます。
- チップとしての参照と引用、小さなマーカーとしての脚注

行にカーソルを置くと、そのソースが元に戻り、編集できます。離れると、描画された形に戻ります。ファイルの先頭にある `#set`、`#show`、`#import`、`#let` の行は、**文書の設定を表示**バーにまとめられ、クリックして開けます。ビジュアルモードで描画できないものは、ソースのまま画面に残ります。ツールバーのどのボタンも、どちらのモードでも同じ Typst を書き込み、行番号、検索、スペルチェック、コンパイルエラーは引き続き動作します。

新しいプロジェクトはコードで開き、各プロジェクトは最後に使っていたモードを記憶します。3 つの言語すべてでのスイッチについては、[ビジュアル編集](/docs/editor/#visual-editing)で説明しています。

## 入力中の補助

Typst ファイルには、LaTeX ファイルと同じ補助機能が、Typst の構文に合わせて用意されています。

- ガターの矢印をクリックすると、見出しが、同じレベルの次の見出しまで折りたたまれます。コードブロック、コンテンツブロック、数式、長い引数リストも折りたためます。[コードの折りたたみ](/docs/editor/#code-folding)を参照してください。
- スクロールすると、カーソルより上の見出しがエディタの上部に固定されます。ファイルの上のパンくずバーには、今いるセクションが表示され、パンくずをクリックするとその見出しに移動します。
- `$` を入力すると閉じる `$` が追加され、空のペアの中でスペースを押すと、ディスプレイ数式に変わります。リスト項目では、Enter で次の項目が始まります。残りは、[Typst の入力補助](/docs/editor/#typst-typing-aids)で一覧しています。
- Typst の言語サーバーが、関数、ファイルパス、ラベル、引用キー、パッケージ、参考文献スタイルを補完します。[Typst の補完](/docs/autocomplete/#typst-completion)を参照してください。
- 行頭か、スペースの後ろで `/` を入力すると、スニペットが出ます。見出し、図、表、数式、脚注、目次、参考文献などです。
- ⌘/ / Ctrl+/ は、選択した行を `//` でコメントアウトまたはコメント解除します。

### 数式のプレビュー

カーソルが数式の中にあると、Typst が結果をそのすぐ上に描画します。プレビューのメニューから、数式を離れるまで非表示にしたり、オフにしたりできます。

`$\frac{a}{b}$` のような LaTeX の数式を Typst ファイルに貼り付けると、その下に **Typst の数式として貼り付け**ボタンが表示されます。クリックすると、貼り付けた内容が Typst の数式に置き換わります。Esc を押すと LaTeX のままにできます。すでにファイルにある LaTeX の数式は、選択して、右クリックメニューから **LaTeX の数式を Typst に変換**を選びます。1 回限りの変換には、[数式から Typst へ](/docs/tools/equation-to-typst/)ツールが、プロジェクトの外で同じことを行います。

## キャプション付きの図を追加する

1. ツールバーの**図を挿入**を選びます。
2. **プロジェクトの画像**から `plot.png` を選ぶか、**ディスクから読み込む…** を選んでプロジェクトにコピーします。
3. **4 分の 3 の幅**を選び、**キャプションを追加**と**ラベルを追加**をオンにします。キャプションと、ラベル `fig:measurements` を入力します。
4. 画面を読み上げる利用者のために画像を説明する**代替テキスト**を追加し、図をページの上部や下部に浮かせたいなら**配置**を選びます。
5. **図を挿入**を選びます。

Oleafly は、次のような図を書き込みます。

```typst
#figure(
  image("figures/plot.png", width: 75%),
  caption: [Measurements across three runs.],
) <fig:measurements>

See @fig:measurements for the comparison.
```

あとで図を変更するには、図の中にカーソルを置いて、もう一度**図を挿入**を選びます。ダイアログは**図を編集**として、現在の値とともに開きます。

## データファイルからの表

エディタで右クリックして、**CSV / XLSX から表を作成…** を選びます。CSV、TSV、Excel、JSON のファイルを選び、プレビューを確認して、必要ならキャプションとラベルを追加します。**カーソル位置に挿入**は、ツールバーの表と同じ罫線の Typst の表を書き込みます。Typst がマークアップとして読んでしまうセルのテキストは、エスケープされます。

**データファイルとのリンクを保つ**をオンにすると、表がデータに結び付いたままになります。Oleafly はデータをプロジェクトの `data` フォルダにコピーし、表は文書をコンパイルするたびにそのファイルを読み込みます。ファイルを編集すれば、次のコンパイルで表が変わります。ダイアログの詳細は、[データファイルから表を読み込む](/docs/writing/tables-equations/#import-a-table-from-a-data-file)で説明しています。

## 引用を追加する

**プロジェクトから引用**を使うか、`@` を入力して補完の一覧からキーを選びます。Typst では、引用キーと文書のラベルはどちらも `@` を使います。参照先は、参考文献かラベルが決めます。

参考文献の一覧を表示したい場所に、参考文献を置きます。

```typst
#bibliography("references.bib")
```

ファイルは BibTeX（`.bib`）でも Hayagriva（`.yml`）でもよく、呼び出しではファイルのリストを指定することもできます。[参考文献と引用](/docs/citations/)で追加した引用は、文書が宣言しているファイルに入り、そのファイルが必要とする場合は Hayagriva に変換されます。参考文献のスタイルを変えるには、参考文献パネルの下にある**引用スタイル**メニューを使うと、`style:` 引数が書き込まれます。[Typst の引用スタイルを選ぶ](/docs/citations/#choose-a-typst-citation-style)を参照してください。

## パッケージ、設定、分析

ツールバーの右端にある 3 つのボタンは、文書全体に対して働きます。

- **Typst パッケージ**は、Typst Universe を検索し、`#import` 行を書き込みます。import が古いリリースを指しているときは、エディタが更新を提案します。プロジェクトは、オフラインでコンパイルできるよう、パッケージのコピーを自分で保持することもできます。[パッケージ](/docs/packages/#typst-packages)と [Typst Universe のパッケージ](/docs/typst/#packages-from-typst-universe)を参照してください。
- **文書の分析**は、見出し、図、表、数式、ラベル、引用、to-do を一覧し、投稿フォーム用にタイトル、著者、キーワード、概要をコピーします。ダイアログを開くときに Typst が文書を読むので、番号とページは最新です。[文書の分析](/docs/document-insights/)を参照してください。
- **文書の設定**は、用紙サイズ、余白、段数、本文フォント、サイズ、言語、行揃え、行間、見出しと数式の番号付けを変更します。Oleafly は、選択した内容をメインファイルの `#set` ルールに書き込みます。プロジェクトのビルドバリアントもここにあります。[文書の設定](/docs/document-settings/)を参照してください。

## エラーとチェック

コンパイルが失敗すると、各エラーは、それが属するファイルの中で、Typst が報告した範囲そのままに下線が引かれます。下線にマウスを重ねると、メッセージと Typst のヒントが読めます。未知の名前、見つからないファイルやパッケージ、閉じられていない括弧などのよくあるエラーには、分かりやすい説明が付きます。[ソース内のコンパイルエラー](/docs/editor/#compile-errors-in-the-source)を参照してください。

[スペルと文法](/docs/spellcheck-grammar/)は、キャプション、表のセル、`abstract:` のようなテンプレートのフィールドを含め、Typst ファイル内の文章をチェックし、コードは飛ばします。[プリフライト](/docs/preflight/#typst-projects)は、Typst のソースについて、未解決の参照と引用、代替テキストの欠落、画像の欠落、文書のメタデータ、ブラインド査読の問題をチェックします。

## ソースと PDF の間を移動する

ツールバーの **PDF へ移動**を選ぶか、⌘⇧J / Ctrl+Shift+J を押すと、カーソルの位置からページへ移動します。PDF では、⌘ または Ctrl を押しながら単語をクリックすると、`#include` で取り込んだファイルであっても、その行に戻れます。同期には Typst 0.13 以降が必要です。[ソースと PDF の同期](/docs/synctex/#typst-projects)を参照してください。

## ファイルを整形する

**文書を整形**は、typstyle でファイル全体を整えます。⇧⌥F / Shift+Alt+F を押すか、右クリックメニューから選びます。**選択範囲を整形**は、選択した行だけを整形します。⌘S / Ctrl+S を押すたびに整形するには、**設定 → 外観 → エディタ**の **Typst** にある**保存時に整形**をオンにします。[Typst ファイルを整形する](/docs/code-intelligence/#format-a-typst-file)を参照してください。

## Typst のバージョン

Oleafly には Typst 0.15.1 が付属し、**設定 → エンジン → Typst** には、ダウンロードできる Typst 0.11 から 0.15 までが一覧されます。新しいプロジェクトは既定のバージョンを固定するので、Oleafly があとで新しい Typst を出荷しても、改行とページ数は変わりません。1 つのプロジェクトのバージョンを変えるには、**再コンパイル**の横の矢印を開き、**Typst のバージョン（このプロジェクト）** で選びます。言語サーバーは、プロジェクトのバージョンに従います。固定、見つからないバージョン、切り替える前に新しいリリースを試す方法は、[Typst のバージョン](/docs/typst/#typst-versions)で説明しています。

## 整理して書き出す

長い報告書はファイルに分け、`#include "sections/method.typ"` で取り込みます。図、データ、フォント、参考文献ファイルをプロジェクトの中に置いておくと、ソースの ZIP が、文書に必要なものをすべて持ち運べます。

コンパイルして結果を確認してから、**書き出し**を開きます。**PDF として書き出す**、**ソースを書き出す（.zip）**、**ページを PNG として書き出す**、**画像と HTML**があり、最後のものは Typst 自身で PNG や SVG のページか HTML ファイルを書き出します。Typst 0.13 以降では、Word、HTML、Markdown、LaTeX、プレーンテキストの書き出しが Typst 自身の HTML 出力を通るので、数式と参照が保たれます。[プロジェクトの書き出しと変換](/docs/export/#typst-images-and-html)を参照してください。ログとコンパイルのオプションは[コンパイル](/docs/compiling/)で、プロジェクトの整理は[ファイルとフォルダ](/docs/files/)で説明しています。

既存の LaTeX プロジェクトを Typst に移すには、[LaTeX プロジェクトを Typst に変換する](/docs/typst/#convert-a-latex-project-to-typst)を参照してください。
