No description
  • Python 64%
  • TeX 36%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-18 17:20:29 +00:00
blanks_gen WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
old clean code & add debug mode 2022-09-07 18:34:53 +03:00
.gitignore WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
batch_gen.py WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
crops_v2.afdesign WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
pyproject.toml Repoint repository URLs to code.pecheny.me 2026-07-18 17:20:29 +00:00
README.md Add canonical repository notice 2026-07-18 16:58:21 +00:00
single_gen.py WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
studchr2022_mdm_crops.pdf WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
umind_stub.tex WIP: tweak resources, crops, configs and generators 2026-06-01 14:31:26 +02:00
uv.lock Convert from setup.py to uv-managed pyproject.toml 2026-06-01 14:36:54 +02:00

Основной репозиторий этого проекта — https://code.pecheny.me/pecheny/blanks_gen, пожалуйста, создавайте issues там.

Генератор бланков

Начало работы

Для работы нужен LaTeX. Если есть питон, установить латех можно так:

pip install ensure_texlive
python -m ensure_texlive

Чтобы работали кроп-марки, надо поставить cpdf: https://community.coherentpdf.com/

Для типографии

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

Перед началом установите шрифт Open Sans.

Создайте выходную папку, пусть в нашем случа это будет studchr2022.

Запустите texliveonfly, чтобы поставить недостающие пакеты латеха: texliveonfly -c lualatex umind_stub.tex.

Если не хотите печатать названия команд, уже можно запускать:

python batch_gen.py --stub umind_stub.tex --teams 55 --batch_len 24  --questions 90 --folder studchr2022

Параметр --teams в данном случае отвечает за количество команд.

Если хотите, чтобы на бланках были названия команд, запишите их в файл, например studchr2022.txt, по одному на строку.

python batch_gen.py --stub umind_stub.tex --team_names studchr2022.txt --batch_len 24  --questions 90 --folder studchr2022

При этом в файле --team_names — названия команд по одному на строку. Неразрывный пробел — ~, как в латехе. Если в конце надо добавить несколько комплектов бланков без названий, только с номерами — надо всем им проставить название ~.

Пример, если у вас 5 команд и 3 лишних пакета бланков на всякий случай:

Пассат против~ветра
Мама собирала
$\forall \varepsilon > 0$  % тут можно писать в принципе любые LaTeX-выражения, в данном случае у команды подходящее название :)
Ветер в~хату
Сурок богоугодности
~
~
~

Если вы ошиблись или поменялись названия команд и вы хотите перегенерировать бланки заново, перед этим очистите выходную папку.

Для ручной нарезки

Всё так же надо сначала создать выходную папку, допустим studchr2022.

Запустите texliveonfly, чтобы поставить недостающие пакеты латеха: texliveonfly -c xelatex blanks90_good.tex.

В этих бланках предполагается установленным шрифт Source Serif 4.

cd old
python blanks_gen.py 15 --blanks blanks90_good.tex --output_dir studchr2022 --clear

В примере выше 15 — это количество команд.

В комплекте есть готовые файлы на 24, 36, 45 и 90 вопросов, после печати надо будет руками разрезать лист.

В этом режиме названия команд не поддержаны.