注意 当サイトは、Typst v0.12.0 公式ドキュメントを、日本語コミュニティが非公式に翻訳したものです。誤訳・未訳・古い情報が含まれている可能性があるため、公式ドキュメント との併用を推奨します。このサイトの内容に誤りを発見された方は、GitHubリポジトリまでご報告を頂けましたら幸いです。我々のコミュニティにご興味のある方は、ぜひ非公式Discordサーバー「くみはんクラブ」にご参加ください。
Warning: This site provides an unofficial translation of the Typst v0.12.0 documentation by the Japanese Community. Please note that there may be some inaccuracies, untranslated sections or outdated information. We highly recommend referring to the latest official documentation as well. If you find any errors in the content, please let us know through our GitHub repository. If you are interested in our community, feel free to join our unofficial Discord server, “Kumihan Club.”
Typst ドキュメント日本語版

構文

Typstはマークアップ言語です。 これは、シンプルな構文を使用して一般的なレイアウトタスクを簡単に行えるということです。 Typstの軽量なマークアップ構文は、文書を簡単かつ自動的にスタイリングできるsetルールとshowルールによって補完されています。 これらすべては、組み込み関数およびユーザー定義関数を備えた、緊密に統合されたスクリプト言語によって支えられています。

モード

Typstには3種類の構文モードがあります。マークアップモード、数式モード、そしてコードモードです。 Typst文書では、マークアップモードがデフォルトであり、数式モードでは数式を書くことができ、コードモードではTypstのスクリプト機能を利用することができます。

以下の表を参照し、いつでも特定のモードに切り替えることができます。

新たなモード構文
コードコードの前に#を付けるNumber: #(1 + 2)
数式式を$..$で囲む$-x$ is the opposite of $x$
マークアップマークアップを[..]で囲むlet name = [*Typst!*]

一度#でコードモードに入ると、途中でマークアップモードや数式モードに切り替えない限り、さらにハッシュを使う必要はありません。

マークアップ

Typstは、最も一般的な文書要素に対する組み込みのマークアップを提供します。 ほとんどの構文要素は、対応する関数のショートカットに過ぎません。 以下の表は、利用可能なすべてのマークアップと、その構文と使用法について詳しく学ぶための最適なページへのリンクを示しています。

名称参照
段落区切り空行parbreak
強調(太字)*strong*strong
強調(イタリック)_emphasis_emph
rawテキスト`print(1)`raw
リンクhttps://typst.app/link
ラベル<intro>label
参照@introref
見出し= Headingheading
箇条書きリスト- itemlist
番号付きリスト+ itemenum
用語リスト/ Term: descriptionterms
数式$x^2$Math
改行\linebreak
スマートクオート'single' or "double"smartquote
短縮記号~, ---Symbols
コード構文#rect(width: 1cm)Scripting
文字エスケープTweet at us \#adBelow
コメント/* block */, // lineBelow

数式モード

数式モードは、数式を組版するために使用される特別なマークアップモードです。 数式を $ の文字で囲むことによって、数式モードに入ることができます。 これはマークアップモードとコードモードの両方で機能します。 数式が少なくとも1つのスペースで始まり終わる場合、その数式は独自のブロックに組版されます(例:$ x^2 $)。 インライン数式は、スペースを省略することで作成できます(例:$x^2$)。 以下に、数式モードに特有の構文の概要を示します。

名称参照
インライン数式$x^2$Math
ブロック数式$ x^2 $Math
下付き添え字$x_1$attach
上付き添え字$x^2$attach
分数$1 + (a+b)/5$frac
改行$x \ y$linebreak
揃え位置$x &= 2 \ &= 3$Math
変数アクセス$#x$, $pi$Math
フィールドアクセス$arrow.r.long$Scripting
暗黙の乗算$x y$Math
短縮記号$->$, $!=$Symbols
数式内のテキスト/文字列$a "is natural"$Math
数式関数呼び出し$floor(x)$Math
コード構文$#rect(width: 1cm)$Scripting
文字エスケープ$x\^2$Below
コメント$/* comment */$Below

