- Python 64%
- TeX 36%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| blanks_gen | ||
| old | ||
| .gitignore | ||
| batch_gen.py | ||
| crops_v2.afdesign | ||
| pyproject.toml | ||
| README.md | ||
| single_gen.py | ||
| studchr2022_mdm_crops.pdf | ||
| umind_stub.tex | ||
| uv.lock | ||
Основной репозиторий этого проекта — 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 вопросов, после печати надо будет руками разрезать лист.
В этом режиме названия команд не поддержаны.