Typst における関数
マークアップと関数
Section titled “マークアップと関数”#
で始まる文は関数を表します。マークアップも実体は関数です。
マークアップ | 関数 |
---|---|
日本語 | #text("日本語") |
= heading | #hading("heading") |
Typst には 3 種類の構文モードがあります。
{ }
で区切られたブロック内はコードブロックなので関数に#
をつけずに呼び出します。マークアップ文を使う場合は[ ]
で囲みます。数式は$...$
で囲みます。
- コンテントブロック(Content block)
[...]
: 関数は#
をつけて使う。 例:#text(fill: red)[*Hey* there!]
- コードブロック(Code block)
{...}
: 関数は#
をつけずに使う。 例:text(fill: red)[*Hey* there!]
- 数式ブロック(Formula block)
$...$
: 例:$ a=b+c
モードごとのブロックは入れ子にすることができます。
#let test(message: "テスト")={text(fill: blue)[このように #text(fill: red)[#message] にできます。]}#test(message: [入れ子$ 3+(2 times 2)/2 $])
#let 関数
Section titled “#let 関数”内蔵の関数や以下のように#let
を使って自作の関数を定義し利用することができます。
#let test(body) = { [渡された文字列は#body] }- #test("テスト")- #test[#text(fill: red, weight: "bold", [test])]
引数の渡し方は複数あります。以下はbody
に引数が割り当てられます。
#test("テスト")
このようにマークアップ文全体をを渡すこともできます。これも自動的にbody
に割り当てられます。
#test[#text(fill: red, weight: "bold", [test])]
以下のように複数の引数がある場合も自動的にbody
に割り当てられます。引数の初期値も設定でき省略時にこれが参照されます。
#let test2( var: false, body) = { if var { [varはTrueです。] } else { [varはFalseです。] } body}
- #test2[引数]- #test2(var: true)[引数]