コードモード

コードブロックや式の中では、新しい式は先頭に#を付けずに始めることができます。 多くの構文要素は式に特有のものです。 以下に、コードモードで利用可能なすべての構文の一覧表を示します。

名称参照
nonenonenone
自動autoauto
ブール値false, truebool
整数10, 0xffint
浮動小数点数3.14, 1e5float
長さ2pt, 3mm, 1em, ..length
角度90deg, 1radangle
比率2frfraction
割合50%ratio
文字列"hello"str
ラベル<intro>label
数式$x^2$Math
rawテキスト`print(1)`raw
変数アクセスxScripting
コードブロック{ let x = 1; x + 2 }Scripting
コンテンツブロック[*Hello*]Scripting
括弧付き式(1 + 2)Scripting
配列(1, 2, 3)Array
辞書(a: "hi", b: 2)Dictionary
単項演算子-xScripting
二項演算子x + yScripting
代入x = 1Scripting
フィールドアクセスx.yScripting
メソッド呼び出しx.flatten()Scripting
関数呼び出しmin(x, y)Function
引数展開min(..nums)Arguments
無名関数(x, y) => x + yFunction
letバインディングlet x = 1Scripting
名前付き関数let f(x) = 2 * xFunction
setルールset text(14pt)Styling
set-ifルールset text(..) if .. Styling
show-setルールshow heading: set block(..)Styling
関数付きshowルールshow raw: it => {..}Styling
show-everythingルールshow: templateStyling
コンテキスト式context text.langContext
条件式if x == 1 {..} else {..}Scripting
forループfor x in (1, 2, 3) {..}Scripting
whileループwhile x < 10 {..}Scripting
ループ制御フローbreak, continueScripting
関数からのリターンreturn xFunction
モジュールをインクルードinclude "bar.typ"Scripting
モジュールをインポートimport "bar.typ"Scripting
モジュールからのインポートimport "bar.typ": a, b, cScripting
コメント/* block */, // lineBelow

コメント

コメントはTypstによって無視され、出力には含まれません。 これは古いバージョンを除外したり、注釈を追加したりするのに便利です。 単一行をコメントアウトするには、行の先頭に//を付けます。

// our data barely supports
// this claim

We show with $p < 0.05$
that the difference is
significant.
Preview

コメントは /**/ で囲むこともできます。この場合、コメントを複数行にわたって書くことができます。

Our study design is as follows:
/* Somebody write this up:
   - 1000 participants.
   - 2x2 data design. */
Preview

エスケープシーケンス

エスケープシーケンスは、Typstで入力が難しい特殊文字や他に特別な意味を持つ文字を挿入するために使用されます。 文字をエスケープするには、バックスラッシュをその前に置きます。 任意のUnicodeコードポイントを挿入するためには、16進エスケープシーケンス(\u{1f600})を使用できます。 このエスケープシーケンスは文字列でも機能します。

I got an ice cream for
\$1.50! \u{1f600}
Preview

パス

Typst has various features that require a file path to reference external resources such as images, Typst files, or data files. Paths are represented as strings. There are two kinds of paths: Relative and absolute.

Project root

By default, the project root is the parent directory of the main Typst file. For security reasons, you cannot read any files outside of the root directory.

If you want to set a specific folder as the root of your project, you can use the CLI's --root flag. Make sure that the main file is contained in the folder's subtree!

typst compile --root .. file.typ

In the web app, the project itself is the root directory. You can always read all files within it, no matter which one is previewed (via the eye toggle next to each Typst file in the file panel).

Paths and packages

A package can only load files from its own directory. Within it, absolute paths point to the package root, rather than the project root. For this reason, it cannot directly load files from the project directory. If a package needs resources from the project (such as a logo image), you must pass the already loaded image, e.g. as a named parameter logo: image("mylogo.svg"). Note that you can then still customize the image's appearance with a set rule within the package.

In the future, paths might become a distinct type from strings, so that they can retain knowledge of where they were constructed. This way, resources could be loaded from a different root.