# typst/typst

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/typst-typst).**

54,320 stars · 1,604 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/typst/typst
- Homepage: https://typst.app
- awesome-repositories: https://awesome-repositories.com/repository/typst-typst.md

## Topics

`compiler` `markup` `typesetting` `typst`

## Description

Typst is a programmable, markup-based typesetting engine designed for professional document creation. It functions as a scriptable publishing toolchain that transforms plain text and code into complex, paginated outputs. By utilizing a high-performance compiler, the system automates document assembly, mathematical rendering, and dynamic content generation, providing a unified workflow for academic and technical authoring.

The engine distinguishes itself through a declarative layout framework that uses cascading rules to manage document structure and visual styling. Unlike traditional systems, it employs an incremental layout engine that performs multiple passes to resolve cross-references, counters, and dynamic content placement. This is supported by a sandboxed functional scripting runtime, which allows users to define custom logic for data processing and layout manipulation, ensuring that document state remains consistent throughout the compilation process.

The system provides a comprehensive suite of tools for managing document elements, including automated bibliography generation, structured table creation, and hierarchical sectioning. It supports precise control over page geometry and typography, while its introspection capabilities allow for advanced querying of document state and element locations. These features are complemented by a robust set of foundational data management primitives, enabling users to handle complex collections, numeric data, and time-based logic within their documents.

The project provides a command-line interface for compiling source files into portable formats like PDF, with built-in support for accessibility standards. Detailed documentation, including syntax references and architectural overviews, is available to guide users through the installation and implementation of the typesetting environment.

## Tags

### Content Management & Publishing

