Typst

В Typst можно собирать научные статьи, отчёты, дипломы, книги и презентации из компактной разметки: редактор сразу показывает сверстанную страницу, автоматически нумерует разделы и формулы, оформляет ссылки и библиографию, вставляет таблицы, изображения и данные, а готовый результат экспортирует в PDF, PNG, SVG или HTML.

Рабочее окно строится вокруг исходного текста и живого предпросмотра. Слева удобно держать дерево файлов проекта, в центре — писать разметку с подсветкой и автодополнением, справа — проверять переносы, поля, колонтитулы, формулы и расположение иллюстраций; щелчок по странице помогает перейти к соответствующему месту в исходнике.

Практический процесс обычно начинается с пустого документа или шаблона, затем автор отделяет содержание от оформления с помощью правил set и show, подключает изображения, таблицы данных и файл библиографии, проверяет предупреждения компилятора и только после этого выбирает параметры экспорта, диапазон страниц и стандарт PDF.

Открыть Typst

Оценка 9.7 Рекомендуем
  • Редактирование PDF
  • Русский интерфейс
  • Просто новичкам
Скачать бесплатно на Windows
Лучшая альтернатива
Typst
Оценка 8.5
  • Нужен язык разметки
  • Нет правки готового PDF
  • HTML пока экспериментален
Открыть Typst онлайн
Сервис откроется в новой странице

Интерфейс и первый проект

Пустой проект Typst с редактором и живым предпросмотром

На стартовой панели проект можно создать с нуля, открыть из шаблона, собрать через мастер оформления, получить преобразованием исходного файла или связать с репозиторием. Для первой работы разумнее выбрать пустой документ: так видны базовые связи между строкой разметки и результатом. Шаблон полезен, когда издательство, кафедра или компания уже задали структуру титульной страницы, поля, нумерацию и библиографический стиль. Мастер подходит для отчётов и книг, где нужно быстро выбрать формат страницы, гарнитуру, параметры абзаца и набор сведений об авторах. Преобразование принимает Markdown, LaTeX, Word и OpenDocument Text, однако импорт следует воспринимать как начальную заготовку: сложные стили и изображения приходится проверять и иногда переносить вручную.

После открытия проекта основную площадь делят редактор и предпросмотр. Граница между ними перетаскивается, а меню View позволяет оставить только исходник, только результат либо вынести страницу в отдельное окно. Последний режим удобен на двух мониторах: на одном остаются файлы и код, на другом — крупная страница без тесного масштабирования. Над предпросмотром расположены управление масштабом, быстрый экспорт и вызов отдельного окна. Над редактором находятся кнопки для частой разметки, но они не заменяют понимания синтаксиса: нажатие вставляет соответствующие символы или конструкцию в текст.

Файловая панель показывает документы .typ, редактируемые текстовые ресурсы и двоичные вложения. Typst-файлы можно назначать точкой предпросмотра, поэтому в большом проекте удобно иметь отдельные входные файлы для полной книги, одной главы, раздаточного материала и слайдов. CSV, JSON, YAML, TOML, XML, SVG и библиографические файлы открываются как текст. Растровые изображения и шрифты отображаются как вложения; их заменяют загрузкой нового файла. Имена и относительные пути лучше продумать до начала верстки, потому что массовое переименование ресурсов затрагивает вызовы image, read, include и import.

Автодополнение появляется после символа решётки и внутри списка аргументов функции. Оно показывает имена функций, допустимые параметры, значения и короткие описания. Клавиши со стрелками выбирают вариант, Enter вставляет его, Escape закрывает панель, а Ctrl+Space открывает подсказки повторно. Эта система особенно полезна при настройке page, text, par, table и bibliography: вместо запоминания всех параметров можно начать имя свойства и выбрать подходящее. При этом подсказка не проверяет замысел автора — например, корректное значение поля может дать неудобную полосу набора или конфликтовать с требованиями издания.

Создание структуры документа

Автодополнение параметров в редакторе Typst

Обычный текст вводится без служебных конструкций. Заголовок начинается знаком равенства, подзаголовок — двумя знаками, а глубина структуры определяется количеством этих символов. Звёздочки создают сильное выделение, подчёркивания — курсивное, дефис начинает маркированный список, плюс — нумерованный. Вложенность списка задаётся отступом исходника, поэтому структура остаётся заметной даже без предпросмотра. Для ссылки на объект применяют метку в угловых скобках и обращение через знак @; отображаемый номер и подпись затем меняются вместе с объектом, а не набираются вручную.

Решётка переключает разметку в режим выражений. Вызов #image("photo.png") вставляет картинку, #pagebreak() начинает новую страницу, #bibliography("refs.bib") формирует список литературы. Квадратные скобки передают содержимое функции, круглые — параметры, фигурные — блок кода. Различие режимов важно при отладке: символ, который выводится как обычный текст в одном месте, может восприниматься как оператор в другом. Когда требуется напечатать служебный символ буквально, используют экранирование или сырой текст.

Большие работы лучше делить на файлы. include добавляет содержимое главы в текущий поток, а import подключает функции, переменные и модули. Типичная книга содержит main.typ, каталог chapters, каталог images, файл стилей и библиографию. Главный файл задаёт глобальные правила, порядок частей и метаданные, главы отвечают только за содержание, а стилевой модуль предоставляет одну функцию-шаблон. Такое разделение уменьшает риск случайно изменить поля или нумерацию внутри отдельной главы и облегчает повторное использование оформления.

Комментарии в исходнике начинаются двойным косым слешем; многострочный фрагмент можно временно выключить блочным комментарием. Это полезно для черновых формулировок, альтернативных таблиц и пояснений к сложным формулам. Комментарии разметки не попадают в PDF. Их не следует путать с рецензентскими комментариями интерфейса: последние привязаны к выделенному диапазону, хранят ветку обсуждения и тоже не экспортируются, но управляются через панель совместной работы.

Правила оформления set и show

Правило set меняет значения по умолчанию для последующих элементов определённого типа. Команда #set text(size: 11pt, font: "Libertinus Serif") задаёт кегль и гарнитуру, #set par(justify: true) включает выключку по ширине, #set heading(numbering: "1.1") настраивает нумерацию заголовков. Правило действует в своей области видимости: глобальная настройка в начале файла охватывает весь документ, а настройка внутри квадратных скобок — только переданное содержимое. Благодаря этому можно временно изменить размер текста в приложении или сделать одну страницу альбомной, не восстанавливая каждое свойство вручную.

Show-правило отвечает не за параметры элемента, а за способ его отображения. Оно способно оборачивать все заголовки рамкой, добавлять значок к определённому слову, заменять оформление ссылок, строить собственный вид подписи рисунка или преобразовывать выбранные элементы функцией. Селектор может быть общим, например heading, либо уточнённым через where: так разные уровни заголовков получают разные правила. Неосторожное show-правило способно вызвать рекурсию, если результат снова совпадает с тем же селектором. При такой ошибке нужно сузить выборку или вернуть элемент другого типа.

