Typst — це сучасна система верстки для звітів, наукових робіт, нотаток та інших структурованих документів. Як і LaTeX, вона створює охайні PDF-файли зі звичайних текстових файлів. На відміну від LaTeX, Typst має компактний синтаксис, швидкий попередній перегляд і скриптову мову, яка відчувається як природна частина документа.
Замість того щоб вивчати той самий синтаксис на багатьох малих прикладах, ми почнемо з одного повного документа. Потім зосередимося на можливостях, які роблять Typst особливо корисним: програмуванні, завантаженні даних із файлів, автоматичних посиланнях, вбудованій графіці, глобальній стилізації та багаторазових модулях.
Почніть з одного повного документа
Практичний стартовий приклад
Створіть файл із назвою main.typ:
#set heading(numbering: "1.")
= My First Report
Typst combines readable markup with professional output.
== Highlights
- Clean headings and lists
- *Bold* and _italic_ text
- Inline math: $ a^2 + b^2 = c^2 $
#figure(
table(
columns: 2,
inset: 6pt,
stroke: rgb("#d1d5db"),
[*Tool*], [*Use case*],
[Typst], [Reports],
[Markdown], [Notes],
),
caption: [A small comparison table],
)Цей приклад уже охоплює основи:
- заголовки починаються із символів
=, - елементи списку починаються з
-, - текст можна стилізувати за допомогою розмітки
*bold*і_italic_, - математика записується між символами
$, - функції на кшталт
tableіfigureстворюють складніші елементи документа, #перемикає розмітку в код Typst.
Виберіть, як почати
- Скористайтеся вебзастосунком. Відкрийте typst.app, створіть проєкт і вставте стартовий приклад. PDF-перегляд оновлюється під час написання.
- Встановіть компілятор. Дотримуйтесь інструкцій на офіційній сторінці встановлення, а потім скомпілюйте
main.typіз термінала:
typst compile main.typПід час редагування використовуйте режим спостереження, щоб PDF автоматично перебудовувався:
typst watch main.typУ Windows коротка команда встановлення — winget install typst. У macOS використовуйте brew install typst.
Додайте бібліографію
Створіть works.bib:
@article{typst-paper,
author = {Taylor, Alex},
title = {A Modern Typesetting Workflow},
journal = {Document Systems Review},
year = {2026}
}Потім процитуйте запис за допомогою @typst-paper і додайте згенерований список літератури:
= Research Notes
Typst keeps citations and references together. @typst-paper
#bibliography("works.bib", style: "ieee")Typst також підтримує власний бібліографічний формат Hayagriva. За замовчуванням з’являються лише процитовані записи, тому список літератури залишається синхронізованим із документом.
Чим Typst відрізняється
Програмування документів
Typst має змінні, функції, цикли та умови. Ви можете створити багаторазовий візуальний компонент і генерувати вміст із даних, не виходячи з документа:
#let badge(name, score) = block(
fill: rgb("#eff6ff"),
stroke: rgb("#93c5fd"),
inset: 8pt,
radius: 4pt,
[*#name* - #score points],
)
#for (name, score) in (
("Ada", 92),
("Grace", 88),
("Linus", 84),
) [
#badge(name, score)
#v(4pt)
]Такий самий підхід працює для повторюваних розділів звітів, рахунків, студентських відгуків або будь-якого документа, зібраного зі структурованого вмісту.
Читання данних з файлів
Документи часто залежать від зовнішніх даних. Typst може напряму завантажувати CSV, JSON, YAML, XML і звичайні текстові файли. Наприклад, створіть sales.csv:
January,128
February,164
March,193Потім відрендерте його як таблицю:
#let sales = csv("sales.csv")
= Sales Report
#table(
columns: 2,
inset: 7pt,
stroke: rgb("#d1d5db"),
table.header([*Month*], [*Sales*]),
..sales.flatten(),
)Це дозволяє тримати вміст і представлення окремо. Оновіть файл із даними, скомпілюйте знову — і PDF автоматично зміниться відповідно.
Синхронізовані фігури та посилання
Typst сам нумерує фігури й розв’язує посилання. Додайте мітку після фігури й посилайтеся на неї через @label:
As shown in @revenue, figures get automatic numbers and references.
#figure(
rect(
width: 80%,
height: 24mm,
fill: gradient.linear(rgb("#dbeafe"), rgb("#bfdbfe")),
radius: 4pt,
align(center + horizon)[*Quarterly revenue*],
),
caption: [Revenue overview],
) <revenue>Та сама система міток працює для розділів, рівнянь, таблиць та інших елементів документа.
Графіки математичних функцій
Пакети Typst можуть розширювати мову спеціалізованими інструментами. За допомогою simple-plot можна визначити математичну функцію й відрендерити її графік безпосередньо в документі:
#import "@preview/simple-plot:0.3.0": plot
#let f(x) = calc.sin(x)
#figure(
plot(
xmin: -2 * calc.pi,
xmax: 2 * calc.pi,
ymin: -1.5,
ymax: 1.5,
width: 10,
height: 5,
show-grid: "major",
(fn: f, stroke: rgb("#2563eb") + 1.5pt, label: $f(x) = sin(x)$),
),
caption: [The function $f(x) = sin(x)$],
)Пакет обробляє осі, лінії сітки, підписи та дискретизацію. Змініть f, діапазони або стилізацію, щоб отримати інший графік.
Семантичні елементи глобально
Правила показу дозволяють налаштувати, як певний тип елемента відображається всюди в документі:
#show heading: it => block(
fill: rgb("#eff6ff"),
stroke: rgb("#93c5fd"),
inset: 8pt,
radius: 4pt,
it,
)
= Styled Heading
Show rules let you style semantic elements consistently.Це одна з найсильніших ідей Typst: вміст залишається семантичним, а правила представлення — багаторазовими.
Багаторазові компоненти в модулі
Коли документ росте, спільні допоміжні елементи варто переносити в окремі файли. Створіть helpers.typ:
#let callout(body) = block(
fill: rgb("#ecfdf5"),
stroke: rgb("#6ee7b7"),
inset: 9pt,
radius: 4pt,
body,
)Імпортуйте й використайте допоміжний компонент із main.typ:
#import "helpers.typ": callout
= Shared Components
#callout[
This component lives in another file and can be reused throughout the project.
]Модулі роблять практичним спільне використання стилів, компонентів і шаблонів документів у кількох файлах.
Створюйте презентації
Typst також корисний для технічних презентацій. Ви можете створювати слайди вручну або використовувати пакети на кшталт touying. Touying додає теми, слайди на основі заголовків, поступове відкриття елементів і нотатки доповідача, водночас залишаючи доступними звичайну розмітку Typst, математику та інструменти компонування.
#import "@preview/touying:0.7.3": *
#import themes.simple: *
#show: simple-theme.with(aspect-ratio: "16-9")
== Typst for technical talks
#grid(
columns: (1fr, 1fr),
gutter: 18pt,
[
*One source, many outputs*
- Reusable themes
- Mathematical notation: $ integral_0^1 x^2 dif x = 1 / 3 $
- Fast PDF export
#uncover("2-")[- Incremental reveals]
],
[
#image("workflow.jpg", width: 100%, height: 72mm, fit: "cover")
#v(6pt)
#text(size: 13pt, fill: rgb("#475569"))[
Code, data, documents, and slides in one reproducible workflow.
]
],
)
#speaker-note[
Mention that the final bullet is revealed after the first click.
]Додайте ілюстрацію як workflow.jpg поруч із вихідним файлом Typst. Цей один слайд демонструє головні будівельні блоки: тему, співвідношення сторін 16:9, створення слайдів на основі заголовків, колонки, розміщення й обрізання зображення, математику, накладання через #uncover і нотатки доповідача. Typst Pro також має вбудований режим презентації із переглядом для доповідача, таймером, індикатором прогресу, інструментами вказівника та малюванням. Офіційний застосунок наразі не показує нотатки доповідача в режимі презентації, тому нотатки переважно корисні в презентаційних робочих процесах, сумісних із Touying.
Куди рухатися далі
Коли стартовий документ стане зрозумілим, найкращим місцем для подальшого вивчення буде офіційна довідка:
- Скриптинг для змінних, функцій, циклів та умов
- Завантаження даних для CSV, JSON, YAML, XML і звичайних текстових файлів
- Фігури і посилання для автоматично синхронізованих елементів документа
- Бібліографії для цитувань і згенерованих списків літератури
- Візуалізація для вбудованих примітивів малювання
- Модулі для організації багаторазового коду
- Режим презентації і
touyingдля технічних слайдів
Чесна оцінка
Що Typst робить добре
- Синтаксис достатньо читабельний для малих документів, але водночас достатньо потужний для згенерованих звітів.
- Компіляція та live preview працюють швидко, тому ітерації проходять приємно.
- Математика, фігури, цитування, таблиці та перехресні посилання природно працюють разом.
- Скриптинг, завантаження даних, модулі та пакети зменшують повторення, коли проєкти ростуть.
- Ті самі навички переносяться з наукових робіт і звітів на технічні презентації.
Де Typst слабший
- Екосистема молодша за LaTeX, тому спеціалізовані шаблони та пакети менш зрілі.
- API пакетів спільноти можуть змінюватися. У серйозних проєктах фіксуйте версії пакетів, наприклад
touying:0.7.3. - PDF-first робочі процеси чудові для контрольованого результату, але менш зручні, коли співавтори очікують файли Word, Google Docs або PowerPoint.
- Дуже кастомні візуальні макети все одно потребують часу на вивчення моделі компонування Typst.
- Презентаційні робочі процеси покращуються, але вони ще не такі універсальні, як спеціалізоване програмне забезпечення для слайдів.
Typst найсильніший тоді, коли для вас важливі відтворювані вихідні файли, точний результат, швидкий зворотний зв’язок і багаторазова автоматизація. Він менш переконливий, якщо головна вимога — сумісність з офісним пакетом або великою наявною екосистемою шаблонів LaTeX.