<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{Einleitung}\label{einleitung}
Es ist mir klar, dass die wenigsten Leser Einleitungen lesen. Ich empfehle dennoch, diesen Abschnitt nicht zu Ã¼berspringen, da er zu erlÃ¤utern versucht, wa\-rum die Pakete sets und vhistory entwickelt wurden. So kÃ¶nnen Sie frÃ¼hzeitig erkennen, ob sie Ihren Anforderungen gerecht werden.

%\index{Versionshistorie|(}
Bei Softwareprojekten entstehen (hoffentlich) viele Dokumente wie Spezifikation oder Entwurf. Diese Dokumente werden mehrfach Ã¼berarbeitet. Um Ã„nderungen direkt nachvollziehen zu kÃ¶nnen, sollten diese Dokumente eine sogenannte \emph{Versionshistorie} enthalten. Dabei handelt es sich um eine Tabelle, deren EintrÃ¤ge folgende Daten umfassen:
\begin{itemize}
	\item eine Versionsnummer,
	\item das Datum der Ã„nderung,
	\item die KÃ¼rzel der Personen, die die Ã„nderungen vorgenommen haben (die Autoren),
	\item eine Beschreibung der Ã„nderungen.
\end{itemize}

Bestimmte Daten der Versionshistorie sollen hÃ¤ufig an anderen Stellen im Dokument wiederholt werden. So soll typischerweise die Titelseite die aktuelle Versionsnummer und alle Autoren auffÃ¼hren. Die Versionsnummer sollte auÃŸerdem auf allen Seiten des Dokuments, z.\,B. in einer FuÃŸzeile, wiederholt werden. Dadurch kann leicht Ã¼berprÃ¼ft werden, ob eine Seite zur aktuellsten Version gehÃ¶rt oder schon veraltet ist.

Normalerweise werden die Daten, die z.\,B. auf der Titelseite erscheinen, nicht aus der Versionshistorie Ã¼bernommen, sondern an anderer Stelle erneut angegeben. Die EintrÃ¤ge der Versionshistorie werden in der Regel immer aktualisiert. In der Hektik wird aber meist vergessen, die Angaben fÃ¼r Titelseite etc. zu aktualisieren. Das Ergebnis sind inkonsistente Dokumente. Aus eigener Erfahrung weiÃŸ ich, dass die Angaben zu den Autoren praktisch nie stimmen, besonders wenn im Laufe der Zeit mehrere Personen an einem Dokument gearbeitet haben.
%\index{Versionshistorie|)}

Es wÃ¤re also schÃ¶n, wenn der Autor eines Dokuments sich nur darum kÃ¼mmern mÃ¼sste, die Versionshistorie auf dem aktuellen Stand zu halten. Die Informationen auf der Titelseite und in FuÃŸzeilen sollten automatisch aus der Versionshistorie generiert werden.

Diese Anforderungen sind ohne einen gewissen Aufwand nicht umzusetzen, da beispielsweise die Titelseite erzeugt wird, bevor die Versionshistorie Ã¼berhaupt gelesen wurde. Die relevanten Daten mÃ¼ssen deshalb in eine Datei geschrieben und noch vor Bearbeitung der Titelseite wieder eingelesen werden. Da fÃ¼r manche Anwendungen auch der Zeitpunkt, zu dem die aux-Datei eingelesen wird zu spÃ¤t ist, wird eine eigene Datei mit der Endung hst angelegt.
FÃ¼r die Tabelle mit der Versionshistorie ist ebenfalls eine eigene Datei notwendig, doch dazu spÃ¤ter.

Ein anderes Problem stellt die Liste der Autoren dar. Diese Liste kann nicht einfach durch Aneinanderreihung der Autor-EintrÃ¤ge in der Versionshistorie erzeugt werden, da sonst einige Personen mehrfach auftreten wÃ¼rden. Dies war die Geburtsstunde des Pakets sets, mit dem einfache Mengen von Text verwaltet werden kÃ¶nnen. Die Menge aller Autoren wird bei jedem Eintrag in der Versionshistorie mit der Menge der angegebenen Autoren vereinigt. Die Menge aller Autoren kann dann in alphabetisch sortierter Form an beliebiger Stelle -- eben meist auf der Titelseite -- ausgegeben werden.

Soweit zur Vorrede. Die beiden folgenden Abschnitte beschreiben die beiden Pakete eingehender und zeigen, wie man mit ihnen arbeitet. Dabei wurde darauf verzichtet, den Quellcode der Pakete wiederzugeben. Wer sich dafÃ¼r interessiert, kann direkt in die Quellen schauen. Ich habe versucht, den Quellcode so zu strukturieren und zu kommentieren, dass er lesbar ist. 

%AuÃŸerdem habe ich einen Trick angewandt, der sich unter \TeX{}nischen Programmierern leider kaum herumgesprochen hat; ich habe Kommentare sowohl zwischen, als auch innerhalb der Makros eingefÃ¼gt.
</pre></body></html>