Функции превращают повторяющиеся блоки в управляемые компоненты. Можно определить карточку с заголовком, цветной полосой и телом, функцию титульной страницы, стандартную подпись автора или таблицу результатов. Именованные параметры делают вызовы читаемыми, значения по умолчанию сокращают типовые случаи, а остаточные параметры позволяют передавать произвольный набор настроек внутренней функции. Для шаблона особенно полезно отделять содержательные аргументы — название, авторов, дату — от стилевых решений, которые скрыты внутри модуля.

Скриптовая часть поддерживает переменные, массивы, словари, условия, циклы, сопоставление, методы и функции высшего порядка. Она нужна не ради программирования как цели, а для автоматизации верстки: построить строки таблицы из CSV, выбрать вариант титула по типу отчёта, добавить предупреждение при отсутствии обязательного поля, сгруппировать библиографию или сформировать серию однотипных страниц. Чем больше логики появляется в документе, тем важнее давать переменным предметные имена и выносить функции в отдельный модуль; иначе исходник становится труднее обычной ручной разметки.

Настройка страницы, полей и колонок

Кнопки создания пустого документа и проекта из шаблона

Функция page управляет размером листа, ориентацией, полями, фоном, колонтитулами, нумерацией и количеством колонок. Стандартный формат задаётся именем бумаги, а нестандартный — точными шириной и высотой. Поля можно указать одной величиной, отдельными значениями по горизонтали и вертикали либо словарём left, right, top и bottom. Для двусторонней печати полезны внутреннее и внешнее поля, однако итог всегда нужно просматривать разворотами: одинаковые численные поля не гарантируют удобной корешковой зоны после переплёта.

Колонтитул — это обычное содержимое Typst, поэтому в нём доступны текст, линии, изображения, счётчики и условия. Частый сценарий: на первой странице главы скрыть верхний колонтитул, на остальных показать название раздела и номер страницы. Для этого используют контекст, текущую позицию и счётчики. Номер страницы можно отобразить арабскими или римскими цифрами, составной строкой вроде 3 из 18 или произвольной функцией. Важно не помещать в колонтитул слишком высокий блок: он уменьшает полезную область и может столкнуться с основным текстом.

Многоколоночный набор включается параметром columns или отдельной конструкцией columns. Первый вариант подходит для всего потока страницы, второй — для выбранного фрагмента. Переход между одной колонкой для аннотации и двумя для основной статьи обычно строится через show-правило документа или шаблон. Ручной columnbreak начинает следующую колонку, pagebreak — новую страницу. Если разрыв стоит внутри неразрывного контейнера, результат может отличаться от ожидания; тогда следует проверить, не заключён ли текст в block, box, table или другую конструкцию с собственными правилами разбиения.

Grid раскладывает элементы по явным строкам и столбцам, а stack располагает их последовательно по направлению. Grid удобен для титульных страниц, панелей показателей и сложных композиций, table — для семантических таблиц с заголовками и повторением шапки. Значения fr распределяют свободное место пропорционально, auto отдаёт размер содержимому, фиксированные длины закрепляют геометрию. Если макет разваливается при замене короткого текста длинным, фиксированные высоты лучше заменить автоматическими или ограничить минимальным и максимальным размером.

Текст, языки и шрифты

Параметры text задают гарнитуру, кегль, насыщенность, начертание, цвет, трекинг, язык, регион, направление письма и дополнительные типографические возможности шрифта. Для документа на русском языке важно установить корректный язык: от него зависят переносы, кавычки и часть языковых правил. Если в одном абзаце встречаются фрагменты на разных языках, свойство можно менять локально. Ручные переносы следует применять только для исключений; систематические проблемы чаще исправляются шириной строки, гарнитурой, настройками абзаца или словарём языка.

В проект разрешено загружать TTF, TTC и OTF. После загрузки шрифт обнаруживается автоматически и становится доступен по имени семейства. Если символа в основной гарнитуре нет, Typst перебирает список запасных шрифтов. Для многоязычной работы полезно явно задать приоритет: латинская и кириллическая гарнитура первой, шрифт для арабского или CJK — следующим, универсальный запасной — последним. Иначе отдельные знаки могут незаметно получить другую метрику и нарушить строку.

Разница наборов шрифтов — одна из главных причин, почему один и тот же исходник выглядит по-разному у разных участников. В редакторе доступны серверные шрифты и загруженные файлы проекта; при компиляции командой используются встроенные и обнаруженные системные гарнитуры, а дополнительные каталоги передаются через font-path. Для воспроизводимого макета лучше хранить разрешённые лицензией файлы шрифтов рядом с проектом или настраивать одинаковый каталог в сборочной среде. Проверить найденные семейства помогает список шрифтов, а предупреждение unknown font означает, что указанное имя не совпало ни с одним обнаруженным семейством.

Абзац настраивается функцией par: выключка, интерлиньяж, отступ первой строки, расстояние между абзацами, запрет висячих строк и пределы выравнивания. Увеличивать пробелы вручную не нужно — для горизонтального расстояния существуют h и управляемые промежутки, для вертикального v. Неразрывный пробел полезен между числом и единицей, инициалами и фамилией, коротким предлогом и словом, если это требуется редакционной нормой. Чрезмерное число ручных неразрывных пробелов ухудшает переносимость текста при смене формата страницы.

Формулы и математическая верстка

Математический фрагмент заключается в знаки доллара. Пробелы внутри формулы влияют на группировку: выражение можно оставить встроенным в строку или вывести отдельным блоком. Дроби, корни, суммы, интегралы, пределы, индексы и надстрочные элементы записываются короткими функциями и операторами. Имена греческих букв вводятся словами, а панель подсказок помогает находить символы. В отличие от текстового режима, несколько букв подряд в формуле могут восприниматься как имя идентификатора; обычные слова помещают в кавычки или оборачивают текстовой конструкцией.

Для систем уравнений доступны cases, для матриц — mat, для выравнивания нескольких строк — alignment points. Метка после формулы позволяет ссылаться на неё через @, а numbering задаёт шаблон номера. Нумерацию можно включить только для выбранных формул, изменить вид скобок или построить собственный формат через функцию. Если длинная формула выходит за поле, сначала разбивают её на логические строки и выравнивают по знакам отношений; уменьшение кегля должно быть последним средством, потому что ухудшает читаемость и нарушает единообразие.

Математический шрифт должен согласовываться с текстовой гарнитурой и содержать нужные символы. Typst умеет выбирать отдельный math font, но смешение случайных семейств заметно по высоте строчных, толщине штрихов и форме греческих знаков. При отсутствии редкого символа стоит проверить альтернативное имя в каталоге символов, пакет со специализированной нотацией или запасную математическую гарнитуру. Вставка символа из обычного Unicode не всегда даёт математические интервалы, поэтому для операторов лучше использовать математические определения.

Формулы участвуют в общих правилах оформления. Через show math.equation можно менять отступы, фон, рамку, номер или добавлять пояснение. Однако селектор затрагивает все уравнения, включая встроенные, если не уточнить параметры. Для учебного материала часто создают отдельную функцию пример или вывод, которая объединяет текст, формулу и номер шага. Это надёжнее, чем глобально стилизовать каждое уравнение и затем отменять правило для обычных выражений.

