Typst — это новая система набора текста на основе разметки, которая столь же мощна, как LaTeX, но при этом гораздо проще в освоении и использовании. Типст имеет:
Этот репозиторий содержит компилятор Typst и его интерфейс командной строки — все, что вам нужно для локальной компиляции документов Typst. Чтобы получить наилучшие впечатления от письма, рассмотрите возможность бесплатной регистрации в нашем совместном онлайн-редакторе.
Краткое введение в Typst доступно в нашей документации. Однако, если вы хотите увидеть мощь Typst, заключенную в одном изображении, вот оно:
Давайте разберем, что происходит:
Мы используем установленные правила для настройки свойств элементов, таких как размер страниц или нумерация заголовков. Если для высоты страницы установлено auto
, она масштабируется в соответствии с содержимым. Установленные правила учитывают наиболее распространенные конфигурации. Если вам нужен полный контроль, вы также можете использовать правила показа, чтобы полностью переопределить внешний вид элемента.
Мы вставляем заголовок с синтаксисом = Heading
. Один знак равенства создает заголовок верхнего уровня, два — подзаголовок и так далее. У Typst есть более легкая разметка, подобная этой, полный список см. в справочнике по синтаксису.
Математические уравнения заключены в знаки доллара. Добавив дополнительные пробелы вокруг содержимого уравнения, мы можем выделить его в отдельный блок. Многобуквенные идентификаторы интерпретируются как определения и функции Typst, если они не заключены в кавычки. Таким образом, нам не нужны обратные косые черты для таких вещей, как floor
и sqrt
. А phi.alt
применяет модификатор alt
к phi
, чтобы выбрать конкретный вариант символа.
Теперь мы приступаем к написанию сценариев. Чтобы ввести код в документ Typst, мы можем написать хэш, за которым следует выражение. Мы определяем две переменные и рекурсивную функцию для вычисления n-го числа Фибоначчи. Затем мы отображаем результаты в таблице, выровненной по центру. Табличная функция обрабатывает ячейки построчно. Поэтому мы сначала передаем формулы $F_1$
в $F_8$
, а затем вычисленные числа Фибоначчи. Мы применяем оператор расширения ( ..
) к обоим, поскольку они являются массивами, и мы хотим передавать элементы массивов в качестве отдельных аргументов.
#set page ( width : 10cm , height : auto )
#set heading ( numbering : " 1. " )
= Fibonacci sequence
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:_
$ F_n = round(1 / sqrt(5) phi.alt^n), quad
phi.alt = (1 + sqrt(5)) / 2 $
#let count = 8
#let nums = range ( 1 , count + 1 )
#let fib ( n ) = (
if n <= 2 { 1 }
else { fib ( n - 1 ) + fib ( n - 2 ) }
)
The first #count numbers of the sequence are:
#align (center, table(
columns: count,
..nums.map(n => $ F_#n $ ),
..nums.map(n => str(fib(n))),
))
Интерфейс командной строки Typst доступен из разных источников:
Вы можете получить исходные коды и готовые двоичные файлы для последней версии Typst на странице выпусков. Загрузите архив для вашей платформы и поместите его в каталог, который находится в вашей PATH
. Чтобы быть в курсе будущих выпусков, вы можете просто запустить typst update
.
Вы можете установить Typst через различные менеджеры пакетов. Обратите внимание, что версии в менеджерах пакетов могут отставать от последней версии.
brew install typst
winget install --id Typst.Typst
Если у вас установлена цепочка инструментов Rust, вы можете установить
cargo install --locked typst-cli
cargo install --git https://github.com/typst/typst --locked typst-cli
Пользователи Nix могут
typst
с помощью nix-shell -p typst
nix run github:typst/typst -- --version
. Пользователи Docker могут запустить предварительно созданный образ с помощью docker run ghcr.io/typst/typst:latest --help
.
После установки Typst вы можете использовать его следующим образом:
# Creates `file.pdf` in working directory.
typst compile file.typ
# Creates PDF file at the desired path.
typst compile path/to/source.typ path/to/output.pdf
Вы также можете просматривать исходные файлы и автоматически перекомпилировать их при изменениях. Это быстрее, чем каждый раз компилировать с нуля, поскольку в Typst предусмотрена инкрементная компиляция.
# Watches source files and recompiles on changes.
typst watch file.typ
Typst также позволяет вам добавлять собственные пути к шрифтам для вашего проекта и перечислять все обнаруженные шрифты:
# Adds additional directories to search for fonts.
typst compile --font-path path/to/fonts file.typ
# Lists all of the discovered fonts in the system and the given directory.
typst fonts --font-path path/to/fonts
# Or via environment variable (Linux syntax).
TYPST_FONT_PATHS=path/to/fonts typst fonts
Другие подкоманды и параметры CLI см. ниже:
# Prints available subcommands and options.
typst help
# Prints detailed usage of a subcommand.
typst help watch
Если вы предпочитаете интегрированный интерфейс IDE с автозаполнением и мгновенным предварительным просмотром, вы также можете воспользоваться бесплатным веб-приложением Typst.
Основное место сбора сообщества — наш сервер Discord. Не стесняйтесь присоединяться к нам, чтобы задавать вопросы, помогать другим, делиться интересными вещами, которые вы создали с помощью Typst, или просто общаться.
Помимо этого, есть несколько мест, где можно найти вещи, созданные сообществом:
Если у вас был неудачный опыт в нашем сообществе, пожалуйста, свяжитесь с нами.
Нам бы хотелось увидеть вклад сообщества. Если у вас возникли ошибки, смело открывайте проблему. Если вы хотите реализовать новую функцию или исправить ошибку, следуйте инструкциям, описанным в руководстве по участию.
Чтобы собрать Typst самостоятельно, сначала убедитесь, что у вас установлена последняя стабильная версия Rust. Затем клонируйте этот репозиторий и создайте CLI с помощью следующих команд:
git clone https://github.com/typst/typst
cd typst
cargo build --release
Оптимизированный двоичный файл будет храниться в target/release/
.
Еще один хороший способ внести свой вклад — поделиться пакетами с сообществом.
МПА: /taɪpst/. «Тай», как в «Тай песеттинг», и «пст», как в «Привет , пст эр». Когда пишете о Типсте, пишите его имя как имя собственное с заглавной буквы «Т».
Весь Typst был разработан с учетом трех ключевых целей: мощность, простота и производительность. Мы считаем, что пришло время для системы, которая соответствует возможностям LaTeX, проста в освоении и использовании и при этом достаточно быстра для мгновенного предварительного просмотра. Для достижения этих целей мы следуем трем основным принципам проектирования:
Простота через последовательность: если вы знаете, как сделать что-то одно в Typst, вы сможете применить эти знания и к другим вещам. Если существует несколько способов сделать одно и то же, один из них должен находиться на другом уровне абстракции, чем другой. Например, это нормально, что = Introduction
и #heading[Introduction]
делают одно и то же, потому что первое является просто синтаксическим сахаром для второго.
Сила за счет возможности компоновки. Есть два способа сделать что-то гибким: иметь ручку для всего или иметь несколько кнопок, которые можно комбинировать разными способами. Typst разработан с учетом второго способа. Мы предоставляем системы, которые вы можете создавать способами, о которых мы даже не думали. TeX также относится ко второй категории, но он немного низкоуровневый, поэтому вместо него люди используют LaTeX. Но здесь у нас нет такой большой возможности компоновки. Вместо этого есть пакет для всего ( usepackage{knob}
).
Производительность за счет инкрементности: все функции языка Typst должны быть адаптированы для инкрементной компиляции. К счастью, у нас есть comemo
— система инкрементной компиляции, которая выполняет большую часть тяжелой работы в фоновом режиме.