Create and manage academic papers or technical reports using Typst markup.
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.zipInstalls 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.Key capabilities
- →Write and create Typst documents (.typ files)
- →Convert LaTeX to Typst format
- →Format mathematical equations in Typst
- →Apply set rules to configure document defaults
- →Apply show rules to restyle document elements
How it works
The skill processes input to generate or convert documents into Typst markup, supporting three syntactical modes: markup, code, and math. It applies set and show rules for styling and formatting.
Inputs & outputs
When to use typst
- →Write academic paper in Typst
- →Convert LaTeX to Typst
- →Style document elements
- →Format math equations
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:
| Mode | Default In | Enter Via | Exit Via |
|---|---|---|---|
| Markup | .typ files | [..] from code | # for code |
| Code | After # | #expr or { } | [..] for markup |
| Math | Never | $..$ | 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
| LaTeX | Typst |
|---|---|
\frac{a}{b} | a/b or frac(a,b) |
\sqrt{x} | sqrt(x) |
\sum_{i=1}^{n} | sum_(i=1)^n |
\alpha, \beta | alpha, 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
-
Forgetting
#in markup: Function calls need#prefix in markup mode- Wrong:
rect(...) - Right:
#rect(...)
- Wrong:
-
Math block spacing: Block equations need spaces inside
$- Inline:
$x^2$ - Block:
$ x^2 $(spaces required)
- Inline:
-
Content vs strings: Use
[content]for markup,"string"for plain text#text(fill: red)[Hello]— content with markup#lower("HELLO")— string manipulation
-
Semicolons in expressions: End expression early with
;#x;to prevent next char joining expression
-
Multi-letter math variables: Wrap in quotes or they become function calls
- Wrong:
$error$(looks forerrorfunction) - Right:
$"error"$or single letters$e$
- Wrong:
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, alignmentreferences/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
When not to use it
- →When working with document formats other than Typst
- →When the user does not want to use a markup-based typesetting system
Limitations
- →Primarily focused on Typst document creation and conversion
- →Requires understanding of Typst's three syntactical modes
- →Specific syntax differences from LaTeX must be managed
How it compares
This skill provides a structured approach to creating and styling documents using Typst's markup-based system, offering specific syntax and rules for formatting, unlike general text editors or LaTeX.
Compared to similar skills
typst side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| typst (this skill) | 0 | 5mo | Review | Beginner |
| ml-paper-writing | 48 | 6mo | Review | Advanced |
| docs-review | 10 | 7mo | No flags | Beginner |
| claude-md-improver | 21 | 7mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by diegosouzapw
View all by diegosouzapw →You might also like
ml-paper-writing
davila7
Write publication-ready ML/AI papers for NeurIPS, ICML, ICLR, ACL, AAAI, COLM. Use when drafting papers from research repos, structuring arguments, verifying citations, or preparing camera-ready submissions. Includes LaTeX templates, reviewer guidelines, and citation verification workflows.
docs-review
metabase
Review documentation changes for compliance with the Metabase writing style guide. Use when reviewing pull requests, files, or diffs containing documentation markdown files.
claude-md-improver
anthropics
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".
write-docs
tldraw
Writing SDK documentation for tldraw. Use when creating new documentation articles, updating existing docs, or when documentation writing guidance is needed. Applies to docs in apps/docs/content/.
update-docs
vercel
This skill should be used when the user asks to "update documentation for my changes", "check docs for this PR", "what docs need updating", "sync docs with code", "scaffold docs for this feature", "document this feature", "review docs completeness", "add docs for this change", "what documentation is affected", "docs impact", or mentions "docs/", "docs/01-app", "docs/02-pages", "MDX", "documentation update", "API reference", ".mdx files". Provides guided workflow for updating Next.js documentation based on code changes.
wiki-architect
microsoft
Analyzes code repositories and generates hierarchical documentation structures with onboarding guides. Use when the user wants to create a wiki, generate documentation, map a codebase structure, or understand a project's architecture at a high level.