Таблицы, сетки и данные

Table предназначена для табличных данных, grid — для геометрической раскладки. У table можно определить число и ширину столбцов, выравнивание, внутренние поля, линии, заливку, объединение ячеек, шапку и подвал. Заголовочную строку желательно оформлять как table.header: при переносе длинной таблицы она повторяется на следующих страницах. Ячейки допускают обычное содержимое, формулы, списки и изображения, но слишком сложная вложенность затрудняет разбиение по страницам.

CSV загружается функцией csv, JSON — json, YAML — yaml, TOML — toml, XML — xml. Полученный массив или словарь можно фильтровать, сортировать и преобразовывать map-выражением, после чего разворачивать элементы в table. Такой подход удобен для прайс-листов, журналов измерений, расписаний и отчётов: обновление исходного файла меняет все связанные страницы без ручного копирования. Перед версткой нужно нормализовать типы данных — число, строку и дату нельзя бездумно форматировать одной функцией.

Для числовых столбцов полезно выравнивание по правому краю или десятичному разделителю, для кодов — моноширинная гарнитура, для длинного описания — гибкая ширина в fr. Полосатая заливка строится функцией, зависящей от индекса строки. Итоговую строку вычисляют из данных, а не набирают вручную, чтобы она не расходилась с таблицей. Если таблица шире страницы, возможны три решения: сократить подписи, перенести часть столбцов в приложение или повернуть конкретную страницу; уменьшение текста до нечитаемого размера не исправляет структуру.

Семантика важна и для доступности PDF. Заголовочные ячейки следует обозначать как заголовочные, а сложной таблице дать краткое резюме. Декоративные линии и фон не должны заменять текстовые обозначения. При экспорте в растровый формат содержимое таблицы превращается в изображение и теряет возможность поиска и копирования; для рабочих документов предпочтительнее PDF или структурированный HTML, если используемые элементы поддерживаются этим способом вывода.

Изображения, фигуры и векторная графика

Диалог загрузки файлов в проект Typst

Функция image принимает PNG, JPEG, GIF, SVG, PDF и WebP. Размер задаётся шириной, высотой или обоими параметрами, fit определяет способ вписывания, а alt — текстовую альтернативу. Векторные SVG и PDF подходят для схем, графиков и логотипов, потому что сохраняют резкость при масштабировании; фотографии разумнее хранить в JPEG или WebP, элементы с прозрачностью — в PNG. Анимация GIF в печатном документе превращается в статическое представление, поэтому смысл не должен зависеть от движения.

Figure объединяет объект с подписью и участвует в автоматической нумерации, списках и перекрёстных ссылках. Внутрь можно поместить не только изображение, но и таблицу, код, диаграмму или собственный блок. Положение плавающей фигуры задаётся параметрами размещения; жёсткая привязка к координатам нужна редко, потому что ухудшает переразбиение текста. Когда рисунок должен остаться рядом с поясняющим абзацем, лучше управлять допустимым плаванием и размером, а не помещать оба элемента в неразрывный контейнер на половину страницы.

Встроенные примитивы позволяют рисовать линии, прямоугольники, окружности, многоугольники, кривые, градиенты и повторяющиеся заливки. Для диаграмм и графиков используются пакеты Typst Universe, которые строят векторный результат из данных. Преимущество программной схемы — единый стиль и автоматическое обновление; недостаток — зависимость от версии пакета и необходимость разбираться в его API. Для финальной публикации стоит закреплять версию импорта и хранить тестовый PDF, чтобы изменение пакета не прошло незамеченным.

При загрузке ресурсов удобно открыть файловую панель и использовать диалог выбора либо перетаскивание. Имя файла должно совпадать с путём с учётом регистра, особенно если проект затем собирается в Linux. Ошибка file not found часто вызвана не отсутствием картинки, а неверной текущей папкой, обратным слешем из Windows или попыткой выйти за корень проекта. Относительные пути делают проект переносимым; абсолютные пути привязывают его к одному компьютеру.

Библиография, цитаты и списки литературы

Меню создания файлов, пакета и синхронизации библиографии

Источники подключаются файлом Hayagriva или BibLaTeX. Цитирование через @метку автоматически выбирает форму внутритекстовой ссылки, а bibliography строит список литературы. Стиль задаётся встроенным именем или пользовательским CSL-файлом. Один и тот же набор записей можно оформить по требованиям разных журналов без переписывания каждой ссылки; достаточно сменить стиль и проверить специфические поля, которые новый стандарт использует иначе.

Качество списка определяется данными. Для статьи нужны авторы, название, журнал, год, том, номер, страницы и идентификатор; для книги — издатель и место издания, если этого требует стиль; для веб-ресурса — адрес и дата обращения. Неполная запись не исправляется красивым шаблоном: компилятор может вывести доступные поля, но не угадает отсутствующие. Перед сдачей полезно найти записи без года, без автора и с заголовками в неправильном регистре.

Синхронизация с Zotero или Mendeley создаёт управляемый BibLaTeX-файл в проекте. Пользователь выбирает коллекцию, имя файла и запускает создание; затем доступны принудительное обновление и отключение связи. Синхронизируемый файл нельзя править как обычный текст, иначе изменения конфликтовали бы с внешней библиотекой. Если нужна ручная коррекция конкретной записи, её лучше исправить в менеджере источников или отключить синхронизацию и принять, что дальнейшие обновления перестанут приходить автоматически.

В больших работах встречаются несколько списков: основная литература, нормативные документы, архивы, публикации автора. Их можно фильтровать по метаданным, но схему категорий следует заложить в библиографические записи заранее. Цитаты внутри подписи, таблицы и сноски нумеруются в общей системе. Если ссылка отображается как неизвестная метка, нужно проверить ключ записи, подключение файла и наличие bibliography в том варианте входного документа, который сейчас выбран для предпросмотра.

Ссылки, метки, оглавление и счётчики

Метка превращает заголовок, формулу, рисунок, таблицу или произвольный элемент в цель ссылки. Обращение @label выводит номер и подходящее название, а ref позволяет точнее управлять отображением. При перестановке глав и вставке новых рисунков номера пересчитываются автоматически. Нельзя давать двум объектам одну метку: компилятор сообщит о неоднозначности или ссылка укажет не туда, куда ожидал автор. Удобная схема имён включает тип и смысл, например fig:architecture или eq:balance.

Outline строит оглавление или список выбранных элементов. Глубина ограничивает уровни заголовков, indent и fill управляют отступами и лидерами, title задаёт название. Аналогичным способом формируют перечень рисунков и таблиц, если выбрать соответствующий элемент. Заголовки без нумерации могут оставаться в оглавлении, поэтому вид номера и участие в структуре настраиваются отдельно.

