summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/schule/devModule.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/schule/devModule.tex')
-rw-r--r--Master/texmf-dist/doc/latex/schule/devModule.tex184
1 files changed, 60 insertions, 124 deletions
diff --git a/Master/texmf-dist/doc/latex/schule/devModule.tex b/Master/texmf-dist/doc/latex/schule/devModule.tex
index 981950a01be..ddd2c358c41 100644
--- a/Master/texmf-dist/doc/latex/schule/devModule.tex
+++ b/Master/texmf-dist/doc/latex/schule/devModule.tex
@@ -1,62 +1,49 @@
\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
+ 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
+
+ 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
+
+ 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.
-
+ 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.
-
+
+ Ein Modul für das Schule-Paket besteht aus mehreren Dateien, deren erster Teil des Namens \texttt{schule.mod.Modulname} identisch ist. Je nach Funktion werden dort drei Möglichkeiten angehangen, die als Abschnitte bezeichnet werden. Sobald eine der Dateien mit diesem Schema vorhanden ist, kann das Modul über seinen Namen eingebunden werden, \vgl\space\prettyref{sec:module}. Alle Dateien vorgegebenen Dateien liegen dazu im Verzeichnis \enquote{latex}.
+
+ 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}
+ \paragraph{schule.mod.HalloWelt.optionen.tex}
\begin{sourcecode}[gobble=0]
% ********************************************************************
% * Paketoptionen *
@@ -80,7 +67,7 @@
}
\end{sourcecode}
- \paragraph{HalloWelt/pakete.tex}
+ \paragraph{schule.mod.HalloWelt.pakete.tex}
\begin{sourcecode}[gobble=0]
% ********************************************************************
% * Paketabhängigkeiten *
@@ -89,7 +76,7 @@
\RequirePackage{ifthenelse}
\end{sourcecode}
- \paragraph{HalloWelt/code.tex}
+ \paragraph{schule.mod.HalloWelt.code.tex}
\begin{sourcecode}[gobble=0]
% ********************************************************************
% * Hallo Welt! *
@@ -103,82 +90,31 @@
}
}
\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
+
+
+ \subsection{Aufbau eines Fachmoduls}
+
+ \label{sec:devmoduleFachmodul}
+
+ Ein Fachmodul für das Schule-Paket wird analog zu einem normalen Modul erstellt, \vgl\space\prettyref{sec:devmoduleModul}. Hier steht nur im Dateinamen nach dem zweiten Punkt \texttt{fach} anstatt \texttt{mod}.
+
+ Die Dateien für das Fach Geschichte sind dann beispielsweise folgende:
+ \begin{itemize}
+ \item \texttt{schule.fach.Geschichte.optionen.tex}
+ \item \texttt{schule.fach.Geschichte.pakete.tex}
+ \item \texttt{schule.fach.Geschichte.code.tex}
+ \end{itemize}
+
+
+ \subsection{Aufbau eines Dokumenttyps}
+
+ \label{sec:devDokumenttyp}
+
+ Auch ein Dokumenttyp für das Schule-Paket hat den gleichen Aufbau wie ein normales Modul, \vgl\space\prettyref{sec:devmoduleModul}. Hier steht nur im Dateinamen nach dem zweiten Punkt \texttt{typ} anstatt \texttt{mod}.
+
+ Die Dateien für das Arbeitsblatt (Typ ab) sind dann beispielsweise folgende:
+ \begin{itemize}
+ \item \texttt{schule.typ.ab.optionen.tex}
+ \item \texttt{schule.typ.ab.pakete.tex}
+ \item \texttt{schule.typ.ab.code.tex}
+ \end{itemize}