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