
Я пишу экзамен для своих студентов и определил 3 команды для вставки пробелов, \dotfill
позволяющих им писать свои ответы: \rep
, \replarge
, \repLarge
для коротких и длинных ответов:
\newcommand{\rep}{\noindent \dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\newcommand{\repshort}\rep \rep
\newcommand{\repLarge}\rep \rep \rep \rep
Итак, мои вопросы:
- есть ли способ улучшить эти команды?
- как мне создать две версии PDF при компиляции: одну с пробелами, созданными с помощью команд, и другую без пробелов?
решение1
Вот одно быстрое и грубое решение второго вопроса и ссылка на более продвинутые решения (комментарии выше также содержат полезные ссылки для обоих вопросов):
а) Создайте два основных файла, в которых вы (1) указываете команды с пробелами и (2) указываете те же команды как пустые команды (вы также можете просто добавить что-то вроде \renewcommand{\rep}{}
и закомментировать это).
ИЛИ
б) Используйте параметры для вашего документа и используйте Makefile. Посмотрите на ответы наПередача параметров в документдля вдохновения. Вот пример того, как может выглядеть такой Makefile и как ваш .tex-файл может его использовать:
Makefile:
default: Exercise.pdf Solution.pdf
Exercise.pdf: *.tex
-rm Exercise.pdf
pdflatex -file-line-error --jobname=Exercise '\def\isexercise{1} \input{main.tex}'
pdflatex -file-line-error --jobname=Exercise '\def\isexercise{1} \input{main.tex}'
Solution.pdf: *.tex
-rm Solution.pdf
pdflatex -file-line-error --jobname=Solution '\input{main.tex}'
pdflatex -file-line-error --jobname=Solution '\input{main.tex}'
main.tex:
\documentclass{article}
\newcommand{\rep}{}
\ifdefined\isexercise
\renewcommand{\rep}{
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\fi
\begin{document}
Exercise 1: \rep
\end{document}