Counter хранит последовательность для страниц, заголовков, формул и пользовательских объектов. Его можно отобразить, увеличить, сбросить или представить собственной функцией. State подходит для произвольного состояния, которое меняется по ходу документа, например текущего раздела приложения. Оба механизма зависят от контекста и могут требовать нескольких проходов компиляции, потому что значение определяется расположением на странице. Если вывод колеблется между двумя вариантами, стоит убрать взаимную зависимость размеров и счётчиков.

Introspection позволяет находить элементы, измерять их, получать страницу и координаты, собирать данные для указателей. Это основа автоматического индекса, перечня терминов и сложных колонтитулов. Однако запрос по всему документу внутри каждого повторяемого элемента может замедлить сборку. Сначала следует использовать встроенные outline и counter, а query подключать там, где стандартных механизмов действительно недостаточно.

Шаблоны и пакеты Typst Universe

Форма манифеста частного пакета Typst

Шаблон превращает набор правил в функцию, которой передают название, авторов, аннотацию и содержимое. Пользователь видит короткий вызов, а поля, колонки, заголовки, метаданные и оформление библиографии остаются внутри. Хороший шаблон проверяет обязательные аргументы, имеет разумные значения по умолчанию и не заставляет автора редактировать внутренний код. Если требования организации меняются, обновляется один модуль, а не десятки документов.

Typst Universe содержит пакеты и шаблоны. Импорт вида @preview/name:version загружает конкретный выпуск и делает доступными экспортированные функции. Версию важно указывать явно: это защищает готовый документ от несовместимых изменений API. Перед подключением следует изучить лицензию, документацию, примеры и список зависимостей. Пакет, который рисует одну рамку, не всегда оправдывает дополнительную зависимость; пакет для сложной диаграммы или отраслевого стандарта обычно экономит много работы.

Создание проекта из шаблона копирует исходную структуру в рабочую область. После этого документ можно менять независимо, но обновления шаблона не обязательно применятся автоматически. Для многолетней серии отчётов лучше хранить собственный пакет оформления и импортировать его, а не раздавать копии, которые постепенно расходятся. Закрытые шаблоны и пакеты позволяют делиться кодом и ресурсами внутри личной или командной области, публиковать версии и подключать их через пространство @local.

Файл typst.toml описывает пакет: имя, версию, точку входа, категории, дисциплины и минимальные требования. Интерфейс манифеста показывает форму метаданных и опубликованные выпуски. Удаление уже опубликованной версии ломает проекты, которые её импортируют, поэтому вместо удаления безопаснее выпустить исправление и перевести документы на него. Перед публикацией пакет стоит проверить в чистом проекте без скрытых файлов и шрифтов из рабочей машины.

Совместная работа и рецензирование

Комментарий рецензента, привязанный к формуле в редакторе Typst

Участники видят изменения друг друга в реальном времени. Ссылка общего доступа может давать чтение, рецензирование или запись. Право чтения подходит для согласования результата, рецензирование — для комментариев без изменения исходника, запись — для соавторов. Перед отправкой ссылки следует проверить её уровень: открытая запись удобна на коротком совместном сеансе, но рискованна для длительно живущего проекта.

Комментарий привязывается к диапазону исходного текста, подсвечивается и содержит ветку ответов. Его можно отредактировать, разрешить, восстановить из разрешённых или удалить. Разрешение сохраняет историю и подходит для исправленных замечаний; удаление необратимо. Комментарии не попадают в экспортированный документ. Когда текст сильно перестраивается, привязка может стать менее очевидной, поэтому рецензенту полезно формулировать замечание с указанием смысла, а не только позиции.

Команда объединяет проекты и участников. Администратор управляет составом, ролью и общей областью. Папки помогают упорядочить большое число проектов, но не создают отдельных прав доступа: для другой группы участников нужна отдельная команда или отдельные настройки проекта. Приглашение по электронной почте позволяет заранее выбрать Read, Review или Write; ошибочный адрес или уровень обычно проще отменить и создать заново.

Одновременная правка особенно эффективна, если заранее разделить зоны ответственности: один автор меняет методику, другой — результаты, третий — библиографию. Глобальные стилевые файлы лучше редактировать по договорённости, потому что одна строка set или show способна изменить весь документ. Перед крупной перестройкой полезно сохранить экспорт и резервную копию проекта, а затем предупредить соавторов, какой файл и какой раздел будет изменяться.

Форма приглашения участника по электронной почте в Typst

Синхронизация с Git

Панель управления командой в Typst

Проект можно связать с репозиторием GitHub или GitLab, чтобы подтягивать и отправлять изменения. Это полезно, когда часть команды работает в редакторе, а часть — с файлами в IDE, или когда документ входит в общий репозиторий программного проекта. Связь начинается с подключения учётной записи, затем выбираются владелец, репозиторий, ветка и при необходимости подпапка. Путь подпапки определяет доступную область: файлы выше неё не будут видны проекту.

Синхронизация не заменяет понимания pull и push. Перед отправкой нужно получить чужие изменения, а конфликтующие правки разрешить осознанно. Система не должна принудительно перезаписывать историю, поэтому при расхождении ветвей push останавливается. В таком случае сначала делают резервную копию, выполняют pull, сравнивают конфликтующие файлы и только затем отправляют объединённый результат. Повторные нажатия push без устранения причины не исправляют историю.

В репозиторий стоит включать исходники .typ, данные, изображения, лицензированные шрифты и файлы конфигурации. Временные экспорты и большие архивы обычно исключают через .gitignore, если они воспроизводимы. Для научной статьи полезно хранить контрольный PDF релиза с тегом, но не коммитить новый PDF после каждого символа. Версии пакетов фиксируют в импортах, иначе сборка старого коммита может получить другой результат.

Интеграция отмечена как экспериментальная, поэтому критический процесс не должен зависеть только от неё. Команда может вести основной Git-процесс в привычных инструментах, а редактор использовать для совместной правки и предпросмотра. При непонятной ошибке синхронизации сначала проверяют подключение аккаунта, права на репозиторий, существование ветки и наличие новых удалённых коммитов.

Экспорт в PDF, PNG, SVG и HTML

Меню экспорта Typst с PDF, PNG, SVG и HTML

Быстрая кнопка сохраняет документ с выбранными по умолчанию параметрами. Для точной настройки открывают File, Export as и нужный формат либо стрелку рядом с быстрой выгрузкой. Меню хранит настройки проекта, поэтому соавторы и следующий сеанс получают тот же диапазон, стандарт и разрешение. Перед финальной сдачей не стоит полагаться на привычную быструю кнопку: нужно открыть параметры и убедиться, что выбран правильный входной файл и все страницы.

PDF поддерживает версии от 1.4 до 2.0 и набор профилей PDF/A, а также PDF/UA-1. По умолчанию создаётся документ PDF 1.7. Диапазон может включать все страницы, текущую страницу или произвольные номера и интервалы. Tagged PDF улучшает доступность и нужен для соответствующих профилей; отключение тегов делает файл недоступным для экранных дикторов и мешает соблюдению требований PDF/UA. Стандарт следует выбирать по требованиям архива, издательства или заказчика, а не по принципу чем новее, тем лучше.