- [Document Compilers](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-engines/document-compilers.md) — Compiles source markup and scripting code into high-quality document formats like PDF. ([source](https://cdn.jsdelivr.net/gh/typst/typst@main/README.md))
- [Document State Management](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-engines/document-state-management.md) — Persists variable states across multiple layout passes using a key-based system to ensure accurate rendering order. ([source](https://typst.app/docs/reference/introspection/))
- [Incremental Layout Engines](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-engines/incremental-layout-engines.md) — Executes multi-pass rendering to resolve dynamic content, cross-references, and automated counters within complex documents.
- [Typesetting Languages](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/typesetting-languages.md) — Uses a domain-specific language to handle programmatic document layout and complex mathematical typesetting. ([source](https://cdn.jsdelivr.net/gh/typst/typst@main/README.md))
- [Document Generation Engines](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/document-generation-engines.md) — Automates document assembly by applying scripting logic to process data and manage sophisticated formatting requirements.
- [Constraint-Based Layout Systems](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/document-layout-engines/constraint-based-layout-systems.md) — Positions content using a flexible box model that calculates element dimensions and alignment based on parent-child constraints.
- [Markup-Based Typesetting Engines](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/markup-based-typesetting-engines.md) — Converts plain text and declarative scripts into professional-grade document layouts.
- [Professional Typesetting Workflows](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/professional-typesetting-workflows.md) — Grants granular control over typography, page geometry, and visual alignment for the creation of high-quality, print-ready output.
- [Scriptable](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/static-site-generators/publishing-toolchains/scriptable.md) — Unifies text processing, mathematical rendering, and automated document assembly into a single scriptable command-line workflow.
- [Academic Authoring](https://awesome-repositories.com/f/content-management-publishing/authoring-editorial-interfaces/academic-authoring.md) — Facilitates academic writing through automated citation management, structured layout tools, and advanced mathematical typesetting.
- [PDF Exports](https://awesome-repositories.com/f/content-management-publishing/content-formats-exporting/export-formats/pdf-exports.md) — Generates PDF files with support for accessibility tags and professional printing standards. ([source](https://typst.app/docs/reference/pdf/))
- [Document Sectioning](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/document-models/document-sectioning.md) — Structures content into hierarchical sections using headings that support automatic numbering and custom styling. ([source](https://typst.app/docs/reference/model/heading/))
- [Document Element Locators](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/content-processing-utilities/document-element-locators.md) — Tracks the precise spatial coordinates of content elements to enable accurate cross-referencing during layout. ([source](https://typst.app/docs/reference/introspection/))
- [Declarative Styling Rules](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-engines/declarative-styling-rules.md) — Applies visual formatting via a cascading system of rules that modify element properties based on document structure.
- [Document Counters](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/document-counters.md) — Updates contextual state to automatically increment and display sequential numbers for headings and pages. ([source](https://typst.app/docs/reference/introspection/counter/))
- [Table Generation Systems](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/document-layout-engines/table-generation-systems.md) — Constructs grids with custom headers and footers while ensuring accessibility for screen readers. ([source](https://typst.app/docs/reference/model/table/))
- [Bibliography Generators](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/bibliography-generators.md) — Compiles lists of cited works by referencing external bibliography files and filtering output based on text usage. ([source](https://typst.app/docs/reference/model/bibliography/))
- [Captioned Figure Managers](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/captioned-figure-managers.md) — Labels visual media with descriptive identifiers that automatically track and update numbering sequences throughout the entire document. ([source](https://typst.app/docs/reference/model/figure/))
- [Table of Contents](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/table-of-contents.md) — Builds navigation overviews by scanning documents for headings and mapping them to corresponding page numbers. ([source](https://typst.app/docs/reference/model/outline/))

### Programming Languages & Runtimes

- [Dictionaries](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/dictionaries.md) — Supports native key-value collections that enable dynamic access, iteration, and data manipulation. ([source](https://typst.app/docs/reference/foundations/dictionary/))
- [Function Invocation Mechanisms](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/language-runtimes/function-invocation-mechanisms.md) — Applies styling rules and logic through a programmable markup syntax that accepts both positional and named arguments. ([source](https://typst.app/docs/reference/foundations/function/))
- [Document](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/scripting-languages/document.md) — Enables document automation and dynamic content generation through a specialized scripting language. ([source](https://cdn.jsdelivr.net/gh/typst/typst@main/README.md))
- [Intermediate Representations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations.md) — Parses source code into a structured tree of nodes to separate content from final visual layout.
- [Functional Scripting Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/automation-runtimes/functional-scripting-runtimes.md) — Runs user-defined logic and styling rules within a sandboxed environment to transform document data into visual output.
- [Data Management Primitives](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-internals-foundations/runtime-foundations/data-management-primitives.md) — Integrates native computational primitives and logic evaluation to handle numeric data and dynamic scripting within document workflows. ([source](https://typst.app/docs/reference/foundations/))
- [Argument Spreading](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/function-invocation-mechanics/argument-spreading.md) — Expands arrays, dictionaries, or captured objects into function calls to pass multiple values as individual parameters dynamically. ([source](https://typst.app/docs/reference/foundations/arguments/))
- [Array Enumeration Utilities](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/array-processing-utilities/array-enumeration-utilities.md) — Pairs array elements with their corresponding indices starting from a specified value to track positions during processing. ([source](https://typst.app/docs/reference/foundations/array/))
- [Argument Collectors](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/function-utilities/argument-collectors.md) — Captures variable numbers of positional and named arguments in custom functions using a sink that provides access methods. ([source](https://typst.app/docs/reference/foundations/arguments/))
- [String Manipulators](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/string-utilities/string-manipulators.md) — Manipulates strings using built-in methods for slicing, searching, replacing, and trimming with regular expression support. ([source](https://typst.app/docs/reference/foundations/str/))

### Scientific & Mathematical Computing

- [Equation Renderers](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-typesetting-engines/mathematical-typesetting/equation-renderers.md) — Displays complex mathematical expressions with support for automatic numbering and consistent scientific formatting. ([source](https://typst.app/docs/reference/math/equation/))
- [Formula Typesetters](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-typesetting-engines/mathematical-typesetting/formula-typesetters.md) — Formats advanced mathematical notation using specialized syntax for variables, symbols, and alignment. ([source](https://typst.app/docs/reference/math/))

### Web Development

- [Page Layout Configurations](https://awesome-repositories.com/f/web-development/layout-engines/page-layout-configurations.md) — Defines document dimensions, margins, and headers to manage content flow and page geometry. ([source](https://typst.app/docs/reference/layout/page/))
- [Block Containers](https://awesome-repositories.com/f/web-development/layout-engines/block-containers.md) — Groups content into distinct sections using borders, background colors, and sizing constraints to manage layout flow. ([source](https://typst.app/docs/reference/layout/block/))
- [Grid Systems](https://awesome-repositories.com/f/web-development/layout-engines/grid-systems.md) — Arranges content into structured rows and columns using flexible sizing units for consistent alignment. ([source](https://typst.app/docs/reference/layout/grid/))
- [Alignment Engines](https://awesome-repositories.com/f/web-development/layout-engines/alignment-engines.md) — Aligns text and media blocks horizontally or vertically to ensure a balanced and professional visual structure. ([source](https://typst.app/docs/reference/layout/align/))

### Software Engineering & Architecture

- [Document State Engines](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/centralized-state-containers/state-containers/document-state-engines.md) — Maintains persistent global state to track counters and metadata throughout the entire document compilation flow.

### User Interface & Experience

- [Declarative Layouts](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/declarative-layouts.md) — Organizes document structure and visual styling through reusable rules and hierarchical composition patterns.
- [Text Formatters](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/typography-and-iconography/text-styling/text-formatters.md) — Modifies font properties, colors, and spacing to maintain consistent design standards and visual hierarchy. ([source](https://typst.app/docs/reference/text/text/))
- [Symbol Insertors](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/slide-layout-styling/symbol-insertors.md) — Inserts unique characters and icons by converting shorthand names into the correct visual glyphs during rendering. ([source](https://typst.app/docs/reference/symbols/))
- [Accessible Document Creation](https://awesome-repositories.com/f/user-interface-experience/accessibility-standards/accessible-document-creation.md) — Structures digital content with semantic hierarchies and machine-readable metadata to ensure compatibility with assistive technologies.

### Part of an Awesome List

- [Document and Text Tools](https://awesome-repositories.com/f/awesome-lists/productivity/document-and-text-tools.md) — Markup-based typesetting system for documents.

### Development Tools & Productivity

- [Document Element Querying](https://awesome-repositories.com/f/development-tools-productivity/documentation-discovery-metadata/metadata-processing-analysis/document-element-querying.md) — Searches for specific content using labels or types to retrieve properties for dynamic processing tasks. ([source](https://typst.app/docs/reference/introspection/))
