latex-to-typst

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

TaskReference File
Overall document structure, preamble → set rules01-document-structure.md
Bold, italic, fonts, font sizes, colors02-text-formatting.md
Margins, page size, columns, headers/footers03-page-layout.md
\section, \subsection, numbering04-headings-sections.md
itemize, enumerate, description05-lists.md
Math mode, equations, aligned, matrices, operators06-math.md
Symbol table: arrows, Greek, operators, sets, logic07-math-symbols.md
\includegraphics, figure environment, subfigures08-figures.md
tabular, booktabs, tabularx, multirow/multicolumn09-tables.md
BibTeX, biblatex, natbib → bibliography, cite10-bibliography.md
\label, \ref, \eqref, \autoref11-cross-references.md
TikZ → CeTZ diagrams12-diagrams-cetz.md
verbatim, lstlisting, minted; footnotes, links13-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.

% LaTeX
\documentclass[12pt,a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{fontenc}
\setmainfont{Times New Roman}
// 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:

LaTeXTypst
\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

LaTeXTypstNotes
ptptSame
ememSame
cmcmSame
mmmmSame
ininSame
\textwidth100% (relative to container)
0.5\textwidth50%

Minimal Article Template

% 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 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.

Workflow for Full Document Conversion

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