PNG и SVG формируют изображение страницы. Для многостраничного документа выгружается архив с отдельным файлом на страницу. PNG требует выбора плотности и подходит для предпросмотра, соцсетей и систем, которые не принимают PDF. SVG сохраняет векторную геометрию и удобен для отдельных схем, но совместимость сложных шрифтов и вложений нужно проверить в целевом просмотрщике. Если пользователю нужен поиск и копирование текста, растровый PNG не подходит.

HTML стремится сохранить структуру документа, но режим остаётся экспериментальным: часть функций и шаблонов может не поддерживаться или выглядеть иначе. В настройках проекта включают экспериментальную возможность, затем выбирают режим предпросмотра PDF или HTML. Один исходник можно адаптировать под разные цели через target и отдельные show-правила, однако печатная композиция с фиксированными страницами не всегда переводится в потоковую веб-страницу автоматически.

Подготовка доступного PDF

Доступность начинается в исходнике. Заголовки должны быть настоящими heading, списки — list, таблицы — table с заголовочными ячейками, изображения — иметь alt, а декоративные объекты — быть помечены как артефакты, когда это необходимо. Визуально похожий текст, собранный из отдельных блоков и ручных координат, может читаться экранным диктором в неверном порядке. Поэтому семантические элементы предпочтительнее абсолютного позиционирования.

Метаданные документа задают название, автора, дату и другие сведения, которые видит просмотрщик PDF. Язык текста влияет не только на переносы, но и на произношение синтезатором речи. Для сложной таблицы можно добавить резюме, объясняющее структуру. Ссылка должна иметь осмысленный текст; длинный адрес в основном тексте неудобен и визуально, и при озвучивании.

Выбор PDF/UA-1 или доступного профиля PDF/A не гарантирует качество содержания. После экспорта документ нужно проверить специализированным валидатором и вручную: порядок чтения, заголовки, подписи, альтернативы изображений, контраст и навигацию с клавиатуры. Если валидатор показывает ошибку в стороннем пакете или шаблоне, полезно воспроизвести её на минимальном примере и заменить нестандартный блок семантическим элементом.

Презентации требуют отдельной проверки. Слайд с мелким текстом, цветовой кодировкой без подписей или изображением формулы недоступен даже при наличии тегов. Диаграмма должна сопровождаться выводом в тексте, а заметки докладчика — содержать сведения, которые нельзя понять только по картинке. При публикации слайдов как PDF желательно обеспечить логичный порядок чтения элементов каждого кадра.

Презентации и режим докладчика

Режим докладчика Typst с текущим и следующим слайдом

Слайды создаются обычной разметкой и шаблонами, часто с пакетами Polylux или Touying. Формат страницы задают 16:9 или 4:3, после чего интерфейс может показать кнопку Present. При запуске в текущем окне слайды разворачиваются на весь экран; Escape завершает показ. Переходы и постепенное раскрытие зависят от выбранного пакета и структуры, поэтому готовый материал нужно прогнать от начала до конца, а не оценивать только отдельные страницы.

Speaker Mode показывает текущий слайд, следующий кадр, часы, таймер и прогресс. В нём доступны навигация, временное затемнение, указатель и рисование поверх слайда. Отдельное окно удобно переместить на проектор, оставив панель докладчика на ноутбуке. Перед выступлением следует проверить, какой экран считается внешним, отключить уведомления и убедиться, что браузер не масштабирует страницу нестандартно.

Одна из сильных сторон разметки — повторное использование материала. Определение, таблица или диаграмма могут импортироваться и в отчёт, и в презентацию, а show-правила адаптируют вид к целевому формату. Нельзя просто уменьшить страницу статьи до размера слайда: презентация требует меньше текста, крупнее кегль и иной ритм. Лучше хранить общие данные и функции, но писать отдельный слой содержания для выступления.

Экспорт слайдов в PDF удобен для раздачи, а режим показа — для выступления. Если используются внешние видео, интерактивность или сложная анимация, PDF-представление их не сохранит. В таком проекте нужно заранее решить, что является основным носителем, и подготовить статические замены для архива.

Командная строка и автоматическая сборка

Команда typst compile принимает исходный .typ и путь результата. Если выход не указан, рядом создаётся файл с тем же базовым именем. typst watch следит за исходниками и пересобирает документ после изменения; инкрементальная компиляция делает такой цикл быстрым. Этот режим удобен в редакторе кода с отдельным просмотрщиком PDF, а также при разработке шаблона, когда меняется много мелких правил.

Дополнительные каталоги шрифтов передаются параметром font-path, найденные семейства выводит typst fonts. Корень проекта ограничивает доступ к файлам и предотвращает случайное чтение произвольных путей. Внешние значения можно передавать как inputs и получать через sys.inputs: так один шаблон собирает отчёты для разных подразделений без правки исходника. Секреты не следует помещать в параметры сборки, если они попадут в журналы CI.

typst init создаёт проект из шаблона, включая шаблоны Universe. typst update обновляет бинарный компилятор там, где поддерживается этот способ установки. Команды help и help compile показывают доступные параметры именно установленной сборки; это надёжнее случайного примера из старой статьи. В автоматизации версию компилятора фиксируют, потому что изменения алгоритма верстки или стандартной библиотеки способны сдвинуть строки и страницы.

В CI обычно выполняют проверку форматирования данных, компиляцию, сохранение артефакта и при необходимости сравнение контрольных файлов. Контейнер обеспечивает одинаковое окружение, но шрифты и пакеты всё равно нужно закрепить. Сборка должна завершаться ошибкой при неизвестной ссылке, отсутствующем ресурсе или аварии функции, а предупреждения следует просматривать, а не скрывать глобально. Для нескольких документов удобен скрипт, который проходит по входным файлам и складывает результаты в отдельный каталог.

Работа с поиском и большими проектами

Панель поиска и замены в Typst

Поиск в текущем файле открывается Ctrl+F или через Edit. Панель умеет переходить между совпадениями, выбирать все, учитывать регистр, искать целые слова и использовать регулярные выражения. Поле замены поддерживает одиночную и массовую замену. Перед Replace all полезно включить точное слово или регулярное выражение с границами: замена короткой части имени способна изменить метки, функции и пути к файлам.

Поиск по проекту нужен для имени переменной, метки, импорта или текста, разбросанного по главам. В большом шаблоне сначала ищут определение, затем все вызовы. Имена вроде data, text и item слишком общие и дают сотни результатов; предметные имена уменьшают риск. Переименование публичной функции пакета требует обновить документацию и примеры, иначе пользователи получат unknown variable.

Панель файлов должна отражать структуру документа. Каталоги chapters, figures, data, styles и bibliography понятнее одной папки с сотней объектов. Главные входные файлы можно назвать book.typ, article.typ и slides.typ. В каждом полезно оставить короткий комментарий о назначении и команде сборки. Резервный экспорт проекта сохраняет файлы и помогает перенести работу, но не заменяет версионирование, потому что не показывает историю изменений.

