Перейти к содержанию

Раздатки

chgksuite позволяет генерировать PDF-файлы с раздатками для печати. Процесс состоит из двух шагов: сначала из 4s-файла извлекаются раздатки в формат .hndt (либо файл в этом формате можно написать руками), а затем из hndt-файла они верстаются в PDF.

Шаг 1: Генерация файла с раздатками

Выберите 4s-файл с пакетом и нажмите «Запустить». В той же папке появится файл с раздатками с расширением .hndt. Каждая раздатка, оформленная в 4s-файле в квадратных скобках ([Раздаточный материал: ...]), будет извлечена автоматически.

Полезные галочки:

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

Формат файла раздаток

Файл раздаток состоит из блоков, разделённых строкой ---. Каждый блок начинается с ключевых слов, за которыми следует содержимое раздатки. Пример:

for_question: 1
columns: 3

Текст раздатки
для первого вопроса
---
for_question: 5
columns: 2
image: razdatka_5.jpg
resize_image: 0.8

Ключевые слова

Ключевое слово Тип По умолчанию Описание
for_question число Номер вопроса
columns число Количество столбцов в сетке
rows число 1 Количество строк в сетке
max_width число 1.0 Доля доступной ширины страницы для всей сетки. Например, 0.5 делает сетку вдвое уже
image строка Путь к файлу с картинкой
resize_image число 1.0 Масштаб картинки (от 0 до 1)
font_size число 14 Размер шрифта в пунктах
font_family строка Arial Шрифт
handouts_per_team число 3 Количество копий на команду
grouping строка horizontal Направление группировки команд: horizontal или vertical
no_center Не центрировать текст
raw_tex Не экранировать LaTeX-символы
color число 0 1 = цветная раздатка, 0 = ч/б
rotate строка Поворот картинки: r (по часовой) или l (против часовой)
tikz_mm число 2 Внутренний отступ ячейки в мм
hspace число 1.5 Горизонтальный отступ между ячейками в мм
vspace число 1.0 Вертикальный отступ между ячейками в мм

Шаг 2: Вёрстка раздаток в PDF

Откройте файл с раздатками, полученный на предыдущем шаге, укажите шрифт и размер шрифта (если нужно), затем нажмите «Запустить». Появится PDF-файл с раздатками, готовый к печати.

При первом запуске chgksuite автоматически скачает и установит движок Tectonic (компилятор LaTeX), это может занять некоторое время.

На странице A4 раздатки размещаются в сетке: каждая ячейка — одна копия раздатки. Линии разреза между командами рисуются сплошными, а внутри одной команды — пунктирными.

Дополнительные настройки hndt2pdf

В дополнительных настройках можно изменить:

  • Размер бумаги — ширина и высота в мм (по умолчанию A4: 210 x 297).
  • Отступы всей страницы — верхний, нижний, левый, правый в мм (по умолчанию 5).
  • Внутренний отступ ячейки в миллиметрах (--tikz_mm).
  • Ширина ячейки (--boxwidth, --boxwidthinner) — ширина блока и внутренняя ширина в мм (по умолчанию рассчитываются автоматически).
  • Суффикс с количеством команд (--add_n_teams on) — добавляет к имени файла количество команд.
  • Сжатие PDF — по умолчанию включено (--compress_pdf on). Для сжатия используется pypdf: потоки PDF перепаковываются, одинаковые объекты дедуплицируются, а растровые изображения внутри PDF пережимаются в JPEG с качеством 80, если это уменьшает файл. Если сжатая версия получается больше исходной, файл не заменяется. Чтобы отключить: --compress_pdf off.
  • Сжатие растровых картинок — по умолчанию включено (--optimize_images on) для hndt2pdf и split_fit. Перед вёрсткой непрозрачные PNG/JPEG/WebP/BMP/TIFF/GIF пережимаются во временный JPEG с качеством 80, если результат меньше исходного файла; PNG с прозрачностью остаются PNG и сжимаются lossless с сохранением прозрачности. Векторные картинки не меняются. Чтобы отключить: --optimize_images off.

Установка Tectonic

Подкоманда install устанавливает движок Tectonic. Обычно это делается автоматически при первом запуске hndt2pdf, но при необходимости можно запустить установку вручную.

Подготовка раздаток для синхрона

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

Подкоманда split_fit принимает на вход файл .hndt, в котором находятся все раздатки пакета.

Затем она разделяет его на отдельные .hndt-файлы с раздатками для каждого вопроса, и для каждой раздатки подбирает максимальное количество строк rows, при котором PDF помещается на одну страницу. В имя pdf-файла записывается, для какого количества команд он предназначен.

Если у раздатки указан max_width меньше 1, split_fit для отдельных файлов размножает колонки по ширине листа, когда это возможно. Например, columns: 3 и max_width: 0.5 превращаются в columns: 6, чтобы увеличить количество команд на странице. В общем PDF на одну команду (_all_q_1team.pdf) исходный max_width сохраняется.

Подготовка раздаток для очника

Вы — организатор очника (или большой площадки синхрона) и хотите распечатать раздатки на все команды, чтобы всем точно хватило.

Подкоманда pack берёт папку с раздатками, уже подготовленными с помощью split_fit, и делает один или два файла, где все раздатки на указанное количество команд: packed_handouts_color.pdf для цветных раздаток, если они есть, и packed_handouts_bw.pdf для чёрно-белых. Чтобы работало разделение на цветные и ч/б раздатки, вам надо проставить всем цветным раздаткам color: 1 в hndt-файле.

Раздатки из HTML

Если раздатка слишком сложная для текстового формата (например, там есть таблицы или специальное форматирование), можно создать её в HTML:

  1. create_html — создаёт шаблон HTML-файла нужной ширины (доля от ширины A4, соответствующая hndt-колонке: 1/6, 1/3, 1/2 или 1). Отредактируйте его в текстовом редакторе.
  2. html2img — конвертирует HTML-файл в PDF и PNG с помощью Playwright (при первом запуске скачает headless Chromium).