LoginSignup
12
3

初めてのTypst

Posted at

はじめに

みなさん、TeXを使っていますか?
日々のレポートやノート、論文などでTeXを多用している方、これからTeXを使おうとしている方は多いのではないでしょうか。
TeXは、多数の数式などを含む場合や、細かな書式設定をしたい場合、繰り返しの処理が多い場合などにWordなどのワードプロセッサに比べて非常に便利です。
けど、TeX を使っていて(もしくは使おうとして)正直次のような不満を感じた方も多いのではないでしょうか。

  • 環境構築がめんどくさそうで始めるのが億劫
  • なんか、文字数多くない?
  • PDFへのコンパイルが遅い

そこでおすすめなのがTypstというソフトです。

Typstは、2023春にパブリックベータが公開された非常に新しいシステムです。
記法がシンプルでわかりやすい上、Rustで書かれており、非常にモダンであることと、コンパイルなどが早いことなどが特徴です。

インストールする

macOSの場合

Homebrewを通してインストールできます。

brew install typst

をターミナルで実行しましょう。

Linuxの場合

こちらからインストールできます。

Windowsの場合

wingetを用いてインストールできます。

winget install --id Typst.Typst

文章を作る

初めての文章

早速、文章を作ってみましょう。お好きなエディタをお使いください。

まずは initial.typ というファイルを作成し、以下の文をコピペしましょう。

This is my first Typst document.

その後、以下のコマンドを実行します。

$ typst compile initial.typ

すると、以下のような文章ができます。

initial.png

とても簡単ですね!

typst compile initial.typ [任意の名前].pdf

などとすると出力ファイルの指定もできます。(出力ファイルは、pdf以外にもpngなどに対応しています)

日本語を書く

デフォルトの状態でも日本語は書けますが、ややフォントが変です。
なので、以下のようにドキュメントの最初でフォントを指定しましょう。

#set text(font: "Hiragino Kaku Gothic ProN")

なお、このフォントは他の環境だと使えないかもしれません。

$ typst fonts

上のコマンドを実行すると、使用可能なフォント一覧が出てきますので、その中から良さげなものを選びましょう。

文字修飾

Typstは、Markdown形式などと非常によく似た記法ができます。
以下のように打ってみましょう。

#set text(font: "Hiragino Kaku Gothic Pro")

= 大見出し

== 中見出し

=== 小見出し

= 文字修飾
太字にする方法には2種類あります。
 * アスタリスクで囲む * または #strong[strong関数] を使う

1行空白行を挿入するか、`\` で改行されます。\
`#linebreak()` や `#parbreak()`などの関数もあります。#parbreak()

リンクも#link("http://typst.app")[ここをクリック] のように挿入できます。

番号をつけない箇条書きは`-`を使います。
- 一個目
- 二個目
- 三個目

番号付きの箇条書きは`+`を使います。
+ 一個目
+ 二個目
+ 三個目

これをコンパイルすると、次のようになります。
markup.png

非常にシンプルに文章を書けるのがわかります。

数式

#set text(font: "Hiragino Kaku Gothic Pro")
#set math.equation(numbering: "(1)")

二次関数は、次のように書けます。
$ y = a x^2 + b x + c $

@eqation[式] のように、`<>`でラベルを付けて、`@`で呼び出すことも可能です。
$  integral_(0)^(1) sin theta dif theta $ <eqation>

シグマは、`sum`コマンドで書けます。
$ sum_(k=1)^oo (-1)^(k-1)/k = log 2 $

math.png

関数

変数やfor文、その他自作関数などを使用することができます。

#set text(font: "Hiragino Kaku Gothic Pro")
#set math.equation(numbering: "(1)")

#for i in range(5){
  [#i 番目です]
  parbreak()
}

#let num = 1

numは #num です。

#let add(a, b)={
  a + b
}

1 + 2は、#add(1, 2)です。

このコードをコンパイルすると、以下のようになります。
vari.png

Typstをもっと使いこなす

Typst は新しいため、そこまで解説等があるわけではありません。
公式ドキュメント(英語)はある程度充実しているので、使い方がわからない場合はぜひ調べてみましょう。

ぜひTypstを使いこなしてください〜

12
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
3