При замедлении компиляции ищут дорогие запросы introspection, глубокую рекурсию, огромные SVG, сложные пакеты графиков и повторное чтение данных внутри циклов. Данные лучше загрузить один раз в переменную, вычисления — вынести из каждой ячейки, тяжёлую диаграмму — проверить отдельно. Минимальный пример помогает понять, проблема в собственном шаблоне, пакете или входном файле.

Типовые ошибки и способы исправления

Ошибка синтаксиса обычно указывает строку, столбец и диапазон. Сначала проверяют незакрытые круглые, квадратные и фигурные скобки, затем запятую между именованными параметрами и правильность режима кода. Ошибка часто проявляется строкой ниже настоящей причины: незакрытая скобка заставляет компилятор читать следующий абзац как продолжение вызова. Полезно временно свернуть блок до минимального вызова и возвращать параметры по одному.

Unknown variable означает опечатку, неправильную область видимости или забытый import. Если функция определена внутри блока, снаружи она недоступна. При импорте с перечислением нужно убедиться, что имя экспортируется модулем и не переименовано через as. Конфликт имён решается псевдонимом или импортом модуля целиком с обращением через точку.

File not found исправляют проверкой имени, регистра, расширения и относительного пути от текущего файла. Вложенный модуль может разрешать ресурс относительно своей папки, поэтому путь, работавший в main.typ, не обязательно подходит внутри styles/theme.typ. Надёжный шаблон принимает ресурсы аргументами или хранит их рядом с точкой входа пакета. Абсолютный путь с диском Windows не переносится в другую среду.

Предупреждение о шрифте требует узнать точное имя семейства. Имя файла и имя шрифта могут отличаться. После загрузки надо открыть список доступных гарнитур или проверить typst fonts. Если символы заменены квадратиками, выбранный шрифт не содержит нужных глифов; добавляют запасное семейство, а не меняют кодировку исходника.

Неизвестная ссылка появляется, когда метки нет в выбранном входном документе, она написана иначе или объект исключён условием. Две одинаковые метки создают неоднозначность. Для библиографической ссылки дополнительно проверяют ключ в .bib и вызов bibliography. После исправления иногда нужен ещё один проход, потому что ссылки и номера зависят от окончательной раскладки.

Переполнение страницы проявляется обрезанным блоком или предупреждением о layout. Причиной бывает слишком широкая таблица, длинная неразрывная строка, фиксированная ширина изображения или контейнер, который нельзя разорвать. Нужно найти конкретный элемент, разрешить перенос, уменьшить только его разумным способом или перестроить композицию. Глобальное уменьшение шрифта скрывает симптом и ухудшает весь документ.

Если HTML выглядит иначе PDF, следует проверить поддержку функций и шаблона. Печатные колонтитулы, абсолютное размещение и некоторые элементы не имеют прямого веб-аналога. Разделите правила по target, оставьте в общей части семантическое содержание и создайте отдельное оформление для paged и HTML. До стабилизации режима финальный сайт нужно тестировать в нескольких браузерах.

При конфликте Git сначала сохраняют резервную копию, затем получают удалённые изменения. Конфликтные маркеры нельзя оставлять в .typ: они нарушат синтаксис и могут попасть в текст. После ручного объединения компилируют все входные документы, проверяют изображения и только затем отправляют изменения. Если проект связан с подпапкой, убедитесь, что нужный ресурс не находится за её пределами.

Практический сценарий: научная статья

Начните с требований журнала: формат страницы, колонки, шрифт, структура аннотации, стиль ссылок и допустимый PDF-профиль. Если в Universe есть проверенный шаблон издателя, изучите его исходники и лицензию; иначе создайте небольшой стилевой модуль. В main.typ подключите шаблон, укажите метаданные и включите главы. Не смешивайте правила оформления с текстом каждого раздела — это затруднит перенос статьи в другой журнал.

Формулы снабжайте метками сразу, рисунки вставляйте через figure с подписью и alt, таблицы делайте семантическими. Источники держите в одном .bib и проверяйте полноту записей. Для совместной работы выдавайте соавторам запись, рецензентам — Review. Замечания закрывайте после исправления, а не удаляйте, чтобы сохранить историю решений.

Перед отправкой сформируйте оглавление только если оно требуется, обновите список литературы, найдите неизвестные ссылки и проверьте каждую страницу на висячие заголовки, пустые полосы и слишком мелкие рисунки. Экспортируйте PDF с требуемым стандартом и диапазоном всех страниц. Затем откройте файл в независимом просмотрщике, проверьте встроенные шрифты, копирование формул и кликабельность ссылок.

Если редакция прислала правки в готовом PDF, Typst не редактирует его содержимое как объектный PDF-редактор. Изменения нужно внести в исходник и пересобрать документ. Аннотации из PDF переносят вручную или через отдельный процесс согласования. Это сохраняет единый источник истины и предотвращает расхождение между исходным текстом и финальным файлом.

Практический сценарий: отчёт из данных

Для регулярного отчёта отделите данные от оформления. Скрипт или аналитическая система выгружает CSV и JSON, Typst читает их и строит таблицы, показатели и диаграммы. Параметры периода, подразделения и автора передаются через sys.inputs или конфигурационный файл. Один шаблон собирает десятки вариантов без копирования страниц.

На этапе подготовки проверьте пропуски, типы и единицы измерения. Форматирование числа должно быть централизовано: одинаковое число знаков после запятой, единый десятичный разделитель, неразрывный пробел перед единицей. Диаграмма и итоговая строка должны рассчитываться из того же массива, что таблица; ручные значения быстро расходятся с данными.

Длинные таблицы разбивайте по смыслу, повторяйте шапку и переносите детали в приложение. Для руководителя можно создать короткий входной файл с выводами, для аналитика — полный. Общие функции и данные импортируются, а порядок разделов различается. Экспорт в PDF подходит для архива, PNG отдельных страниц — для презентации, HTML можно тестировать для внутреннего портала с учётом экспериментальных ограничений.

В автоматической сборке фиксируйте компилятор и пакеты, добавьте тест на отсутствие входных файлов и нулевые строки. Если данных нет, шаблон должен вывести понятное сообщение или корректный пустой раздел, а не падать в середине таблицы. Готовый артефакт именуйте с периодом и идентификатором, чтобы отчёты не перезаписывали друг друга.

Практический сценарий: диплом или книга

Создайте главный файл, отдельные главы, приложения, стилевой модуль, каталог рисунков и библиографию. В main.typ задайте титул, оглавление, порядок частей, нумерацию и метаданные. Каждая глава начинается с заголовка и не содержит глобальных page или text, если этого не требует особый раздел. Такое устройство позволяет компилировать отдельную главу через вспомогательный входной файл.

Для двусторонней печати проверьте внутренние поля, начало главы с нечётной страницы и положение номеров. Иллюстрации храните в достаточном разрешении, схемы — в векторе. Все формулы, таблицы и рисунки должны иметь метки и ссылки из текста. Оглавление, перечни и номера приложений формируются автоматически, но их вид сверяется с методическими требованиями.

