summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex265
1 files changed, 265 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex
new file mode 100644
index 00000000000..d55f5486934
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrwfile.tex
@@ -0,0 +1,265 @@
+% ======================================================================
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2001-2012
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2001-2012
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+%
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (allein durch den Autor verwaltet).
+%
+% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
+%
+% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+%
+% Chapter about scrwfile of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel über scrwfile in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\ProvidesFile{scrwfile.tex}[2012/01/01 KOMA-Script guide (chapter: scrwfile)]
+
+\chapter{Dateien mit \Package{scrwfile} sparen und ersetzen}
+\labelbase{scrwfile}
+
+\BeginIndex{Package}{scrwfile}
+Eines der Probleme, die auch durch die Einführung von \eTeX{} nicht gelöst
+wurde, ist die Tatsache, dass \TeX{} nur 18 Dateien gleichzeitig zum Schreiben
+geöffnet haben kann. Diese Zahl erscheint zunächst recht groß. Allerdings ist
+zu berücksichtigen, dass bereits \LaTeX{} selbst einige dieser Dateien
+belegt. Inhaltsverzeichnis, Tabellenverzeichnis, Abbildungsverzeichnis, Index,
+Glossar und jedes weitere Verzeichnis, das von \LaTeX{} aus erzeugt wird,
+belegt in der Regel eine weitere Datei. Dazu kommen Hilfsdateien von Paketen
+wie \Package{hyperref} oder \Package{minitoc}.
+
+Im Endeffekt kann es daher geschehen, dass irgendwann die Meldung
+\begin{lstcode}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstcode}
+erscheint.
+
+Dass \LaTeX{} bei Verzeichnissn wie dem Inhaltsverzeichnis, dem
+Tabellenverzeichnis und dem Abbildungsverzeichnis immer sofort eine neue Datei
+zum Schreiben öffnet, hat aber auch noch einen weiteren Nachteil. Solche
+Verzeichnisse werden durch deren Befehle nicht nur direkt gesetzt, sie können
+auch kein weiteres Mal gesetzt werden, da die zugehörige Hilfsdatei nach dem
+jeweiligen Befehl bis zum Ende des Dokuments leer ist.
+
+Das Paket \Package{scrwfile} bietet hier eine grundsätzliche Änderung im
+\LaTeX-Kern, durch die beide Probleme gelöst werden können.
+
+\section{Grundsätzliche Änderungen am \LaTeX-Kern}
+\label{sec:scrwfile.kernelpatches}
+
+\LaTeX-Klassen verwenden zum Öffnen eines Verzeichnisses beispielsweise mit
+\Macro{tableofcontents} oder \Macro{listoffigure} die \LaTeX-Kern-Anweisung
+\Macro{@starttoc}\IndexCmd{@starttoc}. \LaTeX{} selbst lädt bei dieser
+Anweisung nicht nur die zugehörige Hilfsdatei, sondern öffnet diese Hilfsdatei
+auch neu zum Schreiben. Werden anschließend mit \Macro{addtocontents} oder
+\Macro{addcontentsline} Einträge in dieses Verzeichnis vorgenommen, so wird
+jedoch nicht direkt in die geöffnete Hilfsdatei geschrieben. Stattdessen
+schreibt \LaTeX{} \Macro{@writefile}-Anweisungen\IndexCmd{@writefile} in die
+\File{aux}-Datei. Erst beim Einlesen der \File{aux}-Dateien am Ende des
+Dokuments wird dann über diese \Macro{@writefile}-Anweisungen in die
+tatsächlichen Hilfsdateien geschrieben. Die Hilfsdateien werden von \LaTeX{}
+auch nicht explizit geschlossen. Stattdessen verlässt sich \LaTeX{} hier
+darauf, dass \TeX{} die Dateien am Ende ohnehin schließt.
+
+Dieses Vorgehen sorgt dafür, dass die Hilfsdateien zwar erst innerhalb von
+\Macro{end}\PParameter{document} tatsächlich beschrieben werden, aber trotzdem
+während des gesamten \LaTeX-Laufs gleichzeitig offen sind. \Package{scrwfile}
+hat nun genau hier einen Ansatzpunkt: die Umdefinierung von \Macro{@starttoc}
+und \Macro{@writefile}.
+
+Natürlich\textnote{Achtung!} besitzen Änderungen am \LaTeX-Kern immer das
+Potential, dass es zu Unverträglichkeiten mit anderen Paketen kommen
+kann. Betroffen können in erster Linie Pakete sein, die ebenfalls
+\Macro{@starttoc} oder \Macro{@writefile} umdefinieren. In einigen Fällen kann
+es helfen, die Reihenfolge der Pakete zu ändern.
+
+Tatsächlich sind bisher keine solchen Probleme im Zusammenhang mit
+\Package{scrwfile} bekannt, obwohl das Paket vor der Veröffentlichung von
+verschiedenen Anwendern über ein Jahr lang getestet wurde. Wenn Sie jedoch auf
+ein solches Problem stoßen, sollten Sie sich an den \KOMAScript-Autor wenden.
+
+\section{Das Eindateiensystem}
+\label{sec:scrwfile.singlefilefeature}
+
+Bereits beim Laden des Pakets mit
+% Umbruchoptimierung: listings
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \usepackage{scrwfile}
+\end{lstcode}
+wird \Macro{@starttoc}\IndexCmd{@starttoc} von \Package{scrwfile} so
+umdefiniert, dass davon selbst keine Datei mehr zum Schreiben angefordert und
+geöffnet wird. Unmittelbar vor dem Schließen der \File{aux}-Datei in
+\Macro{end}\PParameter{document} wird dann \Macro{@writefile} so umdefiniert,
+dass diese Anweisung statt in die eigentlichen Hilfsdateien in eine neue
+Hilfsdatei mit der Endung \File{wrt} schreibt. Nach dem Einlesen der
+\File{aux}-Dateien wird dann noch die \File{wrt}-Datei abgearbeitet und zwar
+ein Mal für jede der Hilfsdateien, in die mit \Macro{@writefile} geschrieben
+wird. Dabei muss dann aber nicht jede dieser Hilfsdateien gleichzeitig
+geöffnet sein. Stattdessen ist immer nur eine zum Schreiben geöffnet und wird
+auch wieder explizit geschlossen. Da dabei eine interne Schreibdatei von
+\LaTeX{} wiederverwendet wird, benötigt \Package{scrwfile} keine einzige
+eigene Schreibdatei für diese Art von Verzeichnissen.
+
+Selbst, wenn bisher nur mit einem Inhaltsverzeichnis gearbeitet wird, steht
+nach dem Laden des Pakets bereits eine Schreibdatei mehr für
+Literaturverzeichnisse, Stichwortverzeichnisse, Glossare und ähnliche
+Verzeichnisse, die nicht mit \Macro{@starttoc} arbeiten, zur
+Verfügung. Darüber hinaus können beliebig viele Verzeichnisse, die mit
+\Macro{@starttoc}\IndexCmd{@starttoc} arbeiten, angelegt werden.%
+%
+
+\section{Das Klonen von Dateieinträgen}
+\label{sec:scrwfile.clonefilefeature}
+
+Nachdem \Macro{@writefile}\IndexCmd{@writefile} für das Eindateiensystem aus
+dem vorherigen Abschnitt bereits so geändert wurde, dass es nicht direkt in
+die entsprechende Hilfsdatei schreibt, lag eine weitere Idee nahe. Beim
+Kopieren der \Macro{@writefile}-Anweisungen in die \File{wrt}-Datei können
+diese auch für andere Zielendungen übernommen werden.
+
+\begin{Declaration}
+ \Macro{TOCclone}\OParameter{Verzeichnisüberschrift}\Parameter{Quellendung}\Parameter{Zielendung}\\
+ \Macro{listof\PName{Zielendung}}
+\end{Declaration}%
+\BeginIndex{Cmd}{TOCclone}%
+Durch dieses Klonen von Dateieinträgen werden so ganze Verzeichnisse
+geklont. Dazu muss man nur die Endung der Hilfsdatei des Verzeichnisses
+kennen, dessen Einträge kopiert werden sollen. Zusätzlich muss man die Endung
+einer Zieldatei angeben. In diese werden die Einträge dann kopiert. Natürlich
+kann man in dieses geklonte Verzeichnis auch zusätzliche Einträge
+schreiben.
+
+Die \PName{Zielendung} der Zieldatei wird mit Hilfe von
+\Package{tocbasic}\important{\Package{tocbasic}} (siehe
+\autoref{cha:tocbasic}) verwaltet. Steht eine solche Datei bereits unter
+Kontrolle von \Package{tocbasic} wird eine Warnung ausgegeben. Anderenfalls
+wird mit Hilfe von \Package{tocbasic} ein neues Verzeichnis für diese Endung
+angelegt. Die Überschrift dieses Verzeichnisses kann man über das optionale
+Argument \PName{Verzeichnisüberschrift} bestimmen.
+
+Ausgeben kann man dieses neue Verzeichnis dann beispielsweise über die
+Anweisung \Macro{listof\PName{Zielendung}}. Die
+Verzeichniseigenschaften\important{\Package{tocbasic}} \PValue{leveldown},
+\PValue{numbered}, \PValue{onecolumn} und \PValue{totoc} (siehe Anweisung
+\Macro{setuptoc} in \autoref{sec:tocbasic.toc},
+\autopageref{desc:tocbasic.cmd.setuptoc}) werden automatisch in das
+Zielverzeichnis übernommen, falls sie für das Quellverzeichnis bereits gesetzt
+waren. Die Eigenschaft \PValue{nobabel} wird für geklonte Verzeichnisse immer
+gesetzt, da die entsprechenden \Package{babel}-Einträge in das
+Quellverzeichnis ohnehin bereits kopiert werden.
+
+\begin{Example}
+ Angenommen, Sie wollen eine Gliederungsübersicht, in der nur die Kapitel
+ angezeigt werden, zusätzlich zum normalen Inhaltsverzeichnis.
+\begin{lstcode}
+ \usepackage{scrwfile}
+ \TOCclone[Gliederungsübersicht]{toc}{stoc}
+\end{lstcode}
+ Hierdurch wird zunächst ein neues Verzeichnis mit der Überschrift
+ »Gliederungsübersicht« angelegt. Das neue Verzeichnis verwendet die
+ Dateiendung \File{stoc}. Alle Einträge in die Datei mit der Endung
+ \File{toc} werden auch in dieses Verzeichnis kopiert.
+
+ Damit dieses neue Verzeichnis nun nur die Kapitelebene ausgibt, verwenden
+ wir:
+\begin{lstcode}
+ \addtocontents{stoc}{\protect\value{tocdepth}=0}
+\end{lstcode}
+ Während\textnote{Achtung!} normalerweise erst ab
+ \Macro{begin}\PParameter{document} Einträge in ein Verzeichnis vorgenommen
+ werden können, funktioniert dies nach Laden von \Package{scrwfile} bereits
+ in der Dokumentpräambel. Durch die hier gezeigte unkonventionelle Art, den
+ Zähler \Counter{tocdepth} innerhalb der Verzeichnisdatei zu ändern, bleibt
+ diese Änderung nur für dieses Verzeichnis wirksam.
+
+ Später im Dokument wird das Verzeichnis der Endung \File{stoc} dann mit
+\begin{lstcode}[moretexcs={listofstoc}]
+ \listofstoc
+\end{lstcode}
+ ausgegeben und zeigt nur die Teile und Kapitel des Dokuments.
+
+ Etwas schwieriger wird es, wenn das Inhaltsverzeichnis in der
+ Gliederungsübersicht angezeigt werden soll. Dies wäre zwar mit
+\begin{lstcode}
+ \addtocontents{toc}{%
+ \protect\addcontentsline
+ {stoc}{chapter}{\protect\contentsname}%
+ }
+\end{lstcode}
+ möglich. Da jedoch alle Einträge in \File{toc} auch nach \File{stoc} kopiert
+ werden, würde so von der Gliederungsübersicht dieser Eintrag ebenfalls
+ übernommen. Also darf der Eintrag nicht aus der Verzeichnisdatei heraus
+ erzeugt werden. Da das Paket \Package{tocbasic}\important{\Package{tocbasic}}
+ zum Einsatz kommt, kann aber
+ \phantomsection\label{example:scrwfile.AfterStartingTOC}
+\begin{lstcode}
+ \AfterStartingTOC[toc]{%
+ \addcontentsline{stoc}{chapter}
+ {\protect\contentsname}}
+\end{lstcode}
+ verwendet werden. Natürlich\textnote{Achtung!} setzt dies voraus, dass die
+ Datei mit Endung \File{toc} auch unter der Kontrolle von \Package{tocbasic}
+ steht. Dies ist bei allen \KOMAScript-Klassen der Fall. Näheres zur
+ Anweisung \Macro{AfterStartingTOC} ist in \autoref{sec:tocbasic.toc} auf
+ \autopageref{desc:tocbasic.cmd.AfterStartingTOC} zu finden.
+\end{Example}
+%
+\EndIndex{Cmd}{TOCclone}
+
+\section{Hinweis zum Entwicklungsstand}
+\label{sec:scrwfile.draft}
+
+Obwohl das Paket bereits von mehreren Anwendern getestet wurde und vielfach im
+Einsatz ist, ist seine Entwicklung noch nicht abgeschlossen. Deshalb ist es
+theoretisch möglich, dass insbesondere an der internen Funktionsweise des
+Pakets noch Änderungen vorgenommen werden. Sehr wahrscheinlich sind auch
+künftige Erweiterungen. Teilweise befindet sich bereits Code für solche
+Erweiterungen im Paket. Da jedoch noch keine Benutzeranweisungen existieren,
+mit denen diese Möglichkeiten genutzt werden könnten, wurde hier auf eine
+Dokumentation derselben verzichtet.
+
+\EndIndex{Package}{scrwfile}
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Eindateiensystem Schreibdatei Zieldatei Zielendung Quellendung
+% LocalWords: Verzeichnisüberschrift Dateiendung Zielendungen Verzeichnisdatei
+% LocalWords: Benutzeranweisungen Dokumentpräambel Kapitelebene