From d73c922e3d1cc0085aab0488d1b8d2c7ff4f09d9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 22 Aug 2018 21:20:03 +0000 Subject: restore schule, tikz symbols and all git-svn-id: svn://tug.org/texlive/trunk@48453 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/schule/schule.sty | 304 ++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/schule/schule.sty (limited to 'Master/texmf-dist/tex/latex/schule/schule.sty') diff --git a/Master/texmf-dist/tex/latex/schule/schule.sty b/Master/texmf-dist/tex/latex/schule/schule.sty new file mode 100644 index 00000000000..151249576d4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/schule/schule.sty @@ -0,0 +1,304 @@ +\NeedsTeXFormat{LaTeX2e}[2011/11/11] +\ProvidesPackage{schule}[2018/08/12 v0.8 % + Kommandos fuer die Schule] + + +% TODO: Seitenzahlen in Lösungen und EWH beginnen bei 1. Dies führt +% zu Warnungen beim Übersetzen, da pdfTeX nun keine eindeutigen Anker +% mehr setzen kann. Lösung: Eigene Counter einführen. Problem ist +% allerdings bisher kosmetischer Natur. + +% ******************************************************************** +% * Paketoptionen * +% ******************************************************************** + +% Abhängigkeiten +% ******************************************************************** +\RequirePackage{pgfopts} +\RequirePackage{xifthen} + +% Boolesche Optionen +% ******************************************************************** +%\newboolean{schule@boolwert} +\newboolean{schule@debug} + +% Standardwerte +% ******************************************************************** +%\newcommand{\schule@wert}{Standard} +\newcommand{\schule@typ}{schuleALT} % Für Kompatibilitätsmoduss +\newcommand{\schule@fach}{ohne} % Keine Fachspezifika +\newcommand{\schule@weitereFaecher}{} +\newcommand{\schule@module}{} +\newcommand{\schule@sprache}{} + +% Definition der Paketoptionen +% ******************************************************************** +\pgfkeys{ + /schule/.cd, + fach/.store in=\schule@fach, + weitereFaecher/.store in=\schule@weitereFaecher, + module/.store in=\schule@module, + typ/.store in=\schule@typ, + sprache/.store in=\schule@sprache, + debug/.value forbidden, + debug/.code=\setboolean{schule@debug}{true}, + .unknown/.code={}, % Unbekannte Optionen ignorieren. +} + +% Frühe Paketoptionen verarbeiten (etwa die zu ladenden Module und den +% Typ des Dokuments) +% ******************************************************************** +\ProcessPgfPackageOptions{/schule} + + +% ******************************************************************** +% * Basisfunktionen und deren Abhängigkeiten * +% ******************************************************************** + +% Fehlerbehandlung und -ausgabe +% ******************************************************************** +\newcommand{\swarnung}[1]{\PackageWarning{schule}{#1}} +\newcommand{\sfehler}[1]{\PackageError{schule}{#1}} +\newcommand{\sinfo}[1]{\PackageInfo{schule}{#1}} + +% Debugvarianten +\newcommand{\sdwarnung}[1]{ + \ifthenelse{\boolean{schule@debug}}{ + \swarnung{#1} + }{ + % stillschweigend ignorieren + } +} +\newcommand{\sdinfo}[1]{ + \ifthenelse{\boolean{schule@debug}}{ + \sinfo{#1} + }{ + % stillschweigend ignorieren + } +} + + +% unschädliche Warnungen im Normalbetrieb unterdrücken +\ifthenelse{\boolean{schule@debug}}{}{ + \usepackage{silence} + + % Kompatiblität von ctable zu TikZ + \WarningFilter{ctable}{Transp} +} + +% Laden von Dokumenttypen +% ******************************************************************** +% Laden der jeweiligen Dokumenttyp-Definition. Falls keine gefunden +% wurde und das Paket nicht eingebettet verwendet wird, wird die +% Definition für Arbeitsblätter geladen. + +% \schule@typDateiLaden{Dokumenttyp}{Abschnitt} +\newcommand{\schule@typDateiLaden}[2]{ + \ifthenelse{\equal{\schule@typ}{ohne}}{ + \sdinfo{Eingebetteter Modus. Es wird kein Dokumenttyp geladen!} + }{ + \IfFileExists{Dokumenttypen/#1/#2.tex}{ + % Wenn die Datei existiert + \input{Dokumenttypen/#1/#2.tex} + \sdinfo{Dokumenttyp #1/#2 geladen!} + }{ + % Wenn die Datei nicht existiert, lade Arbeitsblatt. + \sdwarnung{Dokumenttyp #1/#2 nicht gefunden, % + lade Arbeitsblatt!} + \IfFileExists{Dokumenttypen/ab/#2.tex}{ + % Wenn die Datei existiert + \input{Dokumenttypen/ab/#2.tex} + \sdinfo{Dokumenttyp ab/#2 geladen!} + }{ + % Wenn die Datei nicht existiert, lade Arbeitsblatt. + \sdwarnung{Dokumenttyp ab/#2 nicht gefunden!} + } + } + } +} + +% Modullader +% ******************************************************************** +% Um Kollisionen zu vermeiden muss gespeichert werden, ob eine Datei +% bereits geladen wurde. So können Module auch mehrfach angegeben +% und von anderen Modulen verwendet werden. + +% \schule@modulDateiLaden{Kategorie}{Modulname}{Abschnitt} +\newcommand{\schule@modulDateiLaden}[3]{ + \IfFileExists{#1/#2/#3.tex}{ + % Wenn die Datei existiert + \ifcsname schule@geladen#1#2#3\endcsname + % Wenn die Datei bereits geladen wurde + \sdwarnung{Moduldatei #1/#2/#3 war bereits geladen!} + \else + % Wenn die Datei nicht bereits geladen wurde + \input{#1/#2/#3.tex} + \expandafter\def + \csname schule@geladen#1#2#3\endcsname{true} + \expandafter\def + \csname schule@geladen#1#2\endcsname{true} + \sdinfo{Moduldatei #1/#2/#3 geladen!} + \fi + }{ + % Wenn die Datei nicht existiert + \sdwarnung{Moduldatei #1/#2/#3 nicht gefunden!} + } +} + + +% \schule@modulNachladen{Modulname} +% Lädt ein Modul mit allen Abschnitten. Interne Hilfsfunktion für +% Erfüllung von Abhängigkeiten in Modulen. Die Verwendung zu anderen +% Zwecken wird nicht empfohlen. +\newcommand{\schule@modulNachladen}[1]{ + \schule@modulDateiLaden{Module}{#1}{optionen} + \ProcessPgfPackageOptions{/schule} + \schule@modulDateiLaden{Module}{#1}{pakete} + \schule@modulDateiLaden{Module}{#1}{code} +} + +% Modulliste +% ******************************************************************** +\RequirePackage{forarray} +% Standardmodule laden und um optionale Module ergänzen +\ifthenelse{\equal{\schule@typ}{ohne}}{ + \edef\schule@ladeModule{% + Metadaten, % + Format, % + \schule@module + } +}{ + \edef\schule@ladeModule{% + Metadaten, % + Format, % + Aufgaben, % + \schule@module + } +} + +% ******************************************************************** +% * Paketoptionen der Module * +% ******************************************************************** + +% Definitionen der Paketoptionen der Module laden +% ******************************************************************** +\ForEachX{,}{ + \schule@modulDateiLaden{Module}{\thislevelitem}{optionen} +}{\schule@ladeModule} + +% Definitionen der Paketabhängigkeiten der Fächer laden +% ******************************************************************** +\schule@modulDateiLaden{Faecher}{\schule@fach}{optionen} + +% Weitere Fächer +\ForEachX{,}{ + \schule@modulDateiLaden{Faecher}{\thislevelitem}{optionen} +}{\schule@weitereFaecher} + +% Definitionen der Paketabhängigkeiten des Dokumenttyps laden +% ******************************************************************** +\schule@typDateiLaden{\schule@typ}{optionen} + +% Paketoptionen verarbeiten +% ******************************************************************** +% Zurücksetzen der unbekannten Optionen +%\def\schule@unbekannteOptionen{} +% TODO: Evtl. Warnung, falls unbekannte Option gesetzt. +% Erneutes Verarbeiten der Optionen +\ProcessPgfPackageOptions{/schule} + +% ******************************************************************** +% * Kompatibilitätsmodus BEGINN * +% ******************************************************************** + +\ifthenelse{\equal{\schule@typ}{schuleALT}}{ + \RequirePackage{schulealt} +}{ + +% ******************************************************************** +% * Paketabhängigkeiten * +% ******************************************************************** + +% Allgemeine Paketabhängigkeiten +% ******************************************************************** + +% Eingabe und Sprache +\RequirePackage[\schule@sprache,ngerman]{babel} +\RequirePackage[utf8]{inputenc} +\RequirePackage[TS1,T1]{fontenc} + +% Makros +\RequirePackage{xparse} +\RequirePackage{xstring} +\RequirePackage{environ} + +% Referenzen + +% Mathematisches +\RequirePackage{amsmath} + +% Grafik +\PassOptionsToPackage{table,dvipsnames}{xcolor} +\RequirePackage{xcolor} +\RequirePackage{tikz} +\RequirePackage{graphicx} + + +% Paketabhängigkeiten der Module +% ******************************************************************** +\ForEachX{,}{ + \schule@modulDateiLaden{Module}{\thislevelitem}{pakete} +}{\schule@ladeModule} + +% Paketabhängigkeiten der Fächer +% ******************************************************************** +% Fachspezifische Paketabhängigkeiten +\schule@modulDateiLaden{Faecher}{\schule@fach}{pakete} + +% Weitere Fächer +\ForEachX{,}{ + \schule@modulDateiLaden{Faecher}{\thislevelitem}{pakete} +}{\schule@weitereFaecher} + +% Paketabhängigkeiten des Dokumenttyps +% ******************************************************************** +\schule@typDateiLaden{\schule@typ}{pakete} + +%Hyperref nach allen anderen Paketen laden um möglichen Problemen aus dem Weg zu gehen. +\RequirePackage{hyperref} + + +% ******************************************************************** +% * Module laden * +% ******************************************************************** + +\ForEachX{,}{ + \schule@modulDateiLaden{Module}{\thislevelitem}{code} +}{\schule@ladeModule} + + +% ******************************************************************** +% * Fachspezifischen Code einbinden * +% ******************************************************************** + +% Einbinden der fachspezifischen Module +\schule@modulDateiLaden{Faecher}{\schule@fach}{code} + +\schule@modulDateiLaden{Faecher}{\schule@fach}{standalone} + +% Weitere Fächer +\ForEachX{,}{ + \schule@modulDateiLaden{Faecher}{\thislevelitem}{code} +}{\schule@weitereFaecher} + +% ******************************************************************** +% * Code des Dokumenttyps einbinden * +% ******************************************************************** +\schule@typDateiLaden{\schule@typ}{code} + + +% ******************************************************************** +% * Kompatibilitätsmodus ENDE * +% ******************************************************************** + +} -- cgit v1.2.3