touying-author について
touying-authorは、TouyingとTypstでプレゼンテーションを作成するためのガイドです。スライド構成、設定、レイアウト、アニメーションを整理したい作者向けに、単一ファイルと複数ファイルの構成例を示します。
主な機能
- 01単一・複数ファイルの構成指針
- 02テーマとページの一元設定
- 03見出しを使ったスライド構成
- 04動的コンテンツとアニメーションのパターン
- 05発表者ノートとpdfpcメタデータ
活用シーン
- 01大規模デッキのファイル構成を計画
- 02テーマ、ヘッダー、フッターを設定
- 03段階表示や数式アニメーションを作成
- 04プレゼンテーションに発表者ノートを追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ apcamargo/ typst-skills --skill touying-authorインストール後、Claude Code で/touying-authorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
docs/build-your-own-theme.mdchangelog.mdcode-styles.mdglobal-settings.mdintro.mdlayout.mdmulti-file.mdsections.mdstart.mddocs/dynamic/complex.mdcover.mdequation.mdhandout.mdother.mdsimple.mddocs/external/pdfpc.mdpympress.mdtypst-preview.mddocs/integration/cetz.mdcodly.mdfletcher.mdmitex.mdpinit.mdtheorion.mddocs/progress/counters.mdsections.mddocs/themes/aqua.mdcustom.mddewdrop.mdmetropolis.md詳細
Touying Author
Touying を使用した Typst プレゼンテーションの作成ガイドです。明快な構成、再現可能な設定、スライドで安全に使えるパターンを重視します。
クイックスタート
- Touying とテーマをインポートし、
#show: <theme>.with(...)でテーマを適用します。 - 設定を一元管理し、スライドのコンテンツは別ファイルから読み込みます。
- 見出しを使ってスライドを作成します。カスタムレイアウトやアニメーションには
#slideを使用します。 - 最小限のスライド資料には
examples/simple.typを、テーマの基本形にはexamples/default.typを使用します。
examples/simple.typ のスニペット:
#import "@preview/touying:0.6.1": *
#import themes.simple: *
#show: simple-theme.with(
aspect-ratio: "16-9",
footer: [Simple slides],
)
ベストプラクティスとコード構成
#showとすべてのconfig-*呼び出しを適用する単一のエントリーファイル(例:main.typ)を使用します。- 複数ファイルで構成するスライド資料では、
globals.typ+main.typ+content.typのパターンに従います。循環参照を避けるため、コンテンツには#includeを、グローバル設定には#importを使用します。 - ドキュメントでは、共有設定ファイルに
config.typ(docs/start.mdを参照)とglobals.typ(docs/multi-file.mdを参照)の両方が使用されています。名前を1つ選び、プロジェクト内で一貫して使用してください。 - 大規模なスライド資料では、
content.typをsections/に移動し、main.typからsections/content.typ(および必要に応じてsections/another-section.typ)を読み込みます。 set pageや場当たり的なグローバルshowを直接使用するのではなく、config-page、config-common、config-info、config-colors、config-methods、config-storeを優先します。- ほとんどのスライドには見出しを使用します。どの見出しレベルでスライドを作成するかは、
config-common(slide-level: n)で選択します。 - カスタムレイアウトまたはアニメーションに限り
#slideを使用し、スライド関数は必ずtouying-slide-wrapperでラップします。 - コールバック形式のアニメーション(
#slide(repeat: n, self => [...]))では、repeatを明示的に設定し、utils.methods(self)を使ってuncover、only、alternativesにアクセスします。
単一ファイル構成
.
├── globals.typ
├── main.typ
└── content.typ
複数ファイル構成
.
├── globals.typ
├── main.typ
└── sections/
├── content.typ
└── another-section.typ
コア API マップ(エクスポート)
- スライド:
touying-slides、slide、touying-slide、touying-slide-wrapper、empty-slide - ダイナミクス:
pause、meanwhile、uncover、only、effect、alternatives、alternatives-match、alternatives-fn、alternatives-cases - 設定:
config-common、config-page、config-info、config-colors、config-methods、config-store、default-config、touying-set-config、appendix - ユーティリティ:
utils.*(高さに合わせる、幅に合わせる、カバー用ヘルパー、進捗、見出し用ヘルパー) - コンポーネント:
components.side-by-side、components.adaptive-columns、components.progressive-outline、components.custom-progressive-outline - インテグレーション:
touying-reducer、touying-equation、touying-mitex、speaker-note、pdfpc.* - リコール:
touying-recall、touying-fn-wrapper
スライド構成と見出し
- 見出しラベルを使って、番号付け、アウトライン、ブックマークを制御します。
<touying:hidden>を使用し(docs/code-styles.mdを参照)、<touying:unnumbered>、<touying:unoutlined>、<touying:unbookmarked>、<touying:skip>についてはdocs/changelog.mdを参照してください。 - 目次スライドには
components.adaptive-columns(outline(...))を使用し、進捗に応じたアウトラインにはcomponents.progressive-outlineを使用します。 == <touying:hidden>を使うと、空のタイトルスライドを挿入して、直前の見出しコンテキストをクリアできます。- 見出しを変更せずにスライドを分割するには、
#pagebreak()または---を使用します。 - ヘッダーやフッターのないスライドには
#empty-slide[...]を使用します。 - ハンドアウト出力で各スライドの最後のサブスライドだけを残すには、
config-common(handout: true)を使用します。 - メインのスライド資料の後に最後のスライド数を固定するには、
#show: appendixを使用します。
examples/default.typ のスニペット:
= Outline <touying:hidden>
#components.adaptive-columns(outline(title: none, indent: 1em))
アニメーションと動的コンテンツ
- シンプルな表示には
#pauseと#meanwhileを使用します。マークがサポートされていないcontext内での使用は避けてください。 - レイアウトのスペースを確保するには
#uncoverを使用し、非表示のときにレイアウトのスペースをなくすには#onlyを使用します。 - マークによって警告が表示される場合は、
repeatとutils.methods(self)を使ったコールバック形式のスライドを使用します。 - 数式のアニメーションでは、
$ ... $内でpause/meanwhileを使用します。インライン数式テキストにヘルパーが必要な場合は、touying-equationを使用します(#pauseまたは#pause;も使用できます)。 - シンプルなアニメーション、複雑なアニメーション、コールバックアニメーション、数式アニメーションについては、
examples/example.typを参照してください。
examples/simple.typ のスニペット:
== Dynamic slide
Did you know that...
#pause
...you can see the current section at the top of the slide?
examples/example.typ のスニペット:
#slide(
repeat: 3,
self => [
#let (uncover, only, alternatives) = utils.methods(self)
At subslide #self.subslide, we can
use #uncover("2-")[`#uncover` function] for reserving space,
use #only("2-")[`#only` function] for not reserving space,
#alternatives[call `#only` multiple times \u{2717}][use `#alternatives` function #sym.checkmark] for choosing one of the alternatives.
],
)
レイアウトとテーマ設定
- 視覚的な一貫性を保ってください。新しいレイアウト、図、表、描画には、(別途指示がない限り)ドキュメントで使用されているフォント、色、文字の階層を再利用してください。内部での一貫性も維持してください(同じ関数には同じサイズと色を適用します)。
- 列には
#slide内でcomposerを使用します。(1fr, 2fr)またはカスタムのgrid関数を渡してください。 - 余白、ヘッダー、フッター、背景には
config-pageを使用し、set pageは直接使用しないでください。 - レイアウトの変更が許容される場合に限り、
config-methods(cover: utils.semi-transparent-cover.with(alpha: 85%))を使用します。 - ヘッダー/フッターやナビゲーション要素にテーマ固有の値を保存するには、
config-storeを使用します。 - 自動セクションスライドを無効にするには
config-common(new-section-slide-fn: none)を使用します。または、カスタム関数を指定して置き換えることもできます。 - グローバルスタイルは、
#show: <theme>.with(...)の前後に適用するか、テーマ内でconfig-methods(init: ...)を使って適用します。 - タイトル、著者、日付には
config-info(...)を使用し、日付の書式はconfig-common(datetime-format: ...)で設定します。
examples/default.typ のスニペット:
#import "@preview/touying:0.6.1": *
#import themes.default: *
#import "@preview/numbly:0.1.0": numbly
#show: default-theme.with(
aspect-ratio: "16-9",
config-common(
slide-level: 3,
zero-margin-header: false,
),
config-colors(primary: blue),
config-methods(alert: utils.alert-with-primary-color),
config-page(
header: text(gray, utils.display-current-short-heading(level: 2)),
),
)
発表者ノートとプレゼンター向けツール
#speaker-note[...]でノートを追加します。config-common(show-notes-on-second-screen: right)またはbottomを使うと、2 画面目にノートを表示できます。enable-pdfpc: trueとtypst query --field value --onе "<pdfpc-file>"で pdfpc メタデータをエクスポートします。
同梱のドキュメントとサンプルを使用する
- タスクに必要なドキュメントだけを読み、ドキュメントツリー全体を読み込まないようにしてください。
- 基本事項とインポートのパターンについては、
docs/start.mdとdocs/intro.mdを読んでください。 - 複数ファイルのレイアウトと include のパターンについては、
docs/multi-file.mdを読んでください。 - スライド単位の動作と見出しの動作については、
docs/layout.mdとdocs/sections.mdを読んでください。 - シンプルスタイルとブロックスタイル、ページ割りのテクニックについては、
docs/code-styles.mdを読んでください。 - グローバルスタイルと
config-infoの使い方については、docs/global-settings.mdを読んでください。 pause、meanwhile、カバーの動作、数式アニメーションについては、docs/dynamic/*.mdを読んでください。- テーマ固有の API とデフォルト設定については、
docs/themes/*.mdを読んでください。 - pdfpc と Pympress の使い方については、
docs/external/*.mdを読んでください。 - CeTZ/Fletcher/Theorion/MiTeX との連携については、
docs/integration/*.mdを読んでください。 - 各テーマの実用的なテンプレートとして
examples/*.typを使用してください。
ファイルツリー(ドキュメントとサンプル)
docs/
├── build-your-own-theme.md
├── changelog.md
├── code-styles.md
├── dynamic
│ ├── complex.md
│ ├── cover.md
│ ├── equation.md
│ ├── handout.md
│ ├── other.md
│ └── simple.md
├── external
│ ├── pdfpc.md
│ ├── pympress.md
│ └── typst-preview.md
├── global-settings.md
├── integration
│ ├── cetz.md
│ ├── codly.md
│ ├── fletcher.md
│ ├── mitex.md
│ ├── pinit.md
│ └── theorion.md
├── intro.md
├── layout.md
├── multi-file.md
├── progress
│ ├── counters.md
│ └── sections.md
├── sections.md
├── start.md
├── themes
│ ├── aqua.md
│ ├── custom.md
│ ├── dewdrop.md
│ ├── metropolis.md
│ ├── simple.md
│ ├── stargazer.md
│ └── university.md
└── utilities
└── fit-to.md
examples/
├── aqua-zh.typ
├── aqua.typ
├── default.typ
├── dewdrop.typ
├── example.typ
├── metropolis.typ
├── simple.typ
├── stargazer.typ
└── university.typ
コメント
Markdown 対応