Библиографию лучше вести в Zotero или другом менеджере, затем синхронизировать или экспортировать .bib. Для архивных и нормативных источников могут потребоваться дополнительные поля и отдельные категории. Не откладывайте проверку стиля до конца: изменение схемы цитирования иногда выявляет неполные записи и меняет длину списка на несколько страниц.

Финальная проверка включает титульные страницы, пустые обороты, переносы заголовков, подписи, нумерацию, закладки и доступность. Для печати создают полный PDF, для проверки руководителем — вариант с удобными ссылками и при необходимости черновой маркировкой, для публикации главы — отдельный входной файл. Все варианты должны собираться из общих исходников, а не из копий текста.

Сравнение Typst с аналогами

Инструменты ниже решают пересекающиеся, но не одинаковые задачи. Typst и LaTeX строят документ из разметки; Overleaf добавляет совместную среду для LaTeX; Quarto и Pandoc ориентированы на преобразование структурированного текста и вычислительные публикации; PDF Commander нужен, когда требуется изменить уже существующий PDF без возврата к исходнику.

ПрограммаЛучше подходит дляГлавное ограничение
TypstНаучные и технические документы с быстрым предпросмотромТребуется освоить собственную разметку
LaTeX / TeX LiveИздания со зрелой экосистемой классов и пакетовСложнее синтаксис и диагностика
OverleafСовместные LaTeX-проекты в браузереЗависит от LaTeX и тарифных лимитов
QuartoВычислительные отчёты из Markdown и кодаТочная верстка зависит от движка
PandocМассовое преобразование текстовых форматовНе является визуальным редактором макета
PDF CommanderПравка, сборка и защита готовых PDFНе предназначен для набора из разметки

Как выбрать подходящий инструмент

Typst стоит выбирать, когда документ должен регулярно пересобираться из структурированного исходника, содержит формулы, ссылки, таблицы и собственные правила оформления, а автору важен мгновенный результат. LaTeX остаётся разумным выбором при обязательном классе издательства, специализированном пакете без аналога или существующей большой кодовой базе. Overleaf удобен команде, которая уже работает в LaTeX и хочет совместное редактирование без настройки окружения.

Quarto лучше подходит для отчётов, где главным источником являются вычислительные блокноты, Markdown и код анализа. Pandoc полезен как конвертер и связующее звено между форматами. PDF Commander выбирают для иной стадии процесса: исправить страницы, объединить документы, добавить защиту или отредактировать готовый PDF, когда исходника Typst, LaTeX или Word нет. Попытка заменить одним инструментом все стадии обычно создаёт лишние ограничения.

Для организации полезен пилотный документ. Возьмите реальный отчёт с таблицами, формулами, рисунками и требованиями архива, соберите его двумя кандидатами и измерьте не только первый результат, но и повторное обновление через месяц. Важны время правки шаблона, воспроизводимость на другом компьютере, работа библиографии, доступность PDF и удобство рецензирования.

Ограничения, которые важно учитывать

Typst создаёт PDF из исходной разметки, но не предоставляет объектную правку чужого готового PDF. Нельзя открыть произвольный файл, выбрать абзац и изменить его как в PDF-редакторе. Если исходник доступен, исправляют его и экспортируют заново; если нет — используют специализированное средство для PDF или распознавание с последующей реконструкцией.

Освоение синтаксиса требует времени. Базовые заголовки и списки просты, но сложный шаблон использует функции, области видимости, селекторы, контекст и introspection. Новичку лучше начать с готового шаблона и постепенно выносить повторяющееся оформление. Копирование большого фрагмента чужого кода без понимания усложняет диагностику и обновление.

Часть функций совместной среды, включая некоторые организационные, комментарии, частные пакеты, синхронизацию источников, Git и режим докладчика, связана с расширенными возможностями подписки. При планировании командного процесса нужно проверить, какие права имеет владелец проекта и какие функции доступны участникам. Исходный язык и компилятор остаются пригодны для самостоятельной сборки, но интерфейсный процесс может отличаться.

HTML-вывод ещё не воспроизводит все возможности печатной верстки. Шаблон с абсолютным размещением, сложными колонтитулами или специализированным пакетом может потребовать отдельного слоя правил. Даже поддерживаемый элемент нужно проверить на адаптивной ширине, клавиатурной навигации и в целевых браузерах.

Экосистема моложе TeX, поэтому для редкого издательского стандарта или узкой научной нотации может не оказаться готового пакета. Иногда быстрее написать небольшую функцию, иногда — оставить проект в LaTeX. Критерий выбора — стоимость поддержки полного документа, а не привлекательность отдельного примера.

Контрольный список перед экспортом

Сначала убедитесь, что выбран правильный файл предпросмотра и он сохранён как общий для проекта, если над работой трудятся несколько человек. Откройте панель ошибок, устраните неизвестные ссылки, отсутствующие файлы и предупреждения о шрифтах. Выполните поиск черновых меток, слов TODO, временных цветов и закомментированных обязательных разделов.

Просмотрите документ при масштабе целой страницы и при 100 процентах. Первый режим выявляет пустые полосы, одиночные строки и неудачный ритм, второй — размытые изображения, мелкий текст и тонкие линии. Проверьте начало и конец каждой главы, перенос таблиц, подписи, оглавление, колонтитулы и номера приложений.

Откройте настройки экспорта. Выберите диапазон всех страниц, требуемую версию PDF и профиль, оставьте теги включёнными для доступного документа. Проверьте метаданные и язык. После сохранения откройте PDF вне Typst, выполните поиск текста, скопируйте формулу и таблицу, перейдите по нескольким внутренним ссылкам.

Для архива сохраните исходники, данные, изображения, библиографию, лицензии шрифтов, список пакетов и сведения о среде сборки. Один PDF без исходников затрудняет исправление через несколько лет. Для публичного проекта добавьте README с командой компиляции и описанием входных файлов, но не помещайте в репозиторий пароли и закрытые данные.

Ответы на практические вопросы

Можно ли писать обычный текст без программирования? Да. Абзацы, заголовки, выделения и списки используют короткую разметку, а функции нужны для изображений, таблиц и настроек. Скрипты появляются, когда автор хочет автоматизировать повторения или построить данные. Для простого отчёта достаточно нескольких set-правил и готового шаблона.

Можно ли импортировать документ Word? Проект можно начать преобразованием Word или OpenDocument Text, но функция экспериментальная и переносит не все особенности. Изображения могут потребовать отдельной загрузки, сложные стили — ручной настройки. Импорт лучше использовать как способ получить текстовую основу, а не как гарантию полного совпадения страниц.

Можно ли вставить PDF как изображение? PDF поддерживается среди форматов изображений. Это удобно для векторной схемы или включения страницы, однако результат следует проверить в каждом целевом формате: PDF, PNG, SVG и HTML обрабатывают вложение по-разному. Для редактирования содержимого вложенного PDF всё равно нужен его исходник.

Как сделать один стиль для многих документов? Создайте функцию-шаблон в отдельном файле или пакет, передавайте ей метаданные и содержимое, а правила page, text, heading и show держите внутри. Для команды удобен частный пакет с версиями; для открытого проекта — пакет с лицензией и документацией. Не копируйте стилевой файл в каждый проект без механизма обновления.

