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

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

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

```
pip install ensure_texlive
python -m ensure_texlive
```

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

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

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

Перед началом установите шрифт [Open Sans](https://fonts.google.com/specimen/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 лишних пакета бланков на всякий случай:

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

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

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

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

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

В этих бланках предполагается установленным шрифт [Source Serif 4](https://fonts.google.com/specimen/Source+Serif+4).

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

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

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

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