
Ich schreibe eine Prüfung für meine Studenten und habe drei Befehle zum Einfügen von Leerzeichen definiert, die \dotfill
es ihnen ermöglichen, ihre Antworten zu schreiben: \rep
, \replarge
, \repLarge
für kurze und lange Antworten:
\newcommand{\rep}{\noindent \dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\newcommand{\repshort}\rep \rep
\newcommand{\repLarge}\rep \rep \rep \rep
Meine Fragen sind also:
- gibt es eine Möglichkeit, diese Befehle zu verbessern?
- wie erreiche ich beim Kompilieren zwei PDF-Versionen: Eine mit den durch die Befehle erzeugten Leerzeichen und eine ohne die Leerzeichen?
Antwort1
Hier ist eine schnelle und einfache Lösung für die zweite Frage und ein Link zu fortgeschritteneren Lösungen (die Kommentare oben enthalten auch nützliche Links für beide Fragen):
a) Erzeugen Sie zwei Hauptdateien, in denen Sie (1) die Befehle mit den Leerzeichen angeben und (2) dieselben Befehle als leere Befehle angeben (Sie können auch einfach etwas anhängen \renewcommand{\rep}{}
und dies aus- oder einkommentieren).
ODER
b) Verwenden Sie Parameter für Ihr Dokument und verwenden Sie ein Makefile. Sehen Sie sich die Antworten aufÜbergeben von Parametern an ein Dokumentzur Inspiration. Hier ist ein Beispiel, wie ein solches Makefile aussehen könnte und wie Ihre .tex-Datei es nutzen kann:
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}