%================================================================================================================================================== % 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{} % Setzt den Wert des Zählers blatt auf %-------------------------- \newcounter{blatt} \newcommand \blattnummer[1] {% \setcounter{uebungsblatt@blattnummer}{#1}% } %-------------------------- %-------------------------- % aufgabe (Zaehler) % Nummer der aktuellen Aufgabe %-------------------------- % \aufgabelabel{} % Setzt das Label der Aufgaben auf . % 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{} % aktiviert den inhead-Modus für , darf nur im Kopf verwendet werden %-------------------------- % \ifinhead{}{} % im inhead-Modus; 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{} % Setzt den Blatttitel auf . % Der Titel wird im Kopf und bei Beginn des Übungsblatts verwendet. % Optional kann im Text '\ifinhead{}{}' eingefügt werden, % was lediglich im Kopf an der Stelle erzeugt, ansonsten wird der 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{} % Setzt den Blattuntertitel auf . % Default: %-------------------------- \newcommand \@blattuntertitel {}% \newcommand \blattuntertitel[1] {% \renewcommand \@blattuntertitel {#1}% } %-------------------------- %-------------------------- % \lvname{} % Setzt den Lehrveranstaltungsnamen auf % Der LV-Name erscheint links oben im Header so wie er hier definiert wird) %-------------------------- \newcommand \lvname[1] {% \lhead{#1}% } %-------------------------- %-------------------------- % \autoren{} % Setzt die Namen der Autoren auf % 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}[] ... \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}[] ... \end{aufgabe} % Aufgabe mit Standardlabel und mit Teilaufgaben %-------------------------- \newenvironment{aufgabe}[1][] {% \refstepcounter{aufgabe}% \edef \@currentlabel {\theaufgabe}% \begin{@aufgabe}[#1]% }{% \end{@aufgabe}% } %-------------------------- %-------------------------- % \begin{aufgabe*}{} ... \end{aufgabe*} % Aufgabe mit Label ohne Teilaufgaben %-------------------------- % \begin{aufgabe*}[]{} ... \end{aufgabe*} % Aufgabe mit Label mit Teilaufgaben % % 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}{} ... \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