Draft:Typst

Open-source typesetting system. From Wikipedia, the free encyclopedia

Typst (/taɪpst/) is an open-source typesetting system based on a markup language written in Rust.[3][4] The Typst compiler is free software and is distributed under the Apache License 2.0 license.[3]

  • Comment: This draft is reasonably written, well structured and leaves nothing to be desired from a content policy perspective. However, the core problem is the referencing. A quick glimpse reveals that >12/21 footnotes refer to sources that are primary or non independent, which shouldn't be the case. We need secondary sources covering the core bits of Typst. If this wasn't Wikipedia, I'd give it a pass, but without significant coverage (WP:SIGCOV), this cannot be accepted. Best, --Johannes (Talk) (Contribs) (Articles) 13:05, 2 November 2025 (UTC)
  • Comment: Better (secondary) sourcing is needed to establish notability of this software application. All sources cited are either tied to the subject, UGC (blogs, GitHub), or primary (theses), or some combination of the above. WeirdNAnnoyed (talk) 22:00, 26 December 2024 (UTC)

    • I would personally say that it meets "It is discussed in reliable sources as significant in its particular field. References that cite trivia do not fulfill this requirement. See following section for more information." as LWN is about as reliable source as it gets and LWN talking about it as a possible replacement for Latex is a big deal. Jeltz talk 14:53, 17 December 2025 (UTC)
Thanks Johannes. I've substantially restructured references and I think it's adequate now, will resubmit since it's in this process already. sverdrup (talk) 15:25, 2 November 2025 (UTC)


Original authorsMartin Haug, Laurenz Mädje[1]
DeveloperTypst GmbH
Initial releaseMarch 21, 2023; 2 years ago (2023-03-21)
Stable release
0.14.2[2] Edit this on Wikidata / 12 December 2025
Quick facts Typst, Original authors ...
Typst
Original authorsMartin Haug, Laurenz Mädje[1]
DeveloperTypst GmbH
Initial releaseMarch 21, 2023; 2 years ago (2023-03-21)
Stable release
0.14.2[2] Edit this on Wikidata / 12 December 2025
Written inRust
PlatformCross-platform
TypeTypesetting
LicenseApache-2.0
Websitetypst.app
Repositorygithub.com/typst/typst
Typst
Filename extension
.typ
Internet media type
text/typst
Developed byTypst GmbH
Type of formatTypesetting
Open format?Yes
Free format?Yes
Websitetypst.app/docs/reference/syntax/
Close

The system is designed for writing and formatting scientific texts and mathematical formulas. Typst supports simple formatting for common formatting applications, customizable functions, an integrated scripting language, and mathematical typesetting. It is designed to be an alternative to LaTeX.[3][5][6]

The compiler is developed by Typst GmbH[7], which maintains and supports the software's development, and operates a proprietary[8] collaborative cloud-based editor, offering both free and paid services[6], in a manner similar to Overleaf, which allows users to preview their work while writing and includes a collaboration feature.[9]

History

Typst was developed since 2019[3] and first published in 2022 by Laurenz Mädje and Martin Haug for their masters theses at Technische Universität Berlin.[10][11] In March 2023, the Typst compiler was released as open-source, and Typst simultaneously announced the beta version of its web app.[12] As of 2025, the app does not use the beta label anymore.

Typesetting system

Typst is a markup language, similar to Markdown, "designed to be as powerful as LaTeX while being much easier to learn and use."[5] Its compiler is incremental for quick update of the document preview.[6][3]

Typst has three modes. By default, the user is in Markup mode, which can be used primarily for text. Math mode is applied to text enclosed between dollar signs ($) and is designed for writing mathematical formulas.[6][3] The scripting language is executed in code mode and marked with a hashtag (#) in front of the command.[13] Typst uses dedicated syntax for common formatting elements such as headings, strong emphasis and emphasis, while markup without dedicated syntax is accessed using functions in code mode.[3]

Unlike LaTeX, there are no minimum requirements for the structure of a document. Furthermore, packages frequently used in LaTeX do not need to be imported, as many functions are already implemented in the system.[6] For missing functions, Typst supports community-provided packages and templates.[3] Packages allow, among other things, integration with other programming languages and environments, such as generating illustrations with external tools.[14]

Compared with LaTeX, Typst has relatively fewer specialized packages available.[3] As of June 2025, Ijimai is the only journal that accepts manuscripts written in Typst.[8][15]

Compatibility and converters

Typst has native document export for PDF, PNG and SVG formats, with PDF/A[3] and PDF/UA-1 output available.[16]

Typst documents are written in a text editor and compiled to produce output files such as PDFs. A language server has been developed for Typst that can be installed as a plug-in for text editors such as VS Code, Neovim, enabling users to compile Typst documents directly within the editor.[9][17] Typst has also been integrated into other software, notably Quarto[18], and Pandoc.[3][19]

Zerodha adopted Typst for generating transactions records citing its ease of use and performance, transitioning from LuaLaTeX.[20] Scientists working on SciPy conference proceedings adopted Typst for PDF generation.[21]

Example

The example below shows the input to Typst and the corresponding output from the system:

More information Input (Source code), Output ...
Input (Source code) Output
#set page(paper: "a4")
#set text(lang: "en")
#set par(justify: true)
// Comments are introduced by a double backslash

= Fibonacci-Sequence
// '=' starts a heading

In mathematics, the Fibonacci sequence is a sequence in which each element is the sum of the two elements that precede it.
@wikipedia-fibonacci // '@' references figures, sections or sources found in the bibliography

The Fibonacci sequence is defined through the recurrence relation $F_n = F_(n-1) + F_(n-2)$. It can also be expressed in _closed form:_ // '_' emphasizes the enclosed text

$
F_n = floor(1 / sqrt(5) phi.alt^n), quad phi.alt = (1 + sqrt(5)) / 2
$
//'$' parses the enclosed text as math formulas

#let count = 14
#let nums = range(1, count + 1)
#let fib(n) = (
  if n <= 2 { 1 }
  else { fib(n - 1) + fib(n - 2) }
)
// '#' switches to 'code mode' and 'let' defines variables such as 'count' and functions such as 'fib(n)'

The first #count numbers of the infinite sequence are:

#align(center,
  table(
    columns: count,
    ..nums.map(n => $F_#n$),
    ..nums.map(n => str(fib(n))),
  )
)

#bibliography("sources.bib")
// Code mode can also be used to embed variables in content, create graphics such as tables, embed information from other files, or set rules
Compiled output of the code example
Close

References

Related Articles

Wikiwand AI