- Typst 100%
| assets | ||
| lab_report.typ | ||
| README.md | ||
Bonch Lab Report
Базовый шаблон для отчетов по лабораторным работам в СПбГУТ, написанный на Typst. Шаблон предназначен для подготовки лабораторных работ с автоматическим формированием титульного листа, оглавления, нумерации рисунков и таблиц, а также корректным оформлением текста, формул и листингов.
Рекомендуемый способ работы — через VS Code или VSCodium.
Назначение шаблона
Шаблон используется для:
- оформления лабораторных работ по дисциплинам СПбГУТ;
- унификации структуры отчетов;
- отказа от ручной верстки в текстовых редакторах;
- получения воспроизводимого PDF-документа.
Требования
Редактор
- VS Code или VSCodium
Рекомендуется VSCodium, так как все используемые расширения доступны в Open VSX.
Необходимые расширения
Tinymist Typst
Расширение для работы с языком Typst:
- подсветка синтаксиса;
- автодополнение и диагностика ошибок;
- live-preview документа;
- компиляция в PDF.
Ссылка: https://open-vsx.org/extension/myriad-dreamin/tinymist
PDF Viewer
Встроенный просмотр PDF-файлов в редакторе.
Ссылка: https://open-vsx.org/extension/tomoki1207/pdf
Установка расширений
Через интерфейс редактора
-
Откройте VS Code / VSCodium
-
Перейдите во вкладку Extensions
-
Установите:
Tinymist Typstvscode-pdf
Через командную строку (VSCodium)
codium --install-extension myriad-dreamin.tinymist
codium --install-extension tomoki1207.pdf
Структура проекта
Структура проекта:
report/
├── report.typ # Основной файл отчёта
├── README.md # Описание шаблона
├── assets/
└── example-1.png # Изображения
Все изображения рекомендуется хранить в каталоге assets.
Использование шаблона
Заполнение титульных данных
В начале файла report.typ необходимо указать основные параметры отчета:
#let lab_num = "1"
#let topic = "Тема отчета"
#let subject = "Название дисциплины"
#let teacher = "ст. преп. Иванов И. И."
#let students = (
"Иванов И. И., ИКБ-123",
"Петров П. П., ИКБ-123",
)
Эти данные автоматически подставляются в титульный лист.
Предпросмотр и компиляция
Структура отчета
Разделы и подразделы
=— основной раздел==— подраздел
Оглавление формируется автоматически с помощью:
#outline()
Рисунки
#figure(
image("assets/example-1.png", width: 90%),
caption: [Пример изображения],
)
Таблицы
#figure(
table(
columns: 2,
[*Параметр*], [*Значение*],
[IP-адрес], [192.168.1.1],
),
caption: [Пример таблицы],
supplement: [Таблица]
)
Листинги кода
#figure(
```sh
chmod +x script.sh
```,
caption: [Пример листинга]
)
Формулы
Поддерживается математическая нотация, близкая к LaTeX:
$ sigma = sqrt(frac(1, n-1) sum_(i=1)^n (x_i - macron(x))^2 ) $
Примечания и выделенные блоки
#block(
fill: luma(240),
inset: 10pt,
)[
Текст примечания
]

