diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/schule/doc/devModule.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/schule/doc/devModule.tex | 184 |
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 |