원클릭으로
touying-author
Author, refactor, and troubleshoot Typst slide decks built with Touying
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Author, refactor, and troubleshoot Typst slide decks built with Touying
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | touying-author |
| description | Author, refactor, and troubleshoot Typst slide decks built with Touying |
Guide Typst presentation authoring with Touying, emphasizing clean structure, repeatable configuration, and slide-safe patterns.
#show: <theme>.with(...).#slide for custom layouts or animations.examples/simple.typ for a minimal deck, or examples/default.typ for the bare theme.Snippet from examples/simple.typ:
#import "@preview/touying:0.6.1": *
#import themes.simple: *
#show: simple-theme.with(
aspect-ratio: "16-9",
footer: [Simple slides],
)
main.typ) that applies #show and all config-* calls.globals.typ + main.typ + content.typ pattern; use #include for content and #import for globals to avoid circular refs.config.typ (see docs/start.md) and globals.typ (see docs/multi-file.md) for the shared config file; pick one name and use it consistently in your project.content.typ into sections/ and include sections/content.typ (and optional sections/another-section.typ) from main.typ.config-page, config-common, config-info, config-colors, config-methods, and config-store over direct set page or ad-hoc global show.config-common(slide-level: n) to choose which heading levels create slides.#slide only for custom layout or animation; always wrap slide functions with touying-slide-wrapper.#slide(repeat: n, self => [...])), set repeat explicitly and use utils.methods(self) to access uncover, only, and alternatives..
├── globals.typ
├── main.typ
└── content.typ
.
├── globals.typ
├── main.typ
└── sections/
├── content.typ
└── another-section.typ
touying-slides, slide, touying-slide, touying-slide-wrapper, empty-slidepause, meanwhile, uncover, only, effect, alternatives, alternatives-match, alternatives-fn, alternatives-casesconfig-common, config-page, config-info, config-colors, config-methods, config-store, default-config, touying-set-config, appendixutils.* (fit-to-height, fit-to-width, cover helpers, progress, heading helpers)components.side-by-side, components.adaptive-columns, components.progressive-outline, components.custom-progressive-outlinetouying-reducer, touying-equation, touying-mitex, speaker-note, pdfpc.*touying-recall, touying-fn-wrapper<touying:hidden> (see docs/code-styles.md), and see docs/changelog.md for <touying:unnumbered>, <touying:unoutlined>, <touying:unbookmarked>, and <touying:skip>.components.adaptive-columns(outline(...)) for a table of contents slide; use components.progressive-outline for progress-aware outlines.== <touying:hidden> to insert a blank title slide and clear the previous heading context.#pagebreak() or --- to split slides without changing headings.#empty-slide[...] for slides without header/footer.config-common(handout: true) to keep only the last subslide per slide in handout output.#show: appendix to freeze last-slide counts after the main deck.Snippet from examples/default.typ:
= Outline <touying:hidden>
#components.adaptive-columns(outline(title: none, indent: 1em))
#pause and #meanwhile for simple reveals; avoid using them inside context where marks are not supported.#uncover to reserve layout space; use #only to remove layout space when hidden.repeat and utils.methods(self).pause/meanwhile inside $ ... $; use touying-equation when you need the helper for inline equation text (you can also use #pause or #pause;).examples/example.typ for simple/complex/callback animations and equation animations.Snippet from examples/simple.typ:
== Dynamic slide
Did you know that...
#pause
...you can see the current section at the top of the slide?
Snippet from 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.
],
)
composer in #slide for columns; pass (1fr, 2fr) or a custom grid function.config-page for margin, header, footer, and background; do not use set page directly.config-methods(cover: utils.semi-transparent-cover.with(alpha: 85%)) only when layout changes are acceptable.config-store to stash theme-specific values for headers/footers or navigation elements.config-common(new-section-slide-fn: none) to disable automatic section slides, or provide a custom function to replace them.#show: <theme>.with(...) or via config-methods(init: ...) in a theme.config-info(...) for title/author/date and config-common(datetime-format: ...) to control date formatting.Snippet from 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) or bottom.enable-pdfpc: true and typst query --field value --one "<pdfpc-file>".docs/start.md and docs/intro.md for basics and import patterns.docs/multi-file.md for multi-file layout and include patterns.docs/layout.md and docs/sections.md for slide-level and heading behavior.docs/code-styles.md for simple vs block style and pagination tricks.docs/global-settings.md for global styles and config-info usage.docs/dynamic/*.md for pause, meanwhile, cover behavior, and equation animation.docs/themes/*.md for theme-specific APIs and defaults.docs/external/*.md for pdfpc and Pympress usage.docs/integration/*.md for CeTZ/Fletcher/Theorion/MiTeX integrations.examples/*.typ as working templates for each theme.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