Типичный файл в LaTeX состоит из заголовочной части, в которой указываются вспомогательные библиотеки и выставляются параметры документа, и собственно содержательной части. Чтобы не копировать стандартный заголовок из раза в раз, лучше его сохранить в отдельный файл и подключать этот файл к каждому своему проекту одной строчкой. В предлагаемом шаблоне для вёрстки контрольных работ принята похожая идеология: стандартные команды вынесены в отдельный файл, в который подключается конкретный файл с описанием вариантов контрольной работы.
На то, чтобы разобраться с шаблоном контрольной работы, уйдёт не больше 15 минут. Скачайте архив с контрольной работой (или посмотрите содержимое внизу данной страницы). В нём три файла:
_gentest.pdf
— пример конечного результата, готовый для распечатки,_gentest.tex
— генератор контрольных работ, именно его и нужно компилировать в LaTeX’е,variant.tex
— файл, содержащий текст конкретной контрольной работы, он должен лежать в одной директории с файлом _gentest.tex
.Указанные tex-файлы сохранены в кодировке UTF-8.
В файле _gentest.tex
нужно обратить внимание лишь на строчку \newcommand{\numberOfVariants}{40}
. Число 40 означает количество вариантов контрольной работы, которые необходимо нагенерировать. В результирующем PDF-файле каждый вариант получит свой номер, хотя при этом тексты некоторых вариантов могут быть идентичны.
В файле variant.tex
следует обратить внимание на строчку \pagebreakafter{4}
— в ней указано, сколько вариантов умещается на одной странице, этот параметр нужно выставлять вручную. Самое же важное — это команды \p
и \c
— они и предназначены для задания различных вариантов одной и той же задачи. Рассмотрим для примера такую задачу:
\begin{task}
Сравните числа \p2\c{25 и 46}\c{32 и 54}.
\end{task}
Команда \pЧИСЛО
или \p{ЧИСЛО}
означает, что сразу после неё последует соответствующее количество различных модификаций текста, который нужно напечатать. Сам текст идёт в командах \c{…}
. То, что написано в первой/второй/третьей/… такой команде, будет включено в первый/второй/третий/… вариант контрольной, по циклу. В приведённом выше примере в вариантах 1,3,5,7,… задача будет выглядеть как «Сравните числа 25 и 46», а в вариантах с чётными номерами она будет иметь вид «Сравните числа 32 и 54».
Всё становится ясно при сравнении файла variant.tex
и результата _gentest.pdf
из прилагаемого архива.
Для компиляции потребуются пакеты LaTeX’а ifthen
и calc
. Также желательно установить пакеты nopageno
и indentfirst
, если их нет.
Ниже приведён GitHub Gist того же самого кода, что и в gentest.zip