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/tex/latex/uebungsblatt/uebungsblatt.sty | |
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/tex/latex/uebungsblatt/uebungsblatt.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/uebungsblatt/uebungsblatt.sty | 235 |
1 files changed, 235 insertions, 0 deletions
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 |