テンプレートしたい(#show + .with()

 1#import "settings.typ": config
 2
 3// 全体にconfig関数を適用
 4#show: config.with(
 5    title: "すばらしいタイトル",
 6    author: "すばらしい著者",
 7    // その他の引数
 8)
 9
10// ここから本文
11= 文書のタイトル
12
13本文がここに入ります。
14フォント、ページサイズ、段落スタイルが自動的に適用されます。

ドキュメント全体に共通の設定(フォント、ページレイアウト、段落スタイルなど)を簡単に適用したいときは、#show...with構文を使ってテンプレート化します。

上記のサンプルでは設定ファイル(settings.typ)からconfig関数をインポートして、#show...withで全体に適用しています。

注釈

withメソッド

Typstのすべての関数はwithメソッドを持っています。このメソッドは、指定した引数を事前に設定した新しい関数を返します。

テンプレート設計では、config.with(title: "...", author: "...") のように必要なパラメーターを事前設定し、その結果を #show: で適用することで、ドキュメント全体にスタイルを反映させます。

設定ファイルしたい

// Filename: settings.typ

#let config(
    title: none,
    author: none,
    date: none,
    body
) = {
  // フォント設定
  set text(
    font: ("Hiragino Kaku Gothic Pro", "Hiragino Sans"),
    lang: "ja",
    size: 10pt,
  )

  // ページレイアウト
  set page(
    paper: "a4",
    numbering: none,
  )

  // 段落スタイル
  set par(
    justify: false,
    first-line-indent: 0pt,
    leading: 0.65em,
    spacing: 1em,
  )

  // 本文を表示
  body
}

まず、ドキュメント全体の設定をまとめたファイル(settings.typ)を作成し、設定用の関数(config)を定義します。

設定ファイルとして分離することで、 ドキュメント設定の管理・保守が簡単になります。

また、複数のドキュメントで同じテンプレートを再利用できるため、ドキュメントの規模が増えても、一貫したフォーマットが保てます。