\documentclass{akktecdoc} \usepackage{akkgerman} %\makeatletter %\show\@verbatim \newcommand \AkkTeX {\textsc{A\hspace{-0.2em}k\hspace{-0.2em}k}\hspace{-0.2em}\TeX} \newcommand \uebb {\textsf{uebungsblatt}} \newcommand \filename[1] {\textit{#1}} \renewcommand \bzw \tbzw \newcommand \url[1] {\textsl{#1}} \hyphenation{Re-dun-danz} \title{Übungsblätter mit \LaTeX} \author{Igor Akkerman} \begin{document} \maketitle \begin{abstract} \noindent Die Dokumentklasse \uebb{} ermöglicht es, auf einfache Art und Weise elegante Übungsblätter oder deren Bearbeitungen anzufertigen. Die Seitenformatierung sowie die Nummerierung von Aufgaben und Teilaufgaben erfolgen vollautomatisch. Die Kommandos dafür sind sehr benutzerfreundlich gestaltet. Bei Anfertigung mehrerer Übungsblätter wird die Übungsblattnummer automatisch aus dem Dateinamen bestimmt, und all jene Informationen, die für alle Blätter gelten sollen (wie LV"=Name und Autorennamen) müssen lediglich an einer Stelle angegeben werden. %Wer diese Klasse benutzt, kann sich somit voll und ganz dem Inhalt widmen. \end{abstract} \section{Einleitung} Wesentlicher Bestandteil eines technischen Studienfachs ist, neben den Vorlesungen, der Übungsbetrieb. Dabei müssen die Studenten meist jede oder jede zweite Woche ein Übungsblatt bearbeiten. Viele möchten ihre Abgaben gerne am Rechner erstellen, stoßen aber bei der Auwahl des Programms auf Schwierigkeiten. Die meisten Textverarbeitungen reichen gerade für Lösungen aus, die aus purem Text bestehen. Oft aber sollen komplexere Tabellen, Grafiken oder mathematische Formeln enthalten sein. Speziell letztere lassen sich mit WYSIWYG"=Systemen nur äußerst schwer erzeugen, und die Optik lässt meist zu wünschen übrig. Außerdem arbeiten Studenten in der Hochschule nicht selten auf UNIX"=Systemen, die das von zu Hause mitgebrachte Dateiformat nicht unterstützen oder zumindest nicht vollständig importieren können. Die digitalen Übungsblatt"=Dokumente sollten also auch noch portabel sein. Als einzige Alternative bietet sich \LaTeX{} an. Doch nicht nur \LaTeX"=Neulinge wünschen sich oft, sich nicht mit dem lästigen Overhead für die Formatierung des Seitenlayouts und der Aufgaben beschäftigen zu müssen. Ebenso nerven die immer wiederkehrenden konstanten Daten auf jedem Blatt: \begin{itemize} \item Titel des Übungsblatts mit Blatt"=Nummer \item Name der Lehrveranstaltung \item Autoren (meist die Gruppenmitglieder) \item Nummerierung von Aufgaben und Teilaufgaben \end{itemize} All diese Daten müssen bei jedem Übungsblatt neu angegeben werden. Meist geschieht das mittels Copy \& Paste. Dieses Verfahren ist mühsam und erzeugt Redundanz, da die Daten ja in jedem Übungsblatt wieder erscheinen müssen. Gelegentlich taucht so schon einmal die falsche Übungsblatt"=Nummer in der Überschrift auf. Außerdem nehmen die Angaben häufig so viel Platz im \LaTeX"=Header ein, dass der eigentliche Inhalt weit nach unten rutscht. Die Dokumentklasse \uebb{} beseitigt diese Probleme. Zum einen stellt sie eine vollständige Seitenformatierung zur Verfügung und lässt den Benutzer davon abstrahieren durch spezielle, Übungsblatt"=spezifische Kommandos. Zum anderen lassen sich alle statischen Informationen wie der Name der Lehrveranstaltung und die Namen der Autoren in einer eigenen Datei ablegen. Sie wird von der Dokumentklasse automatisch zum Dokument hinzugeladen. Dadurch wird die Benutzung erleichtert, Redundanz minimiert und die Übersicht vergrößert. Selbst für \LaTeX"=Neulinge wird damit das Erstellen von schön formatierten Übungsblättern zum Kinderspiel. \section{Vorbereitungen} Der Arbeitsablauf zum Erstellen von Übungsblättern mit der Dokumentklasse \verb/uebungsblatt/ wird anhand eines Beispiels skizziert. Angenommen, es sollen Übungsblätter für einen \LaTeX"=Kurs im Sommersemester 2004 bearbeitet werden, und zwar von Donald E. Knuth, Leslie Lamport und Frank Mittelbach. \subsection{Anlegen der Ordnerstruktur} Als erstes wird ein Oberverzeichnis \filename{latexkurs} für die Übungsblätter angelegt. In unserem Beispiel soll jedes Übungsblatt ein eigenes Unterverzeichnis (\filename{1.blatt}, \filename{2.blatt} \usw) von \filename{latexkurs} haben. Das muss zwar nicht sein, erhöht aber deutlich die Übersicht wegen der vielen vom \filename{latex}"=Kommando erzeugten Dateien. \subsection{Erstellen der Datei für statische Informationen} Im Oberverzeichnis \filename{latexkurs} wird die Datei \filename{lv.tex} angelegt. Sie soll die statischen Informationen zu den Übungsblättern enthalten. Darin werden definiert der Name der Lehrveranstaltung, die Namen der Autoren und der Titel der Übungsblätter: \begin{verbatim} \lvname{\LaTeX-Kurs\\Sommersemester 2004\\} \autoren{Donald E. Knuth\\Leslie Lamport\\Frank Mittelbach} \blatttitel{Bearbeitung von Übungsblatt \theblatt\ifinhead{\\}{}} \end{verbatim} Diese Informationen tauchen im Kopf jeder Seite jedes Übungsblatts auf. Der Name der Lehrveranstaltung erscheint links oben, die Autoren rechts oben und der Titel in der Mitte. Der Kopf darf maximal drei Zeilen enthalten. In unserem Beispiel soll er auch genau drei Zeilen enthalten, daher für jeden Zeilenumbruch ein \verb/\\/. Die Kopfzeilen werden so tief wie möglich gesetzt, somit braucht man auch ein \verb/\\/ für untere Leerzeilen. Der Titel erscheint auch als große Überschrift auf der ersten Seite des Übungsblatts. Um zu unterscheiden, ob gerade auf der ersten Seite oder im Kopf gesetzt wird, kann man das Kommando \verb/\ifinhead{}{}/ nutzen. Es setzt den \verb// nur im Kopf und den \verb// nur auf der ersten Seite im Rumpf. Im Titel kann auch das Kommando \verb/\theblatt/ vorkommen, das die Nummer des aktuellen Übungsblatts enthält. Sie kann entweder automatisch ermittelt werden oder in jedem Übungsblatt manuell angegeben werden (\su). Die Datei \filename{lv.tex} wird bei jedem Übungsblatt automatisch vollständig eingebunden und kann daher auch Makrodefinitionen enthalten, die in mehreren oder allen Übungsblättern gelten sollen. Das ist häufig sinnvoll für Makros, die spezifisch für die Lehrveranstaltung sind und immer wieder auftauchen. Dadurch braucht man sie nicht im Kopf jedes Übungsblatts einzeln zu definieren. Die Datei für statische Informationen \emph{muss} den Namen \filename{lv.tex} tragen. Sie kann sich entweder im selben Verzeichnis befinden wie die Dokumentdatei selbst oder aber im übergeordneten Verzeichnis. \section{Das Übungsblatt} Die Dokumentdatei ist jene Datei, die den Übungsblatt"=Inhalt enthält und deren Name an das \filename{latex}"=Programm übergeben wird. \subsection{Dateistruktur} Die Dokumentklasse wurde so entworfen, dass die Dokumentdatei kaum Overhead enthält: \begin{verbatim} \documentclass{uebungsblatt} \begin{document} ... \end{document} \end{verbatim} Dies erzeugt ein Übungsblatt mit dem Inhalt, der innerhalb der \verb/document/"=Umgebung steht. Der Inhalt ist beliebiger \LaTeX"=Code. \subsection{Automatische Blattnummerierung} Wenn der Dateiname die Übungsblatt"=Nummer enthält (\zb \filename{blatt01.tex}), wird diese automatisch in den Zähler \verb/blatt/ übernommen. Enthält der Titel wie in unserem Beispiel das Kommando \verb/\theblatt/, erscheint in jedem Übungsblatt automatisch die korrekte Nummer und man braucht sie nicht bei jedem Übungsblatt neu einzutragen. Führende Nullen werden ignoriert. Kommt die Nummer des Übungsblatts nicht im Dateinamen vor, kann man sie in jedem Übungsblatt mit \verb/blattnummer{}/ auch einzeln setzen. \subsection{Untertitel} Jedes Übungsblatt kann einen eigenen Untertitel enthalten, beispielsweise das Thema des aktuellen Blatts. Der Untertitel erscheint in kleinerer Schrift unter dem Titel des Blatts. Der Untertitel wird in der Präambel einer Übungsblatt"=Datei wie folgt definiert: \begin{verbatim} \blattuntertitel{} \end{verbatim} \section{Aufgaben} \subsection{Umgebung für Aufgaben} Für Aufgaben stellt die Dokumentklasse \uebb{} die Umgebung \verb/aufgabe/ zur Verfügung. Die Syntax ist \begin{verbatim} \begin{aufgabe} ... \end{aufgabe} \end{verbatim} \subsection{Labels der Aufgaben} Jede Aufgabe wird mit dem Label \textbf{Aufgabe x} betitelt, wobei x die Nummer der Aufgabe ist. Aufgaben werden automatisch durchnummeriert. Sollen die Aufgaben ein anderes Label bekommen, so kann dies mithilfe des Kommandos \verb/\aufgabelabel{