summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/schule/doc/devModule.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/schule/doc/devModule.tex')
-rw-r--r--Master/texmf-dist/doc/latex/schule/doc/devModule.tex184
1 files changed, 0 insertions, 184 deletions
diff --git a/Master/texmf-dist/doc/latex/schule/doc/devModule.tex b/Master/texmf-dist/doc/latex/schule/doc/devModule.tex
deleted file mode 100644
index 981950a01be..00000000000
--- a/Master/texmf-dist/doc/latex/schule/doc/devModule.tex
+++ /dev/null
@@ -1,184 +0,0 @@
-\section{Modularität}
- \label{sec:devmodule}
- \subsection{Erläuterungen zum Modulsystem}
- Ein zentrales Problem des alten Schule-Pakets bis Version 0.6
- war, dass es sehr monolithisch aufgebaut und alles integrierte,
- was im Schulalltag und in der Lehrerausbildung nützlich sein
- könnte. So wurden die Weiterentwicklung und Übergabe an neue
- Maintainer schwierig, da stets eine Einarbeitung in alle Bereiche
- erforderlich war.
-
- Die grundlegende Entscheidung für das neue Schule-Paket ist es
- also, eine Modularisierung zu etablieren, die, zusätzlich zu
- einem stabilen Kern, verschiedene Funktionen und Fachspezifika
- entsprechend kapselt und von diesem Kern trennt.
-
- Ein eindeutiger Aufbau dieser Module soll dafür sorgen, dass es
- leichter wird, neue Funktionen zu ergänzen, ohne den gesamten
- Quelltext des Pakets kennen und verstehen zu müssen.
-
- Grundsätzlich gibt es drei verschiedene Arten von Modulen im
- Schule-Paket: \textbf{Module}, \textbf{Fachmodule} und
- \textbf{Zusatzpakete}, \vgl\space \prettyref{sec:begriffe}.
-
- Erweiterungen ohne direkten Bezug (also alles, das auch ohne das
- Schule-Paket sinnvoll genutzt werden kann) zum Paket sollten in
- Form unabhängiger Zusatzmodule implementiert werden.
-
- \subsection{Aufbau eines Moduls}
-
- \label{sec:devmoduleModul}
-
- Ein Modul für das Schule-Paket besteht aus einem Unterverzeichnis
- mit dem Namen des Moduls, das im Unterverzeichnis \enquote{Module}
- des Pakets liegt.
-
- Ist ein solches Verzeichnis vorhanden, kann das Modul direkt über
- seinen Namen eingebunden werden, \vgl\space\prettyref{sec:module}.
- Der Modulmechanismus sorgt dafür, dass die entsprechenden
- Abschnitte des Moduls an den richtigen Stellen des Quelltextes
- eingebunden werden. Es sind die folgenden drei Abschnitte
- definiert:
-
- \begin{description}
- \item[\texttt{optionen.tex}] $\rightarrow$ Paketoptionen des
- Moduls, \vgl\space Paket \pkg{pgfopts}
- \item[\texttt{pakete.tex}] $\rightarrow$ Paketabhängigkeiten
- des Moduls
- \item[\texttt{code.tex}] $\rightarrow$ Implementierung des
- Moduls
- \end{description}
-
- All diese Abschnitte sind optional und werden geladen, wenn sie
- vorhanden sind. Ein Modul kann also beispielsweise nur aus einer
- \texttt{code.tex}-Datei bestehen, wenn es nur einige Makros
- definiert.
-
- \subsubsection{Beispiel}
- \label{sec:devmoduleModulBeispiel}
- \paragraph{HalloWelt/optionen.tex}
-\begin{sourcecode}[gobble=0]
-% ********************************************************************
-% * Paketoptionen *
-% ********************************************************************
-
-% Boolesche Optionen
-% ********************************************************************
-\newboolean{schule@nutzeGoodbye}
-
-% Standardwerte
-% ********************************************************************
-\newcommand{\schule@weltname}{Welt}
-
-% Definition der Paketoptionen
-% ********************************************************************
-\pgfkeys{
- /schule/.cd,
- weltname/.store in=\schule@weltname,
- nutzeGoodbye/.value forbidden,
- nutzeGoodbye/.code=\setboolean{schule@datumAnzeigen}{true},
-}
-\end{sourcecode}
-
- \paragraph{HalloWelt/pakete.tex}
-\begin{sourcecode}[gobble=0]
-% ********************************************************************
-% * Paketabhängigkeiten *
-% ********************************************************************
-
-\RequirePackage{ifthenelse}
-\end{sourcecode}
-
- \paragraph{HalloWelt/code.tex}
-\begin{sourcecode}[gobble=0]
-% ********************************************************************
-% * Hallo Welt! *
-% ********************************************************************
-
-\newcommand{\halloWelt}{
- \ifthenelse{\boolean{schule@nutzeGoodbye}}{
- Goodbye \schule@weltname!
- }{
- Hallo \schule@weltname!
- }
-}
-\end{sourcecode}
-
-
- \subsection{Aufbau eines Fachmoduls}
-
- \label{sec:devmoduleFachmodul}
-
- Ein Fachmodul für das Schule-Paket besteht aus einem
- Unterverzeichnis mit dem Namen des Fachmoduls, das im
- Unterverzeichnis \enquote{Faecher} des Pakets liegt.
-
- Ist ein solches Verzeichnis vorhanden, kann das Fachmodul direkt
- über seinen Namen eingebunden werden,
- \vgl\space\prettyref{sec:faecher}.
- Der Modulmechanismus sorgt dafür, dass die entsprechenden
- Abschnitte des Fachmoduls an den richtigen Stellen des Quelltextes
- eingebunden werden. Es sind die folgenden vier Abschnitte
- definiert:
-
- \begin{description}
- \item[\texttt{optionen.tex}] $\rightarrow$ Paketoptionen des
- Moduls, \vgl\space Paket \pkg{pgfopts}
- \item[\texttt{pakete.tex}] $\rightarrow$ Paketabhängigkeiten
- des Moduls
- \item[\texttt{code.tex}] $\rightarrow$ Implementierung des
- Moduls, die unabhängig von der Art der Einbindung des
- Faches geladen wird.
- \item[\texttt{standalone.tex}] $\rightarrow$ Implementierung,
- die nur geladen wird, wenn das Fach als Hauptfach
- angegeben wird, \dsh\space wenn das Fach mit der
- Paketoption \keyis{fach}{Fach} geladen wurde, jedoch
- nicht, wenn das Fach mit \keyis{weitereFaecher}{\dots
- Fach,\dots} geladen wurde.
- \end{description}
-
- All diese Abschnitte sind optional und werden geladen, wenn sie
- vorhanden sind. Ein Modul kann also beispielsweise nur aus einer
- \texttt{code.tex}-Datei bestehen, wenn es nur einige Makros
- definiert.
-
- Siehe auch das Beispiel für die Implementierung eines Moduls in
- \prettyref{sec:devmoduleModulBeispiel}.
-
- \subsection{Aufbau eines Dokumenttyps}
-
- \label{sec:devDokumenttyp}
-
- Ein Dokumenttyp für das Schule-Paket besteht aus einem
- Unterverzeichnis mit dem Namen des Dokumenttyps, das im
- Unterverzeichnis \enquote{Dokumenttypen} des Pakets liegt.
-
- Ist ein solches Verzeichnis vorhanden, kann der Dokumenttyp
- direkt über seinen Namen eingebunden werden,
- \vgl\space\prettyref{sec:typen}.
- Der Modulmechanismus sorgt dafür, dass die entsprechenden
- Abschnitte des Dokumenttyps an den richtigen Stellen des
- Quelltextes eingebunden werden. Es sind die folgenden drei
- Abschnitte definiert:
-
- \begin{description}
- \item[\texttt{optionen.tex}] $\rightarrow$ Paketoptionen des
- Dokumenttyps, \vgl\space Paket \pkg{pgfopts}
- \item[\texttt{pakete.tex}] $\rightarrow$ Paketabhängigkeiten
- des Dokumenttyps
- \item[\texttt{code.tex}] $\rightarrow$ Implementierung des
- Dokumenttyps.
- \end{description}
-
- All diese Abschnitte sind optional und werden geladen, wenn sie
- vorhanden sind. Ein Modul kann also beispielsweise nur aus einer
- \texttt{code.tex}-Datei bestehen, wenn es nur einige Makros
- definiert.
-
- Sind die Abschnitte nicht vorhanden, so wird in jedem Fall der
- entsprechende Abschnitt des Dokumenttyps \enquote{Arbeitsblatt}
- (ab) geladen. Soll dies unterbleiben, muss der Abschnitt also
- auf jeden Fall angelegt werden.
-
- Siehe auch das Beispiel für die Implementierung eines Moduls in
- \prettyref{sec:devmoduleModulBeispiel}. \ No newline at end of file