diff options
author | Norbert Preining <preining@logic.at> | 2007-11-17 20:54:36 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-11-17 20:54:36 +0000 |
commit | c16aee7c291e8eb17652a81bae9b5b7174c057cb (patch) | |
tree | 174206313eceff82649c8dbb3c598820a1d81f95 /Master/texmf-dist | |
parent | 56012c4c0dc3ceaff82d5e972f1ba8fce01fe19c (diff) |
new package uebungsblatt (->latexextra)
git-svn-id: svn://tug.org/texlive/trunk@5485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/uebungsblatt/README | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/uebungsblatt/history.txt | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.pdf | bin | 0 -> 233468 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.tex | 235 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.cls | 200 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.sty | 235 |
6 files changed, 694 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/uebungsblatt/README b/Master/texmf-dist/doc/latex/uebungsblatt/README new file mode 100644 index 00000000000..60e4e68f52c --- /dev/null +++ b/Master/texmf-dist/doc/latex/uebungsblatt/README @@ -0,0 +1,9 @@ +LaTeX-Klasse zur Erstellung von Uebungsblaettern +Features: + * schnelles Setzen von Uebungsblaettern oder deren Bearbeitungen + * einfache, benutzerfreundliche Kommandos + * elegante Seitenformatierung + * vollautomatische Nummerierung der Aufgaben und Teilaufgaben + * Nummer des Uebungsblatts wird automatisch aus dem Dateinamen bestimmt + * statische Informationen zur Lehrveranstaltung und den Autoren muessen + nur an einer Stelle angegeben werden diff --git a/Master/texmf-dist/doc/latex/uebungsblatt/history.txt b/Master/texmf-dist/doc/latex/uebungsblatt/history.txt new file mode 100644 index 00000000000..64b523e395f --- /dev/null +++ b/Master/texmf-dist/doc/latex/uebungsblatt/history.txt @@ -0,0 +1,15 @@ +Dokumentklasse 'uebungsblatt' + +History + +2006-10-24 Angabe der Schriftgröße (10pt, 11pt, 12pt) als Klassenoption möglich +2006-10-20 Angabe eines Untertitels möglich +2004-06-12 Headerlänge auf 3 Zeilen festgesetzt +2004-06-10 Übungsblattnummer wird automatisch aus Dateinamen ermittelt, egal an welcher Stelle sie steht +2004-06-08 Referenzen auf Aufgaben und Teilaufgaben ermöglicht +2004-06-06 Teilaufgabennummerierung vereinfacht +2004-05-23 Restrukturierung von Dokumentenklasse und Stylefile +2004-05-22 Fix: Zwischen Aufgabentitel und Aufgabentext kann kein Seitenumbruch mehr erfolgen +2004-05-21 Dokumentklasse uebungsblatt eingeführt +2004-05-11 Nummerierung der Gleichungen ergaenzt +2002-04-18 erstes Release als Package diff --git a/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.pdf b/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.pdf Binary files differnew file mode 100644 index 00000000000..01608dfd4ff --- /dev/null +++ b/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.pdf diff --git a/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.tex b/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.tex new file mode 100644 index 00000000000..765f4df37c1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/uebungsblatt/uebungsblatt-doc.tex @@ -0,0 +1,235 @@ +\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{<kopftext>}{<rumpftext>}/ nutzen. Es setzt den \verb/<kopftext>/ nur im Kopf und den \verb/<rumpftext>/ 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{<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{<Untertitel des Blatts>} +\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{<label>}/ angegeben werden. Dies geschieht am besten in der Datei \filename{lv.tex}. Die Nummer der Aufgabe kann im Label wahlweise als arabische oder römische Zahl oder aber als Buchstabe dargestellt werden. Dazu muss \verb/<label>/ an entsprechender Stelle eines der folgenden Zeichen enthalten, das die Darstellung identifiziert: +\begin{itemize} +\item \verb/1/ für arabische Zahlen +\item \verb/i/ für kleine römische Zahlen +\item \verb/I/ für große römische Zahlen +\item \verb/a/ für Kleinbuchstaben +\item \verb/A/ für Großbuchstaben +\end{itemize} +In der Labeldefinition darf \emph{höchstens eines} dieser Zeichen auftreten. Soll eines dieser Zeichen vorkommen, ohne durch die Aufgabennummer ersetzt zu werden, muss es innerhalb von geschweiften Klammern stehen. Das Standardlabel wird beispielsweise erzeugt durch \verb/\aufgabelabel{{Aufgabe }1}/. + +\subsection{Spezielle Aufgaben} +Manchmal gibt es Aufgaben außerhalb der Nummerierung, \zb Zusatzaufgaben. Für solche Aufgaben muss das Label für jede Aufgabe einzeln angegeben werden. Hierfür bietet die \uebb"=Klasse die Umgebung \verb/aufgabe*/ an. Die Syntax dafür ist +\begin{verbatim} +\begin{aufgabe*}{<aufgabelabel>} +... +\end{aufgabe*} +\end{verbatim} +Eine Zusatzaufgabe würde also gesetzt werden durch +\begin{verbatim} +\begin{aufgabe*}{Zusatzaufgabe} +... +\end{aufgabe*} +\end{verbatim} +\subsection{Aufgaben mit Teilaufgaben} +Aufgaben bestehen oft aus mehreren Teiaufgaben. Auch Teilaufgaben werden von der \uebb"=Dokumentklasse unterstützt. Beide Formen der Aufgabe"=Umgebung haben einen optionalen Parameter. Darin kann der Teilaufgabenlabel angegeben werden: +\begin{verbatim} +\begin{aufgabe}[<teilaufgabelabel>] +\teilaufgabe +... +\teilaufgabe +... +\end{aufgabe} +\end{verbatim} +\bzw +\begin{verbatim} +\begin{aufgabe*}[<teilaufgabelabel>]{<aufgabelabel>} +\teilaufgabe +... +\teilaufgabe +... +\end{aufgabe*} +\end{verbatim} +Auch Teilaufgaben werden automatisch nummeriert. Für \verb/<teilaufgabelabel>/ gelten dieselben Regeln wie für die Aufgabe"=Label (\so). Ein typisches Beispiel ist +\begin{verbatim} +\begin{aufgabe}[a)] +\teilaufgabe +... +\teilaufgabe +... +\end{aufgabe} +\end{verbatim} +Soll eine Aufgabe aus Teilaufgaben bestehen, jedoch Text \emph{vor} der ersten Teilaufgabe enthalten, muss man die Umgebung \verb/teilaufgaben/ verwenden: +\begin{verbatim} +\begin{aufgabe} +<Text vor erster Teilaufgabe> +\begin{teilaufgaben}{<teilaufgabelabel>} +\teilaufgabe +... +\teilaufgabe +... +\end{teilaufgaben} +\end{aufgabe} +\end{verbatim} +Die Umgebung \verb/teilaufgaben/ wird also in die Umgebung \verb/aufgabe/ \bzw die Umgebung \verb/aufgabe*/ eingebettet. Die Nummerierung der Teilaufgaben wird beim Beginn der Umgebung \verb/teilaufgaben/ spezifiziert. + +\subsection{Nummer der ersten Aufgabe} +Bei manchen Lehrveranstaltungen werden die Übungsaufgaben vom Beginn der Veranstaltung bis zum Ende durchnummeriert. Die Nummerierung überschreitet also die Übungsblatt"=Grenzen. \Dh es beginnt nicht jedes Übungsblatt mit Aufgabe 1 sondern setzt die Nummerierung des letzten Blatts fort. So könnte Blatt 1 die Aufgaben 1 bis 4 enthalten, Blatt 2 die Aufgaben 5 bis 7, \usw + +Will man ein Blatt bearbeiten, das mit Aufgabe \verb/n/ beginnt, so gibt man dies an, indem man \emph{vor} \verb/\begin{document}/ den Aufgabenzähler auf den Wert \verb/n/ setzt: +\begin{verbatim} +\documentclass{uebungsblatt} +\setcounter{aufgabe}{<startaufgabe>} +\begin{document} +\begin{aufgabe} +... +\end{aufgabe} +... +\end{document} +\end{verbatim} +Zu beachten ist, dass \verb/\setcounter{aufgabe}{<startaufgabe>}/ unbedingt im Dokumentenkopf, also \emph{vor} \verb/\begin{document}/ stehen muss. + +\subsection{Aufgabereferenzen} +Im Text einer Aufgabe kann man eine beliebige andere Aufgabe referenzieren. Mit dem \LaTeX"=Kommando \verb/\label{<labelname>}/ setzt man innerhalb einer Aufgabe eine Marke. Mit \verb/\ref{<labelname>}/ referenziert man sie an anderer Stelle: +\begin{verbatim} +\begin{aufgabe}\label{komplizierter Beweis}% +... +\end{aufgabe} +... +\begin{aufgabe} +In Aufgabe \ref{komplizierter Beweis} haben wir bewiesen ... +\end{aufgabe} +\end{verbatim} +Dabei wird beim Referenzieren wie üblich \emph{nur} die Aufgabennummer bzw. der Aufgabenbuchstabe referenziert, nicht das gesamte Label. Daher muss man das Wort \qq{Aufgabe} selbst vor die Referenz schreiben. + +Referenziert man eine Teilaufgabe, besteht die Referenz sowohl aus der Nummer der Aufgabe als auch dem Label der Teilaufgabe, \zb \qq{4\,a)}. Von der Aufgabe wird also nur die Nummer, von der Teilaufgabe das gesamte Label übernommen. Denn meist ist das Aufgabe"=Label etwas so langes wie \qq{Aufgabe 4} und das Label der Teilaufgabe nur ein kurzes \qq{a)}. + +Damit auch wirklich die Teilaufgabe referenziert wird und nicht die Aufgabe, muss die Referenzmarke hinter dem Befehl \verb/\teilaufgabe/ stehen: +\begin{verbatim} +\begin{aufgabe}[a)]\label{schoene Aufgabe}% +\teilaufgabe\label{schoene Teilaufgabe}% +... +\end{aufgabe} +\begin{aufgabe} +In Aufgabe \ref{schoene Aufgabe} gibt es eine schöne Teilaufgabe, +nämlich \ref{schoene Teilaufgabe}. +\end{aufgabe} +\end{verbatim} +Dies würde bei entsprechender Nummerierung beispielsweise ergeben: \qq{In Aufgabe 4 gibt es eine schöne Teilaufgabe, nämlich 4\,a).} + +\section{Voraussetzungen} +Um die Dokumentklasse \uebb{} verwenden zu können, müssen die Dateien des Dateien des Bundles \AkkTeX{} benötigt. Sie können heruntergeladen werden unter der Adresse \url{http://www.AkkTeX.org}\ . +\section{Danksagungen} +Vielen Dank allen Helfern in den \TeX"=Newsgroups \url{comp.text.tex} und vor allem \url{de.comp.text.tex}, die mir bei so einigen Plain \TeX"=Kommandos und \LaTeX"=Innereien sehr weitergeholfen haben. + +Vielen Dank an Helmut Kopka, Michel Goossens, Frank Mittelbach, Alexander Samarin und Karsten Günther für ausgezeichnete \LaTeX"=Literatur. + +\section{Lizenz} +Class and Package \uebb{} by Igor Akkerman (c)2000, 2001, 2002, 2003, 2004, 2005, 2006 + +This work may be distributed and/or modified under the +conditions of the \LaTeX{} Project Public License (latest version). + +The latest version of this license can be found at: +\begin{quote} +\url{http://www.latex-project.org/lppl.txt} +\end{quote} + +This work consists of the following files: +\begin{itemize} +\item uebungsblatt.cls +\item uebungsblatt.sty +\end{itemize} +\end{document} diff --git a/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.cls b/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.cls new file mode 100644 index 00000000000..57d8972f7b1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.cls @@ -0,0 +1,200 @@ +%===================================================================================================================================== +% Class uebungsblatt by Igor Akkerman (c)2004,2005,2006 +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License (latest version). +% +% The latest version of this license can be found at +% http://www.latex-project.org/lppl.txt +%===================================================================================================================================== +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{uebungsblatt}[2006/10/24 by Igor Akkerman (c)2004,2005,2006 v1.5.0 Klasse zum Setzen von Uebungsblaettern] +%===================================================================================================================================== + +% Dokumentklassen-Optionen: +% aufgeqno - In Gleichungsnummern soll die Aufgabennummer auftauchen (<Aufgabennummer>.<Gleichungsnummer>) +% fleqn - Gleichungen werden nicht zentriert sondern linksbündig angezeigt +% leqno - Gleichungsnummern werden nicht rechts sondern links von der Gleichung angezeigt +% 10pt - Schriftgröße: 10pt (Standard) +% 11pt - Schriftgröße: 11pt +% 12pt - Schriftgröße: 12pt + +%-------------------------- +% \begin{aufgabe} ... \end{aufgabe} +% Aufgabe ohne Teilaufgaben +%-------------------------- +% \begin{aufgabe}[<teilaufgabenlabelmuster>] ... \end{aufgabe} +% Aufgabe mit Teilaufgaben +% +% <Teilaufgabennummerierung> wie im Paket counterlabelpattern definiert +%-------------------------- + +%-------------------------- +% \begin{aufgabe*}{<aufgabentitel>} ... \end{aufgabe*} +% Aufgabe mit Titel <aufgabentitel> ohne Teilaufgaben +%-------------------------- +% \begin{aufgabe*}[<teilaufgabenlabelmuster>]{<aufgabentitel>} ... \end{aufgabe*} +% Aufgabe mit Titel <aufgabentitel> mit Teilaufgaben +% +% <Teilaufgabennummerierung> kann beliebige Werte enthalten. +%-------------------------- +% Der Aufgabenzähler wird NICHT erhöht! +%-------------------------- + +%-------------------------- +% \begin{teilaufgaben}{<teilaufgabenlabelmuster>} ... \end{teilaufgaben} +% Liste der Teilaufgaben +%-------------------------- + +%-------------------------- +% \teilaufgabe +% beginnt eine neue Teilaufgabe +%-------------------------- + +%-------------------------- +% \begin{teilteilaufgaben}{<teilteilaufgabenlabelmuster>} ... \end{teilteilaufgaben} +% Liste der Teilteilaufgaben +%-------------------------- + +%-------------------------- +% \teilteilaufgabe +% beginnt eine neue Teilteilaufgabe +%-------------------------- + +% ------------------------------- +% Lehrveranstaltungsinformationen +% ------------------------------- +% Um Lehrveranstaltungsinformationen, die sich von Blatt zu Blatt derselben +% Lehrveranstaltung nicht verändern, nicht in jede Datei eintragen zu müssen +% Es wird automatisch versucht, die Datei "lv.tex" zu laden, die Angaben zur +% Lehrveranstaltung enthalten kann (Name der LV, Namen der Gruppenmitglieder usw.) +% Die Datei wird zuerst im aktuellen Verzeichnis gesucht. Wird sie dort nicht +% gefunden, wird sie im uebergeordneten Verzeichnis gesucht. Danach wird die +% Suche abgebrochen. +%-------------------------- + +%-------------------------- +% \lvname{<lvname>} +% Setzt den Lehrveranstaltungsnamen auf <lname>. +% Der LV-Name erscheint links oben im Header so wie er hier definiert wird. +% Zum Zeilenumbruch wird \\ verwendet. +% Default: {} +%-------------------------- + +%-------------------------- +% \blatttitel{<titel>} +% Setzt den Blatttitel auf <titel>. +% Zum Zeilenumbruch wird \\ verwendet. +% Der Titel wird im Kopf und bei Beginn des Übungsblatts verwendet. +% Optional kann im Text '\ifinhead{<danntext>}{<sonsttext>}' eingefügt werden, +% was <danntext> lediglich im Kopf an der Stelle erzeugt, ansonsten wird der <sonsttext> erzeugt +% Default: Bearbeitung des \theblatt.~Übungsblatts\ifinhead{\\}{} +%-------------------------- + +%-------------------------- +% \blattnummer{<nummer>} +% Setzt den Wert des Zählers blatt auf <nummer>. +%-------------------------- + +%-------------------------- +% \ifinhead{<danntext>}{<sonsttext>} +% <danntext> im inhead-Modus; <sonsttext> sonst +%-------------------------- + +%-------------------------- +% \autoren{<autoren>} +% Setzt die Namen der Autoren auf <autoren>. +% Die Autoren erscheinen rechts oben im Header so wie sie hier definiert werden. +% Default: {} +%-------------------------- + +%-------------------------- +% \aufgabelabel{<labelmuster>} +% Setzt das Label der Aufgaben auf <labelmuster>. +% <labelmuster> ist ein Muster wie definiert im Paket counterlabelpattern. +%-------------------------- + +% ----------------- +% definierte Zähler +% ----------------- +% uebungsblatt : Nummer des Übungsblatts +% Die Nummer wird automatisch bestimmt aus dem Dateinamen der Hauptdatei. +% Dazu muss der Dateiname mit der Blattnummer beginnen. +% (Vorsicht bei Leerzeichen: Der Dateiname könnte mit Anführungszeichen beginnen.) +% aufgabe : Nummer der aktuellen Aufgabe +% teilaufgabe : Nummer der aktuellen Teilaufgabe +% (\theteilaufgabe liefert die korrekte Darstellung) + +%===================================================================================================================================== + +% Initialisierungsteil +\RequirePackage{ifthen} +\newboolean{aufgeqno} + +\AtBeginDocument{% + \chead{\@inhead{\textbf{\@blatttitel}}}% + \addtocounter{aufgabe}{-1}% Aufgabennummer zurücksetzen + \vspace*{-\baselineskip}% + \par% + \hspace*\fill\begin{Large}\textbf{\@blatttitel}\end{Large}\hspace*\fill% + \ifset{\@blattuntertitel}{% + \\[.5\baselineskip]% + \hspace*\fill\begin{large}\textbf{\@blattuntertitel}\end{large}\hspace*\fill% + }% + \par% +} + +\AtEndDocument{% + \label{lastpage}% +} + +% Deklaration von Optionen +\DeclareOption {aufgeqno} {\setboolean{aufgeqno}{true}}% +\DeclareOption {10pt} {\PassOptionsToClass{10pt}{akktecdoc}}% +\DeclareOption {11pt} {\PassOptionsToClass{11pt}{akktecdoc}}% +\DeclareOption {12pt} {\PassOptionsToClass{12pt}{akktecdoc}}% + +% Ausfuehrung von Optionen +\ProcessOptions + +% Laden von Paketen +\LoadClass[widepage,longpage]{akktecdoc} +\RequirePackage{akkgerman} +\RequirePackage{uebungsblatt} +\ifthenelse{\boolean{aufgeqno}} {% + \RequirePackage{amsmath}% + \numberwithin{equation}{aufgabe}% Nummerierung der Gleichungen: (<Nr. der Aufgabe>.<Nr. der Gleichung>)% +}{} + +% ----------------- +% Initialisierungen +% ----------------- + +% Seiteneinstellungen +\pagestyle{fancy} +\setlength \headheight {3\baselineskip} % max. Anzahl der Zeilen im Header: 3 +\setlength \headsep {\baselineskip} % Abstand zum Text +\cfoot{\thepage/\pageref{lastpage}} % im Footer: Seitenzahl + +% Defaultwerte +\blatttitel{Bearbeitung des \theblatt.~Übungsblatts\ifinhead{\\}{}} +\aufgabelabel{{Aufgabe }1} + +% Bestimmen der Übungsblatt-Nummer +\extractnumber \jobname {blatt} +\typeout{[uebungsblatt] Dateiname: \jobname} +\typeout{[uebungsblatt] Uebungsblattnummer: \theblatt} + +% Laden der Datei lv.tex +\typeout{[uebungsblatt] Suche Datei 'lv.tex'} +\InputIfFileExists {lv.tex} { + \typeout{[uebungsblatt] Datei 'lv.tex' in aktuellem Verzeichnis gefunden. Datei wird geladen.} +} +{ + \InputIfFileExists {../lv.tex} { + \typeout{[uebungsblatt] Datei 'lv.tex' in übergeordnetem Verzeichnis gefunden. Datei wird geladen.} + } + { + \typeout{[uebungsblatt] Datei 'lv.tex' nicht gefunden.} + } +} diff --git a/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.sty b/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.sty new file mode 100644 index 00000000000..e645d1d9b92 --- /dev/null +++ b/Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.sty @@ -0,0 +1,235 @@ +%================================================================================================================================================== +% Package uebungsblatt by Igor Akkerman (c)2000,2001,2002,2003,2004,2005,2006 +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License (latest version). +% +% The latest version of this license can be found at +% http://www.latex-project.org/lppl.txt +%================================================================================================================================================== +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{uebungsblatt}[2006/10/24 by Igor Akkerman (c)2000,2001,2002,2003,2004,2005,2006 v3.2.1 Package zum Setzen von Uebungsblaettern] +%================================================================================================================================================== + +\RequirePackage[latin1]{inputenc} +\RequirePackage{fancyhdr} +\RequirePackage{akkcounterlabelpattern} +%----------------------------------------------------------------------------- + +\makeatletter + +%-------------------------- +% blatt (Zaehler) +% Nummer des Uebungsblatts +% (geht nicht als Befehl, da der Wert sonst in der Anzeige nicht automatisch aktualisiert wird.) +%-------------------------- +% \blattnummer{<Blattnummer>} +% Setzt den Wert des Zählers blatt auf <Blattnummer> +%-------------------------- +\newcounter{blatt} + +\newcommand \blattnummer[1] {% + \setcounter{uebungsblatt@blattnummer}{#1}% +} +%-------------------------- + +%-------------------------- +% aufgabe (Zaehler) +% Nummer der aktuellen Aufgabe +%-------------------------- +% \aufgabelabel{<labelmuster>} +% Setzt das Label der Aufgaben auf <labelmuster>. +% <labelmuster> ist ein Muster wie definiert im Paket counterlabelpattern. +%-------------------------- +\newcounter{aufgabe} +\setcounter{aufgabe}{1} % Nummer der ersten Aufgabe standardmäßig +\newcommand \aufgabelabel[1] {% + \createcounterlabel {aufgabe} {@aufgabelabel} {#1}% +} +%-------------------------- + +%-------------------------- +% teilaufgabe (Zaehler) +% Nummer der aktuellen Teilaufgabe +%-------------------------- +\newcounter{teilaufgabe} +%-------------------------- + +%-------------------------- +% teilteilaufgabe (Zaehler) +% Nummer der aktuellen Teilaufgabe +%-------------------------- +\newcounter{teilteilaufgabe} +%-------------------------- + +%-------------------------- +% @inhead (boolean) +% true, wenn gerade im Übungsblatt-Kopf gearbeitet wird (inhead-Modus); false sonst +%-------------------------- +% \@inhead{<text>} +% aktiviert den inhead-Modus für <text>, darf nur im Kopf verwendet werden +%-------------------------- +% \ifinhead{<danntext>}{<sonsttext>} +% <danntext> im inhead-Modus; <sonsttext> sonst +%-------------------------- +\newboolean{@inhead} +\newcommand \@inhead[1] {\setboolean{@inhead}{true}#1\setboolean{@inhead}{false}} +\newcommand \ifinhead[2] {\ifthenelse{\boolean{@inhead}}{#1}{#2}} +%-------------------------- + +%-------------------------- +% \@blatttitel +% Liefert den aktuellen Titel des Übungsblatts. +%-------------------------- +% \blatttitel{<titel>} +% Setzt den Blatttitel auf <titel>. +% Der Titel wird im Kopf und bei Beginn des Übungsblatts verwendet. +% Optional kann im Text '\ifinhead{<danntext>}{<sonsttext>}' eingefügt werden, +% was <danntext> lediglich im Kopf an der Stelle erzeugt, ansonsten wird der <sonsttext> erzeugt +% Zum Zeilenumbruch im Kopf wird \\ verwendet. +% Default: Bearbeitung des \theblatt.~Übungsblatts\ifinhead{\\}{} +%-------------------------- +\newcommand \@blatttitel {}% +\newcommand \blatttitel[1] {% + \renewcommand \@blatttitel {#1}% +} +%-------------------------- + +%-------------------------- +% \@blattuntertitel +% Liefert den aktuellen Untertitel des Übungsblatts. +%-------------------------- +% \blattuntertitel{<untertitel>} +% Setzt den Blattuntertitel auf <untertitel>. +% Default: <kein Titel> +%-------------------------- +\newcommand \@blattuntertitel {}% +\newcommand \blattuntertitel[1] {% + \renewcommand \@blattuntertitel {#1}% +} +%-------------------------- + + +%-------------------------- +% \lvname{<lvname>} +% Setzt den Lehrveranstaltungsnamen auf <lname> +% Der LV-Name erscheint links oben im Header so wie er hier definiert wird) +%-------------------------- +\newcommand \lvname[1] {% + \lhead{#1}% +} +%-------------------------- + +%-------------------------- +% \autoren{<autoren>} +% Setzt die Namen der Autoren auf <autoren> +% Die Autoren erscheinen rechts oben im Header so wie sie hier definiert werden) +%-------------------------- +\newcommand \autoren[1] {% + \rhead{#1}% +} +%-------------------------- + +%-------------------------- +% \begin{@aufgabe} ... \end{@aufgabe} +% Aufgabenskelett ohne Teilaufgaben +%-------------------------- +% \begin{aufgabe}[<teilaufgabenlabelmuster>] ... \end{aufgabe} +% Aufgabenskelett mit Teilaufgaben +%-------------------------- +\newenvironment{@aufgabe}[1][] {% + \par% + \textbf{\@aufgabelabel}% + \ifthenelse {\equal{#1}{}} {% + % ohne Teilaufgaben + \setboolean{@teilaufgaben}{false}% + \\*[\parskip]% + }{% + % mit Teilaufgaben + \setboolean{@teilaufgaben}{true}% + \begin{teilaufgaben}{#1}% + }% +}% +{% + \ifthenelse{\boolean{@teilaufgaben}}{\end{teilaufgaben}}{}% + \par% + \vspace{0.5\baselineskip plus 2pt minus 1pt}% +} + +%-------------------------- +% \begin{aufgabe} ... \end{aufgabe} +% Aufgabe mit Standardlabel ohne Teilaufgaben +%-------------------------- +% \begin{aufgabe}[<teilaufgabenlabelmuster>] ... \end{aufgabe} +% Aufgabe mit Standardlabel und mit Teilaufgaben +%-------------------------- +\newenvironment{aufgabe}[1][] {% + \refstepcounter{aufgabe}% + \edef \@currentlabel {\theaufgabe}% + \begin{@aufgabe}[#1]% +}{% + \end{@aufgabe}% +} +%-------------------------- + +%-------------------------- +% \begin{aufgabe*}{<aufgabelabel>} ... \end{aufgabe*} +% Aufgabe mit Label <aufgabelabel> ohne Teilaufgaben +%-------------------------- +% \begin{aufgabe*}[<teilaufgabenlabelmuster>]{<aufgabelabel>} ... \end{aufgabe*} +% Aufgabe mit Label <aufgabelabel> mit Teilaufgaben +% +% <Teilaufgabennummerierung> kann beliebige Werte enthalten. +%-------------------------- +% Der Aufgabenzähler wird NICHT erhöht! +%-------------------------- +\newenvironment{aufgabe*}[2][] {% + \let \orig@aufgabelabel \@aufgabelabel% + \renewcommand \@aufgabelabel {#2}% + \begin{@aufgabe}[#1]% +}{% + \end{@aufgabe}% + \let \@aufgabelabel \orig@aufgabelabel% +} +%-------------------------- + +%-------------------------- +% \teilaufgabe +% Teilaufgabe +%-------------------------- +\newcommand \teilaufgabe {% + \item% + \edef \@currentlabel {\theaufgabe\,\@teilaufgabelabel}% +} +%-------------------------- + +%-------------------------- +% @teilaufgaben (boolean) +% true, wenn die aktuelle Aufgabe Teilaufgaben enthält; false sonst +%-------------------------- +% \begin{teilaufgaben}{<teilaufgabenlabelmuster>} ... \end{teilaufgaben} +% Liste der Teilaufgaben +%-------------------------- +\newboolean{@teilaufgaben} +\newenvironment{teilaufgaben}[1] {% + \createcounterlabel {teilaufgabe} {@teilaufgabelabel} {#1}% + \begin{list}{\textbf{\@teilaufgabelabel}}{% + % -- 8 displays larger than other numbers in all modes (arabic,roman,...) + \setcounter {teilaufgabe} 8% + \settowidth \labelwidth {\textbf{\@teilaufgabelabel}}% + \setlength \leftmargin \labelwidth% + \addtolength \leftmargin \labelsep% + \setlength \topsep {0pt}% + \setlength \itemsep \akk@default@parskip% + \addtolength \itemsep {-\parsep}% + \usecounter {teilaufgabe}% + }% +}{% + \end{list}% +} +%-------------------------- + +\newcommand \aufgaberef[1] {\ref{#1}} +\newcommand \teilaufgaberef[1] {\ref{#1}} + +\makeatother |