summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/uebungsblatt/source
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/uebungsblatt/source
Initial commit
Diffstat (limited to 'macros/latex/contrib/uebungsblatt/source')
-rw-r--r--macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.cls200
-rw-r--r--macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.sty235
2 files changed, 435 insertions, 0 deletions
diff --git a/macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.cls b/macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.cls
new file mode 100644
index 0000000000..57d8972f7b
--- /dev/null
+++ b/macros/latex/contrib/uebungsblatt/source/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/macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.sty b/macros/latex/contrib/uebungsblatt/source/uebungsblatt/uebungsblatt.sty
new file mode 100644
index 0000000000..e645d1d9b9
--- /dev/null
+++ b/macros/latex/contrib/uebungsblatt/source/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