Skip to content
Back to skills

Latex To Typst

ASecurity

Translates LaTeX documents (.tex) to Typst (.typ), focusing on article-class documents. Use when asked to convert, port, migrate, or translate LaTeX to Typst. Covers document structure, text formatting, page layout, math equations and symbols, figures, tables, TikZ-to-CeTZ diagrams, bibliography, cross-references, footnotes, and code blocks. Includes comprehensive symbol mapping tables.

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
research

Security analysis

A100/100

Pro scans all 14 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add christopherkenny/skills --skill latex-to-typst --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Latex To Typst?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Latex To Typst
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/christopherkenny-latex-to-typst/badge)](https://www.skillsdirectory.com/skills/christopherkenny-latex-to-typst)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: latex-to-typst
description: 'Translates LaTeX documents (.tex) to Typst (.typ), focusing on article-class documents. Use when asked to convert, port, migrate, or translate LaTeX to Typst. Covers document structure, text formatting, page layout, math equations and symbols, figures, tables, TikZ-to-CeTZ diagrams, bibliography, cross-references, footnotes, and code blocks. Includes comprehensive symbol mapping tables.'
---

# LaTeX to Typst Translation Guide

A comprehensive reference for converting LaTeX article-class documents to Typst.

## When to Use This Skill

- User asks to convert, port, or translate a `.tex` file to `.typ`
- User wants to know the Typst equivalent of a LaTeX command
- User is migrating an academic paper or report from LaTeX to Typst
- User needs help with specific LaTeX environments in Typst

## Quick Navigation: Use What Reference

| Task | Reference File |
|------|---------------|
| Overall document structure, preamble → set rules | [01-document-structure.md](references/01-document-structure.md) |
| Bold, italic, fonts, font sizes, colors | [02-text-formatting.md](references/02-text-formatting.md) |
| Margins, page size, columns, headers/footers | [03-page-layout.md](references/03-page-layout.md) |
| `\section`, `\subsection`, numbering | [04-headings-sections.md](references/04-headings-sections.md) |
| `itemize`, `enumerate`, `description` | [05-lists.md](references/05-lists.md) |
| Math mode, equations, aligned, matrices, operators | [06-math.md](references/06-math.md) |
| Symbol table: arrows, Greek, operators, sets, logic | [07-math-symbols.md](references/07-math-symbols.md) |
| `\includegraphics`, `figure` environment, subfigures | [08-figures.md](references/08-figures.md) |
| `tabular`, `booktabs`, `tabularx`, multirow/multicolumn | [09-tables.md](references/09-tables.md) |
| BibTeX, biblatex, natbib → `bibliography`, `cite` | [10-bibliography.md](references/10-bibliography.md) |
| `\label`, `\ref`, `\eqref`, `\autoref` | [11-cross-references.md](references/11-cross-references.md) |
| TikZ → CeTZ diagrams | [12-diagrams-cetz.md](references/12-diagrams-cetz.md) |
| `verbatim`, `lstlisting`, `minted`; footnotes, links | [13-misc.md](references/13-misc.md) |

## Key Conceptual Differences

### Preamble → `set` and `show` Rules

LaTeX uses a `\documentclass{article}` preamble with `\usepackage` calls. Typst replaces this with **`set` rules** (for properties) and **`show` rules** (for transformations), placed at the top of the document.

```tex
% LaTeX
\documentclass[12pt,a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{fontenc}
\setmainfont{Times New Roman}
```

```typst
// Typst equivalent
#set page(paper: "a4", margin: 1in)
#set text(font: "Times New Roman", size: 12pt)
```

### No `\begin`/`\end` Environments

Most LaTeX environments have direct Typst function equivalents. For example:

| LaTeX | Typst |
|-------|-------|
| `\begin{equation}...\end{equation}` | `$ ... $` (block, with space) |
| `\begin{figure}...\end{figure}` | `#figure(...)` |
| `\begin{tabular}...\end{tabular}` | `#table(...)` |
| `\begin{itemize}...\end{itemize}` | `- item` (markup) |

### Content vs. Code Mode

In Typst, `#` switches from markup mode into code mode. Inside `#{ }` blocks or function arguments, you write code. Markup is the default.

### Units

| LaTeX | Typst | Notes |
|-------|-------|-------|
| `pt` | `pt` | Same |
| `em` | `em` | Same |
| `cm` | `cm` | Same |
| `mm` | `mm` | Same |
| `in` | `in` | Same |
| `\textwidth` | `100%` (relative to container) | — |
| `0.5\textwidth` | `50%` | — |

## Minimal Article Template

```tex
% LaTeX article
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\title{My Paper}
\author{Jane Doe}
\date{\today}
\begin{document}
\maketitle
\begin{abstract}
This paper...
\end{abstract}
\section{Introduction}
Hello world.
\end{document}
```

```typst
// Typst equivalent
#set page(margin: 1in)
#set text(size: 12pt)

#align(center)[
  = My Paper
  Jane Doe \
  #datetime.today().display()
]

#set par(justify: true)

*Abstract.* This paper...

= Introduction

Hello world.
```

For a more polished article template with abstract box, see [01-document-structure.md](references/01-document-structure.md).

## Workflow for Full Document Conversion

1. **Convert preamble** → `#set page()`, `#set text()`, `#set par()` (see [03-page-layout.md](references/03-page-layout.md), [02-text-formatting.md](references/02-text-formatting.md))
2. **Convert sectioning** → `=`, `==`, `===` (see [04-headings-sections.md](references/04-headings-sections.md))
3. **Convert math** → inline `$...$`, block `$ ... $` (see [06-math.md](references/06-math.md), [07-math-symbols.md](references/07-math-symbols.md))
4. **Convert figures** → `#figure(image(...), caption: [...])` (see [08-figures.md](references/08-figures.md))
5. **Convert tables** → `#table(...)` or `#figure(table(...), ...)` (see [09-tables.md](references/09-tables.md))
6. **Convert bibliography** → `#bibliography("refs.bib")` + `@key` citations (see [10-bibliography.md](references/10-bibliography.md))
7. **Convert TikZ** → `#canvas({...})` with CeTZ (see [12-diagrams-cetz.md](references/12-diagrams-cetz.md))
8. **Fix cross-references** → `<label>` + `@label` (see [11-cross-references.md](references/11-cross-references.md))

Files in this skill

  • SKILL.md5.3 KB
  • references/01-document-structure.md4.1 KB
  • references/02-text-formatting.md5.9 KB
  • references/03-page-layout.md4.6 KB
  • references/04-headings-sections.md4.1 KB
  • references/05-lists.md4.1 KB
  • references/06-math.md8.2 KB
  • references/07-math-symbols.md11.2 KB
  • references/08-figures.md5 KB
  • references/09-tables.md6.4 KB
  • references/10-bibliography.md4 KB
  • references/11-cross-references.md4.4 KB
  • references/12-diagrams-cetz.md6.5 KB
  • references/13-misc.md7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.