手順
- (Macです、Windowsでも同じようにできる?)
-
brew install typst
でインストール - VS Code拡張機能「Typst LSP」をインストール
(追記:2024年11月7日現在、Typst LSPが使えなくなり、Tinymist Typstに統合された)
使い方(文書)
- 適当に
main.typ
みたいなのを作りましょう - 以下のような書き込みをするだけで簡単に始められるます(1チャンク目はLaTeXのようなアウトプットが出るような設定で、2チャンク目は定理環境、3チャンク目はオリジナルコマンド)
- (その他の基本的なルールは適宜調べてください)
#set page(paper: "us-letter", margin: 1.5in)
#set par(leading: 0.55em, first-line-indent: 1.8em, justify: true)
#set text(font: "Linux Libertine", size:12pt)
#set heading(numbering: "1.")
#show par: set block(spacing: 1.10em) // double-spacing
#show heading: set block(above: 1.4em, below: 1em)
#import "@preview/ctheorems:1.1.0": *
#show: thmrules
#let thm = thmbox("theorem", "Theorem", fill: rgb("#FFCCCC"))
#let prop = thmbox("proposition", "Proposition", fill: rgb("#FFE5CC"))
#let exer = thmbox("exercise", "Exercise", fill: rgb("#CCFFCC"))
#let defn = thmbox("definition", "Definition", inset: (x: 0em, top: 1.1em))
#let proof = thmplain(
"proof",
"Proof",
base: "theorem",
bodyfmt: body => [#body #h(1fr) $square$]
).with(numbering: none)
#let ge = $gt.eq$
= Section #footnote[something]
== Subsection
=== Subsubsection
Hello world
- list
- list
inline math $f(x) = x$
math block $ f(x) = x $
math block (multi lines)
$
f(x)
&= x(x-1) \
&= x^2 - x
$
normal text _emphasized text_
// commentout
/*
comment out
comment out
*/
#defn[
definition
]
#thm("Euler")[
theorem
] <thm-label>
By @thm-label, something.
使い方(スライド)(最新版)
「slydst」のパッケージを使うほうが便利なのでこっちを使っている
// https://typst.app/universe/package/slydst/
#import "@preview/slydst:0.1.1": *
#show: slides.with(
title: "Title",
subtitle: none,
date: none,
authors: (),
layout: "medium",
ratio: 4/3,
title-color: none,
)
#set text(font: "Arial")
== Title
- Hello
#definition(title: "An interesting definition")[
#lorem(20)
]
==
No title slide
使い方(スライド)
メトロポリスのテーマで作ってみた
ポイント
- 英語はAvenir Next、日本語はヒラギノ角ゴシックで和欧混植している
- dateが自動で今日に変わるようにしている
// https://polylux.dev/book/themes/gallery/metropolis.html#metropolis-theme
#import "@preview/polylux:0.3.1": *
#import themes.metropolis: *
#show: metropolis-theme.with(aspect-ratio: "4-3") // "4-3" or "16-9"
#set text(size: 24pt)
#set text(font: "Avenir Next")
#show regex("[\p{scx:Han}\p{scx:Hira}\p{scx:Kana}]"): set text(font: "Hiragino Kaku Gothic ProN", size: 22pt)
#set strong(delta: 100)
#set par(justify: true, leading: 0.65em)
#set list(marker: ([•], [◦], [-], [+]), spacing: auto)
#set block(below: 1.2em)
#let today = datetime.today()
#title-slide(
author: [authors],
title: "title",
subtitle: "subtitle",
date: today.display("[month repr:long] [day], [year]"),
extra: "Extra notes"
)
#slide(title: "title name")[
Lists
- list
- list
Wide lists
- list
- list
#alert[very important]
]
#new-section-slide("First section")
#focus-slide[
FOCUS
]
Typstの仕様
リスト
- 箇条書きの間を広げたかったら、シンプルに箇条書きごとに改行すれば良いらしい(ちがうブロックとみなされるので)
#slide[
- list 1
- list 2
]
- 以下のような感じでもすべての箇条書き間が広がる
#slide[
- list 1
- list 2
- list 3
]
コマンド
#let something = $something$
でコマンドを作れます。
たとえば、#let cA = $cal(A)$
で、cA
にカリグラフィックAを割り当てられます。
イタリック表記の色を変えたい
#show emph: it => {text(blue, it.body)}
で、_text_
で普通の立体・色は青の「text」を出力できる
2列にしたい
#set page(columns: 2)
を追加する
LaTeXとのコマンドの違い
このリストにない場合は、https://typst.app/docs/reference/symbols/sym/ を参照
もしくは、https://qwinsi.github.io/tex2typst-webapp/cheat-sheet.html
Typstのコマンドのほうが優れていると思うけど、LaTeXに慣れすぎてしまったので違いに少し困る
LaTeX | typst |
---|---|
\mathbb{A} | AA |
\mathcal{A} | cal(A) |
\cup | union |
\bigcup | union.big |
\cap | sect |
\bigcap | sect.big |
\ge | gt.eq |
\le | lt.eq |
\ne | equiv.not |
\cdots | dots.h.c |
\cdot | dots.c |
\to | arrow.r |
\mapsto | arrow.r.bar |
\implies | arrow.r.double.long |
\setminus | without |
\pm | plus.minus |
\infty | infinity |
a \text{ and } b | a "and" b |
\bar{x} | macron(x) |
\textrm{Var} | upright(V a r) |
\notin | in.not |
... | ... |
その他
#let ge = $gt.eq$
#let le = $lt.eq$
#let ne = $eq.not$
#let Union = $union.big$
#let Sect = $sect.big$
#let notin = $in.not$
#let ortho = $perp$
#let oplus = $plus.circle$
#let Oplus = $plus.circle.big$
#let otimes = $times.circle$
#let Otimes = $times.circle.big$
#let to = $arrow.r$
#let mapsto = $arrow.r.bar$
#let asto = $arrow.r^(a s)$
#let pto = $arrow.r^(p)$
#let dto = $arrow.r^(d)$
#let wto = $harpoon.rt$
#let wsto = $harpoon.rt^*$
#let TO(x) = $arrow.r.squiggly^(#x)$
#let from = $tilde.op$
#let ac = $lt.double$
#let contig = $lt.tri$
#let contigg = $gt.tri$
#let circ = $compose$
#let inv = $-1$
#let bar(x) = $macron(#x)$
#let radi(x) = $sqrt(#x)$
#let infty = $infinity$
#let limn = $lim_(n to infty)$
#let plim = $upright(p l i m)$ //FIX
#let pm = $plus.minus$
#let cdots = $dots.h.c$
#let cdot = $dot.c$
#let any = $dot.c$
使えるフォント
ターミナルでtypst fonts
と打てば自分が使えるフォントの一覧を見られる
もちろん日本語も
SyncTexみたいなことをする
VSCode拡張機能のTypst Preview
をインストール
使い方は、コマンドパレットでTypst Preview: Preview current file in slide mode
を選ぶだけ
使用感
- マークダウンみたいにリアルタイム反映されるので嬉しい、圧倒的に便利
- 1ページごと表示しかできなくて、シームレスな表示のやり方がわからない?
- 日本語ではジャンプできない気がする?
追記
- 2024年11月7日現在、Typst Previewが使えなくなり、Tinymist Typstに統合された
- Tinymist Typstでは、コマンドパレットから似たプレビューを呼び起こせる?
- ふつうのプレビューでもSyncTexしてる?
- 1ページごと表示しかできなくて、シームレスな表示のやり方がわからない?
疑問点など
- 全角括弧
()
の挙動がキモい気がする -
$F_X(x)$
がLaTeXのF_{X(x)}
に対応していて慣れない