Почему страницы у коллеги отличаются? Чаще всего различаются шрифты, версия компилятора, версия пакета или входные данные. Загрузите нужные гарнитуры в проект, закрепите версии импортов и используйте одинаковую среду сборки. Затем сравните предупреждения и выбранный входной файл.

Как получить только несколько страниц? В меню PDF выберите Custom ranges и задайте номера или интервалы. Для постоянного отдельного документа лучше создать дополнительный входной файл, который включает нужные части: тогда нумерация, оглавление и ссылки могут быть адаптированы осознанно, а не просто вырезаны из полного PDF.

Почему комментарии не видны в PDF? Рецензентские комментарии предназначены для обсуждения исходника и намеренно не экспортируются. Если замечание должно стать частью документа, его нужно оформить как текст, сноску, примечание или пользовательский блок. Разрешённые комментарии остаются в истории интерфейса.

Как уменьшить размер PDF? Сначала оптимизируйте растровые изображения: не вставляйте многомегапиксельную фотографию для миниатюры. Используйте JPEG или WebP для фото, вектор для схем, не дублируйте одинаковые ресурсы. Затем проверьте шрифты и вложения. Уменьшение качества должно быть контролируемым, чтобы подписи и графики не стали нечитаемыми.

Переход с LaTeX и других систем

При переносе проекта из LaTeX сначала отделите содержание от макросов. Заголовки, списки, формулы, рисунки и библиографические ссылки обычно переводятся напрямую, а классы документа и набор собственных команд требуют переосмысления через set, show и функции. Не стоит механически воспроизводить каждую конструкцию TeX: часть сложности исходника возникла из-за особенностей старого движка и в Typst решается одним параметром или семантическим элементом.

Формулы похожи по идее, но отличаются именами команд, правилами группировки и пробелами. Удобнее переносить раздел за разделом и держать рядом контрольный PDF, чем прогонять тысячи строк автоматической заменой. После каждой главы проверяйте номера, выравнивание многострочных выражений, операторы, текст внутри формул и ссылки. Пользовательские математические макросы можно заменить функциями с содержательными аргументами.

Библиографический файл BibLaTeX часто удаётся использовать без перестройки, однако стиль и обработка полей могут отличаться. Сравните несколько типичных записей: статью, книгу, сборник, веб-источник и документ без автора. Если издатель предоставляет только .bst или сложный LaTeX-стиль, понадобится подобрать CSL либо реализовать требуемое оформление и проверить его на полном списке.

Миграция из Word или OpenDocument Text начинается с экспериментального преобразования, затем стили заменяются структурой. Ручные заголовки превращают в heading, нумерованные подписи — в figure и table, перекрёстные ссылки — в метки, повторяемые элементы — в функции. Чистка занимает время, зато после неё содержание становится пригодным для автоматической перенумерации и смены шаблона.

Воспроизводимость и контроль изменений макета

Воспроизводимый документ должен собираться одинаково на рабочем компьютере, в командной среде и в CI. Для этого фиксируют версию компилятора, версии пакетов, набор шрифтов и входные данные. Плавающий импорт пакета или системный шрифт без закреплённого файла способен изменить длину строки, перенос страницы и даже количество листов, хотя исходник не менялся.

Контрольный PDF полезно создавать для каждого утверждённого выпуска. При обновлении среды сравнивают не только размер файла, но и визуальные страницы, текстовые метаданные и предупреждения. Побайтовое совпадение возможно не во всех процессах из-за служебных данных, поэтому практический тест сочетает хеш исходников, фиксированную среду и визуальное сравнение растров страниц.

Пакеты следует обновлять отдельно от содержательных правок. Сначала создайте ветку или копию проекта, измените одну зависимость, соберите все входные документы и просмотрите страницы с таблицами, формулами, плавающими фигурами и оглавлением. Если обновить сразу компилятор, шаблон и данные, источник изменения будет трудно определить.

Шрифтовая лицензия тоже относится к воспроизводимости. Файл может быть технически доступен на одном компьютере, но запрещён для распространения в репозитории. В таком случае документируют способ установки и проверяют среду сборки, либо выбирают гарнитуру, которую разрешено включать в проект. Замена шрифта в последний день почти всегда требует повторной проверки всех переносов.

Точная настройка служебных элементов PDF

Метаданные задаются через document и влияют на свойства файла, которые показывают просмотрщики и поисковые системы. Название в метаданных должно совпадать с документом, авторы — быть перечислены в нужном порядке, язык — соответствовать основному содержанию. Пустые или технические значения вроде имени исходного файла ухудшают архивный поиск и доступность.

Вложения и специальные PDF-элементы применяют только при понятном требовании. Профили PDF/A различаются допустимыми возможностями и уровнем соответствия, поэтому выбранный вариант необходимо согласовать с архивом. Документ, который проходит компиляцию, может не пройти внешний валидатор из-за шрифта, цвета, структуры или вложения; проверка должна выполняться на итоговом файле.

Диапазон страниц удобен для рецензирования, но вырезанный фрагмент сохраняет номера из полного документа. Если требуется самостоятельная глава с нумерацией от первой страницы, создайте отдельную точку входа и настройте счётчики. Простая выгрузка страниц 40–55 не превращает их в независимую брошюру и может оставить ссылки на отсутствующие объекты.

При печати проверьте обрезной формат, поля, цветные фоны и тонкие линии. Экранный предпросмотр не показывает физический корешок, непечатаемую область принтера и особенности чёрно-белого режима. Тестовый экземпляр нескольких характерных страниц часто выявляет проблемы, которые не заметны в увеличенном окне: слишком светлый серый текст, тонкую сетку и подпись у края листа.

Итоговый рабочий подход

Наиболее надёжная работа с Typst строится вокруг единого исходника, семантических элементов и небольшого набора централизованных правил. Содержание остаётся читаемым, оформление меняется через шаблон, данные подключаются файлами, ссылки и библиография пересчитываются автоматически. Живой предпросмотр ускоряет проверку, но не отменяет финальный просмотр независимого PDF.

Для первого проекта достаточно освоить заголовки, списки, функции image и figure, set page, set text, ссылки и bibliography. Затем можно перейти к show-правилам, функциям, таблицам из данных, пакетам и автоматической сборке. Такой порядок снижает порог входа и не превращает документ в программу раньше, чем это действительно нужно.

Командный процесс выигрывает от ясных ролей, комментариев и сохранённой истории. Стилевой модуль редактируют осторожно, версии пакетов закрепляют, Git-конфликты разрешают до экспорта. Доступность, шрифты и стандарт PDF проверяют как свойства результата, а не как формальную галочку в меню.

В итоге Typst особенно полезен там, где документ живёт долго, регулярно обновляется и должен оставаться воспроизводимым: научная работа, серия отчётов, учебный курс, техническая документация или презентация на основе общих данных. Для разовой правки уже готового PDF нужен другой класс инструмента, но для управляемого набора и автоматической верстки разметка даёт точный и поддерживаемый процесс.