agentskills.codes

Write and create Typst documents (.typ files). Use when the user asks to create, write, edit, or convert documents to Typst format, write Typst markup, create academic papers, reports, or documents in Typst, convert LaTeX to Typst, or work with .typ files. Typst is a modern markup-based typesetting

Install

mkdir -p .claude/skills/typst-diegosouzapw && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16213" && unzip -o skill.zip -d .claude/skills/typst-diegosouzapw && rm skill.zip

Installs to .claude/skills/typst-diegosouzapw

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Write and create Typst documents (.typ files). Use when the user asks to create, write, edit, or convert documents to Typst format, write Typst markup, create academic papers, reports, or documents in Typst, convert LaTeX to Typst, or work with .typ files. Typst is a modern markup-based typesetting system alternative to LaTeX.
328 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)

About this skill

Typst Document Writing

Typst is a markup-based typesetting system. Files use .typ extension. No boilerplate required—just start writing.

Three Modes

Typst has three syntactical modes:

ModeDefault InEnter ViaExit Via
Markup.typ files[..] from code# for code
CodeAfter ##expr or { }[..] for markup
MathNever$..$ End $

Essential Syntax

Markup Mode (default)

= Heading 1
== Heading 2
*bold* _italic_ `code`
- bullet list
+ numbered list
/ Term: definition
@label-ref
<my-label>

Code Mode (prefix with #)

#let x = 5
#if x > 3 [larger] else [smaller]
#for i in range(3) [Item #i. ]
#rect(width: 2cm, fill: blue)
#image("photo.png", width: 50%)

Math Mode (wrap in $)

Inline $x^2 + y^2 = z^2$ math.

Block math (note spaces inside dollars):
$ sum_(k=1)^n k = (n(n+1))/2 $

Critical Patterns

Set Rules (configure defaults)

#set page(margin: 2cm)
#set text(font: "New Computer Modern", size: 11pt)
#set par(justify: true)
#set heading(numbering: "1.1")

Show Rules (restyle elements)

// Show-set: apply set rule to specific element
#show heading: set text(navy)

// Transform: completely redefine
#show heading: it => [
  #text(blue)[#it.body]
]

Function Calls

// Named arguments after positional
#rect(width: 2cm, height: 1cm, fill: aqua)

// Trailing content block (common pattern)
#figure(
  image("chart.png", width: 80%),
  caption: [Analysis results],
) <fig-results>

Tables

#table(
  columns: (auto, 1fr, 1fr),
  [Header 1], [Header 2], [Header 3],
  [Row 1], [Data], [Data],
  [Row 2], [Data], [Data],
)

Grids (layout, not semantic)

#grid(
  columns: (1fr, 1fr),
  gutter: 1em,
  [Left column],
  [Right column],
)

Math Mode Details

Key Differences from LaTeX

LaTeXTypst
\frac{a}{b}a/b or frac(a,b)
\sqrt{x}sqrt(x)
\sum_{i=1}^{n}sum_(i=1)^n
\alpha, \betaalpha, beta
\mathbf{x}bold(x)
\text{word}"word"
\left( \right)Auto-scales, or lr(( ))
\begin{pmatrix}mat(1, 2; 3, 4)
\begin{cases}cases(a "if" x, b "else")
\vec{v}arrow(v) or vec(a, b, c)

Math Syntax

$ x^2 $           // superscript
$ x_n $           // subscript  
$ x_(i+1) $       // grouped subscript
$ (a+b)/c $       // fraction
$ sqrt(x) $       // square root
$ root(3, x) $    // nth root
$ sum_(i=0)^n $   // sum with limits
$ integral_a^b $  // integral
$ mat(1, 2; 3, 4) $ // matrix (semicolon = row break)
$ vec(x, y, z) $  // column vector
$ cases(1 "if" x > 0, 0 "else") $

Multi-letter Names

$ "error" = x - hat(x) $  // quotes for text
$ pi r^2 $                // single letters = variables
$ A B $                   // space = multiplication

Common Pitfalls

  1. Forgetting # in markup: Function calls need # prefix in markup mode

    • Wrong: rect(...)
    • Right: #rect(...)
  2. Math block spacing: Block equations need spaces inside $

    • Inline: $x^2$
    • Block: $ x^2 $ (spaces required)
  3. Content vs strings: Use [content] for markup, "string" for plain text

    • #text(fill: red)[Hello] — content with markup
    • #lower("HELLO") — string manipulation
  4. Semicolons in expressions: End expression early with ;

    • #x; to prevent next char joining expression
  5. Multi-letter math variables: Wrap in quotes or they become function calls

    • Wrong: $error$ (looks for error function)
    • Right: $"error"$ or single letters $e$

Document Templates

Academic Paper

#set document(title: [Paper Title], author: "Author")
#set page(margin: 2.5cm, numbering: "1")
#set text(font: "New Computer Modern", size: 11pt)
#set par(justify: true, leading: 0.65em)
#set heading(numbering: "1.1")

#align(center)[
  #text(17pt, weight: "bold")[Paper Title]
  #v(1em)
  Author Name \
  Institution \
  #link("mailto:[email protected]")
]

#outline()

= Introduction
#lorem(50)

= Methods
#lorem(50)

Report with Figures

#set page(header: [Report Title #h(1fr) #counter(page).display()])

= Results

#figure(
  table(
    columns: 3,
    [A], [B], [C],
    [1], [2], [3],
  ),
  caption: [Sample data],
) <tab-data>

As shown in @tab-data, ...

Symbol Reference

Common symbols: => (⇒), -> (→), <- (←), != (≠), <= (≤), >= (≥), ... (…), ~ (non-breaking space)

Greek: alpha, beta, gamma, delta, epsilon, theta, lambda, mu, pi, sigma, omega

Variants: arrow.r, arrow.l.double, plus.circle — append modifiers with dots

See full list: https://typst.app/docs/reference/symbols/

Additional References

For complex tasks, consult these reference files:

  • references/math.md: Comprehensive math mode syntax, symbols, matrices, alignment
  • references/advanced.md: Scripting, templates, page layout, bibliography, imports

Compilation

typst compile document.typ           # → document.pdf
typst compile document.typ out.pdf   # custom output
typst watch document.typ             # auto-recompile on save

More by diegosouzapw

View all by diegosouzapw

helm-chart-scaffolding-v2

diegosouzapw

Helm Chart Scaffolding workflow skill. Use this skill when the user needs Comprehensive guidance for creating, organizing, and managing Helm charts for packaging and deploying Kubernetes applications and the operator should preserve the upstream workflow, copied support files, and provenance before

00

cc-skill-coding-standards-v2

diegosouzapw

Coding Standards & Best Practices workflow skill. Use this skill when the user needs Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development and the operator should preserve the upstream workflow, copied support files, and provenance before

00

worktree-setup

diegosouzapw

Automatically invoked after `git worktree add` to create data/shared symlink and data/local directory. Required before starting work in any new worktree.

00

parsehub-automation

diegosouzapw

Automate Parsehub tasks via Rube MCP (Composio). Always search tools first for current schemas.

00

signalwire-agents-sdk

diegosouzapw

Expert assistance for building SignalWire AI Agents in Python. Automatically activates when working with AgentBase, SWAIG functions, skills, SWML, voice configuration, DataMap, or any signalwire_agents code. Provides patterns, best practices, and complete working examples.

00

agent-sales-engineer

diegosouzapw

Expert sales engineer specializing in technical pre-sales, solution architecture, and proof of concepts. Masters technical demonstrations, competitive positioning, and translating complex technology into business value for prospects and customers.

00

Search skills

Search the agent skills registry