summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/dateiliste/README119
-rw-r--r--Master/texmf-dist/doc/latex/dateiliste/README-de13
-rw-r--r--Master/texmf-dist/doc/latex/dateiliste/README-en22
-rw-r--r--Master/texmf-dist/doc/latex/dateiliste/README-eo88
-rw-r--r--Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdfbin275453 -> 268252 bytes
-rw-r--r--Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx1243
-rw-r--r--Master/texmf-dist/source/latex/dateiliste/dateiliste.ins27
-rw-r--r--Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty198
8 files changed, 1294 insertions, 416 deletions
diff --git a/Master/texmf-dist/doc/latex/dateiliste/README b/Master/texmf-dist/doc/latex/dateiliste/README
index e4c8cbb4796..3c6d9c6295d 100644
--- a/Master/texmf-dist/doc/latex/dateiliste/README
+++ b/Master/texmf-dist/doc/latex/dateiliste/README
@@ -1,5 +1,5 @@
This README is for version:
- 2006/07/27 v0.3 %
+ 2009/11/04 v0.5 %
----------------
([de] unten - [eo] sube)
----------------
@@ -33,15 +33,18 @@ useful.
(1) automatic version infos:
- If you have your LaTeX source files in a CVS,
- you may use the ID tag to generate the date and
- version number for the version string in \listfiles.
+ If you use a version control system like RCS, CVS, Subversion
+ for your LaTeX source files, you may use the Id tag to generate
+ the date and version number for the version string in \listfiles.
Use
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {short description}
+ \ProvideFileInfos{$<>Id$}{short description}
- in your file, and do a CVS commit.
+ (without '<>' [0]) in your file, and do a 'cvs commit' (or
+ 'svn commit'). In the svn case, use the package-option 'svn'
+ (or 'subversion') to indicate the parsing format to the
+ package, and tell Subversion to expand Id:
+ svn propset svn:keywords Id <filename>
(2) include main file:
@@ -93,6 +96,11 @@ useful.
\descriptionName - table header "description"
-----
+[0] The <> are inserted here to avoid Subversion
+ expanding this line. If someone has an idea how
+ to have this in plain format in the README (maybe
+ with some complicated magic in the .dtx and/or .ins),
+ please contact me.
[1] this determination can be configured with
the package options
nocat12 - does only work with eTeX, else
@@ -109,17 +117,18 @@ useful.
----------------
[de]
LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument
+und verwandte Funktionen.
Autor: Paul Ebermann (Paul-Ebermann@gmx.de).
-Lizenz: LPPL 1.3b oder spter, mit Maintenance-Status
+Lizenz: LPPL 1.3b oder später, mit Maintenance-Status
"author-maintained". Siehe http://www.latex-project.org/lppl/.
-Geschrieben fr den eigenen Gebrauch
+Geschrieben für den eigenen Gebrauch
(-> http://www.math.hu-berlin.de/~ebermann/alg-script/),
-aber vielleicht ist es auch fr andere von Nutzen.
+aber vielleicht ist es auch für andere von Nutzen.
Zum Setzen der Dokumentation wird das Paket 'pauldoc'
-(vom selben Autor) bentigt.
+(vom selben Autor) benötigt.
Das Paket kommt als .dtx + .ins.
Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und
@@ -131,69 +140,75 @@ erstellt werden.
Zur Verwendung siehe dateiliste.pdf.
----------------
-[eo-h]
-LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand,
-kiu antaue elprovas, chu la nomo jam ekzistas.
+[eo]
+LaTeX-pakaĵo 'dateiliste' - Variaĵo de \DeclareRobustCommand,
+kiu antaŭe elprovas, ĉu la nomo jam ekzistas.
-Autoro: Paulo Ebermann (Paul-Ebermann@gmx.de).
+Aŭtoro: Paŭlo Ebermann (Paul-Ebermann@gmx.de).
Licenzo: LPPL 1.3, 'author-maintained'
(-> http://www.latex-project.org/lppl/).
-Kreitaj por propra uzo, sed eble iom de ghi ankau
+Kreitaj por propra uzo, sed eble iom de ĝi ankaŭ
uzeblas por aliaj.
-La dokumentaro (escepte tiu chi dosiero) estas nur en la germana
+La dokumentaro (escepte tiu ĉi dosiero) estas nur en la germana
lingvo.
-La pakajho bezonas la pakajhojn 'ltxtable', 'longtable',
+La pakaĵo bezonas la pakaĵojn 'ltxtable', 'longtable',
'tabularx' kaj 'rcsinfo'.
-Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro).
+Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama aŭtoro).
-La pakajho venas en .dtx + .ins.
+La pakaĵo venas en .dtx + .ins.
Voku "latex dateiliste.ins" por krei la .sty-dosieron (kaj
-eble meti ghin al texmf/tex/latex/paul/, se via docstrip estis
-konfigurita laue), voku "latex dateiliste.dtx" por rekrei
+eble meti ĝin al texmf/tex/latex/paul/, se via docstrip estis
+konfigurita laŭe), voku "latex dateiliste.dtx" por rekrei
la dokumentaron.
Uzado
-------
-La pakajho konsistas el tri chefaj bonajhoj, kiujn
+La pakaĵo konsistas el tri ĉefaj bonaĵoj, kiujn
oni povas uzi sendepende, sed kune ili estas speciale
utile.
-(1) automataj versio-informoj.
+(1) Aŭtomataj versio-informoj.
- Se via LaTeX-dosieroj estas ene de CVS, vi povas
- uzi tion por automate generi la daton kaj
- versi-numeron por la listo kreita de \listfiles
+ Se vi uzas versio-kontrolan sistemon kiel Subversion aŭ
+ CVS/RCS, vi povas uzi tion por aŭtomate generi la daton
+ kaj versi-numeron por la listo kreita de \listfiles
(kaj la listo de (3).)
Uzu
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {mallonga priskribo}
+ \ProvideFileInfos{$<>Id$}{mallonga priskribo}
- en via dosiero, kaj faru 'cvs commit'. (CVS enmetos
- informojn, kiun \ProvideFileInfos uzas.)
+ en via dosiero, forprenu la '<>', kaj faru 'svn commit' aŭ
+ 'cvs commit'. (CVS aŭ SVN tiam enmetos informojn, kiun
+ \ProvideFileInfos uzos.)
+ En la Subversion-kazo necesas antaŭe informi Subversion
+ pri tio, ke vi volas anstataŭi 'Id' per alia afero:
+ svn propset svn:keywords Id <dosiernomo>
+ Ankaŭ necesas uzi la pakaĵ-opcion 'svn' aŭ 'subversion',
+ kiel tie:
+ \usepackage[svn]{dateiliste}
-(2) aldono de chefa dosiero
+(2) Aldono de ĉefa dosiero
- Kutime la chefa dosiero (kiun vi donis en la
+ Kutime la ĉefa dosiero (kiun vi donis en la
latex-voko) ne aperas en la listo kreita de
- \listfiles. Tiun la pakajho shanghas, se tiu
- dosiero havas la nomfinajhon .tex
+ \listfiles. Tion la pakaĵo ŝanĝas, se tiu
+ dosiero havas la nomfinaĵon .tex
- (Pli precize, la pakajho aldonas '\jobname.tex',
+ (Pli precize, la pakaĵo aldonas '\jobname.tex',
se tiu dosiero ekzistas, kaj se ne eblas eltrovi[1],
ke la dosiero estas jam en la listo[2].)
- Tiu aldonado estas kutime shaltita, sed eblas
- malshalti ghin per la pakajh-opcio 'noaddmain'.
- Tiam ankau eblas voki
+ Tiu aldonado estas kutime ŝaltita, sed eblas
+ malŝalti ĝin per la pakaĵ-opcio 'noaddmain'.
+ Tiam ankaŭ eblas voki
\mainFileToList
por fari tion.
-(3) enmetu la dosierliston en la rezulton
+(3) Enmetu la dosierliston en la rezulton
Vi povas uzi la komandon
@@ -205,21 +220,21 @@ utile.
opcia argumento) en la dokumenton.
Vi krome devas uzi \listfiles en la komenca
- parto de la dokumento (antau \begin{document}),
- alikaze vi nur ricevos erarmesaghon.
+ parto de la dokumento (antaŭ \begin{document}),
+ alikaze vi nur ricevos erarmesaĝon.
La tabelo nur aperos ekde la dua LaTeX-voko, kaj
- eble bezonos kelkajn pliajn por aspekti ghuste.
+ eble bezonos kelkajn pliajn por aspekti ĝuste.
- Eblas traduki la titolon de la sekcio, la antautekston
- kaj la tabelkapoj helpe de la babel-pakajho - tradukojn
- por 'english', 'german', 'ngerman' kaj 'esperanto' estas
- la pakajho jam enhavas.
- Se vi bezonas aliajn lingvojn au ne uzas 'babel',
+ Eblas traduki la titolon de la sekcio, la antaŭtekston
+ kaj la tabelkapoj helpe de la babel-pakaĵo - tradukojn
+ por 'english', 'german', 'ngerman' kaj 'esperanto' la
+ pakaĵo jam enhavas.
+ Se vi bezonas aliajn lingvojn aŭ ne uzas 'babel',
redifinu la sekvajn makroojn:
\fileListName - titolo ("Listo de dosieroj")
- \fileListPreamble - antauteksto (printita inter titolo
+ \fileListPreamble - antaŭteksto (printita inter titolo
kaj tabelo)
\fileNameName - tabelkapo "dosiernomo"
\dateName - tabelkapo "dato"
@@ -228,12 +243,12 @@ utile.
-----
[1] Tiun determinadon vi povas konfiguri per la
- pakajh-opcioj:
+ pakaĵ-opcioj:
nocat12 - nur funkcias se vi uzas eTeX, alikaze
eble la cxef-dosiero aperos dufoje.
- cat12 - funkcias kun aux sen eTeX, koncertante
+ cat12 - funkcias kun aŭ sen eTeX, konvertante
la enhavon de \@filelist al kategorio 12.
- Se vi neniun de tiuj opcioj donas, gxi laboras
+ Se vi neniun de tiuj opcioj donas, ĝi laboras
kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX.
[2] Tio povas okazi ekzemple, se vi invokas
diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-de b/Master/texmf-dist/doc/latex/dateiliste/README-de
index 1bc9749ac9f..5e1a54192de 100644
--- a/Master/texmf-dist/doc/latex/dateiliste/README-de
+++ b/Master/texmf-dist/doc/latex/dateiliste/README-de
@@ -1,18 +1,19 @@
-Dieses README ist fr Version:
- 2006/07/27 v0.3 %
+Dieses README ist für Version:
+ 2009/11/04 v0.5 %
----------------
LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument
+und verwandte Funktionen.
Autor: Paul Ebermann (Paul-Ebermann@gmx.de).
-Lizenz: LPPL 1.3b oder spter, mit Maintenance-Status
+Lizenz: LPPL 1.3b oder später, mit Maintenance-Status
"author-maintained". Siehe http://www.latex-project.org/lppl/.
-Geschrieben fr den eigenen Gebrauch
+Geschrieben für den eigenen Gebrauch
(-> http://www.math.hu-berlin.de/~ebermann/alg-script/),
-aber vielleicht ist es auch fr andere von Nutzen.
+aber vielleicht ist es auch für andere von Nutzen.
Zum Setzen der Dokumentation wird das Paket 'pauldoc'
-(vom selben Autor) bentigt.
+(vom selben Autor) benötigt.
Das Paket kommt als .dtx + .ins.
Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und
diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-en b/Master/texmf-dist/doc/latex/dateiliste/README-en
index 7343fe4755a..1f6fa6a46bd 100644
--- a/Master/texmf-dist/doc/latex/dateiliste/README-en
+++ b/Master/texmf-dist/doc/latex/dateiliste/README-en
@@ -1,5 +1,5 @@
This README is for version:
- 2006/07/27 v0.3 %
+ 2009/11/04 v0.5 %
----------------
LaTeX-package 'dateiliste' - include list of used files
(like \listfiles) in the document, and related features.
@@ -30,15 +30,18 @@ useful.
(1) automatic version infos:
- If you have your LaTeX source files in a CVS,
- you may use the ID tag to generate the date and
- version number for the version string in \listfiles.
+ If you use a version control system like RCS, CVS, Subversion
+ for your LaTeX source files, you may use the Id tag to generate
+ the date and version number for the version string in \listfiles.
Use
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {short description}
+ \ProvideFileInfos{$<>Id$}{short description}
- in your file, and do a CVS commit.
+ (without '<>' [0]) in your file, and do a 'cvs commit' (or
+ 'svn commit'). In the svn case, use the package-option 'svn'
+ (or 'subversion') to indicate the parsing format to the
+ package, and tell Subversion to expand Id:
+ svn propset svn:keywords Id <filename>
(2) include main file:
@@ -90,6 +93,11 @@ useful.
\descriptionName - table header "description"
-----
+[0] The <> are inserted here to avoid Subversion
+ expanding this line. If someone has an idea how
+ to have this in plain format in the README (maybe
+ with some complicated magic in the .dtx and/or .ins),
+ please contact me.
[1] this determination can be configured with
the package options
nocat12 - does only work with eTeX, else
diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-eo b/Master/texmf-dist/doc/latex/dateiliste/README-eo
index 4211fa4ed64..7df825b2ab2 100644
--- a/Master/texmf-dist/doc/latex/dateiliste/README-eo
+++ b/Master/texmf-dist/doc/latex/dateiliste/README-eo
@@ -1,68 +1,74 @@
Tiu README (legumin) estas por versio:
- 2006/07/27 v0.3 %
+ 2009/11/04 v0.5 %
----------------
-LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand,
-kiu antaue elprovas, chu la nomo jam ekzistas.
+LaTeX-pakaĵo 'dateiliste' - Variaĵo de \DeclareRobustCommand,
+kiu antaŭe elprovas, ĉu la nomo jam ekzistas.
-Autoro: Paulo Ebermann (Paul-Ebermann@gmx.de).
+Aŭtoro: Paŭlo Ebermann (Paul-Ebermann@gmx.de).
Licenzo: LPPL 1.3, 'author-maintained'
(-> http://www.latex-project.org/lppl/).
-Kreitaj por propra uzo, sed eble iom de ghi ankau
+Kreitaj por propra uzo, sed eble iom de ĝi ankaŭ
uzeblas por aliaj.
-La dokumentaro (escepte tiu chi dosiero) estas nur en la germana
+La dokumentaro (escepte tiu ĉi dosiero) estas nur en la germana
lingvo.
-La pakajho bezonas la pakajhojn 'ltxtable', 'longtable',
+La pakaĵo bezonas la pakaĵojn 'ltxtable', 'longtable',
'tabularx' kaj 'rcsinfo'.
-Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro).
+Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama aŭtoro).
-La pakajho venas en .dtx + .ins.
+La pakaĵo venas en .dtx + .ins.
Voku "latex dateiliste.ins" por krei la .sty-dosieron (kaj
-eble meti ghin al texmf/tex/latex/paul/, se via docstrip estis
-konfigurita laue), voku "latex dateiliste.dtx" por rekrei
+eble meti ĝin al texmf/tex/latex/paul/, se via docstrip estis
+konfigurita laŭe), voku "latex dateiliste.dtx" por rekrei
la dokumentaron.
Uzado
-------
-La pakajho konsistas el tri chefaj bonajhoj, kiujn
+La pakaĵo konsistas el tri ĉefaj bonaĵoj, kiujn
oni povas uzi sendepende, sed kune ili estas speciale
utile.
-(1) automataj versio-informoj.
+(1) Aŭtomataj versio-informoj.
- Se via LaTeX-dosieroj estas ene de CVS, vi povas
- uzi tion por automate generi la daton kaj
- versi-numeron por la listo kreita de \listfiles
+ Se vi uzas versio-kontrolan sistemon kiel Subversion aŭ
+ CVS/RCS, vi povas uzi tion por aŭtomate generi la daton
+ kaj versi-numeron por la listo kreita de \listfiles
(kaj la listo de (3).)
Uzu
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {mallonga priskribo}
+ \ProvideFileInfos{$<>Id$}{mallonga priskribo}
- en via dosiero, kaj faru 'cvs commit'. (CVS enmetos
- informojn, kiun \ProvideFileInfos uzas.)
+ en via dosiero, forprenu la '<>', kaj faru 'svn commit' aŭ
+ 'cvs commit'. (CVS aŭ SVN tiam enmetos informojn, kiun
+ \ProvideFileInfos uzos.)
+ En la Subversion-kazo necesas antaŭe informi Subversion
+ pri tio, ke vi volas anstataŭi 'Id' per alia afero:
+ svn propset svn:keywords Id <dosiernomo>
+ Ankaŭ necesas uzi la pakaĵ-opcion 'svn' aŭ 'subversion',
+ kiel tie:
+ \usepackage[svn]{dateiliste}
-(2) aldono de chefa dosiero
+(2) Aldono de ĉefa dosiero
- Kutime la chefa dosiero (kiun vi donis en la
+ Kutime la ĉefa dosiero (kiun vi donis en la
latex-voko) ne aperas en la listo kreita de
- \listfiles. Tiun la pakajho shanghas, se tiu
- dosiero havas la nomfinajhon .tex
+ \listfiles. Tion la pakaĵo ŝanĝas, se tiu
+ dosiero havas la nomfinaĵon .tex
- (Pli precize, la pakajho aldonas '\jobname.tex',
+ (Pli precize, la pakaĵo aldonas '\jobname.tex',
se tiu dosiero ekzistas, kaj se ne eblas eltrovi[1],
ke la dosiero estas jam en la listo[2].)
- Tiu aldonado estas kutime shaltita, sed eblas
- malshalti ghin per la pakajh-opcio 'noaddmain'.
- Tiam ankau eblas voki
+ Tiu aldonado estas kutime ŝaltita, sed eblas
+ malŝalti ĝin per la pakaĵ-opcio 'noaddmain'.
+ Tiam ankaŭ eblas voki
\mainFileToList
por fari tion.
-(3) enmetu la dosierliston en la rezulton
+(3) Enmetu la dosierliston en la rezulton
Vi povas uzi la komandon
@@ -74,21 +80,21 @@ utile.
opcia argumento) en la dokumenton.
Vi krome devas uzi \listfiles en la komenca
- parto de la dokumento (antau \begin{document}),
- alikaze vi nur ricevos erarmesaghon.
+ parto de la dokumento (antaŭ \begin{document}),
+ alikaze vi nur ricevos erarmesaĝon.
La tabelo nur aperos ekde la dua LaTeX-voko, kaj
- eble bezonos kelkajn pliajn por aspekti ghuste.
+ eble bezonos kelkajn pliajn por aspekti ĝuste.
- Eblas traduki la titolon de la sekcio, la antautekston
- kaj la tabelkapoj helpe de la babel-pakajho - tradukojn
- por 'english', 'german', 'ngerman' kaj 'esperanto' estas
- la pakajho jam enhavas.
- Se vi bezonas aliajn lingvojn au ne uzas 'babel',
+ Eblas traduki la titolon de la sekcio, la antaŭtekston
+ kaj la tabelkapoj helpe de la babel-pakaĵo - tradukojn
+ por 'english', 'german', 'ngerman' kaj 'esperanto' la
+ pakaĵo jam enhavas.
+ Se vi bezonas aliajn lingvojn aŭ ne uzas 'babel',
redifinu la sekvajn makroojn:
\fileListName - titolo ("Listo de dosieroj")
- \fileListPreamble - antauteksto (printita inter titolo
+ \fileListPreamble - antaŭteksto (printita inter titolo
kaj tabelo)
\fileNameName - tabelkapo "dosiernomo"
\dateName - tabelkapo "dato"
@@ -97,12 +103,12 @@ utile.
-----
[1] Tiun determinadon vi povas konfiguri per la
- pakajh-opcioj:
+ pakaĵ-opcioj:
nocat12 - nur funkcias se vi uzas eTeX, alikaze
eble la cxef-dosiero aperos dufoje.
- cat12 - funkcias kun aux sen eTeX, koncertante
+ cat12 - funkcias kun aŭ sen eTeX, konvertante
la enhavon de \@filelist al kategorio 12.
- Se vi neniun de tiuj opcioj donas, gxi laboras
+ Se vi neniun de tiuj opcioj donas, ĝi laboras
kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX.
[2] Tio povas okazi ekzemple, se vi invokas
diff --git a/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf b/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf
index 37435c7816a..38d1972bcb5 100644
--- a/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf
+++ b/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx b/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx
index 7d52ab4e3a4..0bd831f90db 100644
--- a/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx
+++ b/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx
@@ -1,49 +1,71 @@
-% \iffalse meta-comment -*- coding: iso-8859-1 -*-
+% \iffalse meta-comment -*- coding: utf-8 -*-
%<*package|driver>
-%% (C) 2006 Paul Ebermann (Hauptautor)
+%% (C) 2006, 2009 Paul Ebermann (Hauptautor)
%% (C) 2006 Rolf Niepraschk (einiges an Code gespendet)
%%
%% Package dateiliste - Zur Ausgabe der Liste der Dateien im Dokument.
%%
-%% Die Datei dateiliste.dtx sowie die dazugehrige
+%% Die Datei dateiliste.dtx sowie die dazugehörige
%% dateiliste.ins sowie die damit generierte
%% dateiliste.sty stehen unter der
%% "LaTeX Project Public License" (LPPL, zu finden
%% unter http://www.latex-project.org/lppl/, sowie
%% auch in den meisten TeX-Distributionen in
%% texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
-%% spter (nach Wahl des Verwenders).
+%% später (nach Wahl des Verwenders).
%%
%% Der 'maintenance-status' ist (zur Zeit) 'maintained'.
%%
-%% Das heit in etwa, die Dateien drfen frei vertrieben werden,
-%% bei nderungen (durch andere Personen als Paul Ebermann)
-%% ist aber der Name der Datei zu ndern.
+%% Das heißt in etwa, die Dateien dürfen frei vertrieben werden,
+%% bei Änderungen (durch andere Personen als Paul Ebermann)
+%% ist aber der Name der Datei zu ändern.
%</package|driver>
% \fi
%
+% \ProvideFileInfos{$Id: dateiliste.dtx 47 2009-11-04 13:22:29Z epaul $}
+% {Dokumentation fuer dateiliste.sty }
+%
% \iffalse
%<*driver>
\documentclass[draft%
- ]
+ ]%
{ltxdoc}
-\usepackage{pauldoc}[2006/04/03]
-\usepackage{dateiliste}
+%\PassOptionsToPackage{utf8}{inputenc}
+\usepackage[utf8]{pauldoc}[2009/11/03]
+
+% dox liefert uns die Möglichkeit, Package-Optionen als
+% solche zu dokumentieren.
+\usepackage{dox}[2009/09/28]
+\doxitem{Option}{option}{Optionen}
+
+\usepackage[showpages, svn]{dateiliste}
\usepackage{enumerate}
+\begin{filecontents}{test_datei}
+% Dies ist nur ein Test.
+\ProvidesFile{test_datei.tex}[2006/09/19 v0.0 Eine \csname @secondoftwo\expandafter\endcsname\string\%-$-Beis^p_iel-3-&-Datei ##$
+mit \string{Test\string} und noch einer Gruppe. ]
+\end{filecontents}
+\errorcontextlines=20
\listfiles
+%\input{test_datei}
+%\inputencoding{utf8}
\begin{document}
+ \input{test_datei.tex}
\DocInput{dateiliste.dtx}
+\errorcontextlines=20
+\tracingmacros=2
+\tracingcommands=2
\end{document}
%</driver>
%
%<readme|en>This README is for version:
%<eo>Tiu README (legumin) estas por versio:
-%<de>Dieses README ist fr Version:
+%<de>Dieses README ist für Version:
%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01]
%<package>\ProvidesPackage{dateiliste}[%
%
%
-%<package|readme|en|de|eo> 2006/07/27 v0.3 %
+%<package|readme|en|de|eo> 2009/11/04 v0.5 %
%
%
%<package> Ausgabe der Dateiliste (PE)]
@@ -85,15 +107,18 @@ useful.
(1) automatic version infos:
- If you have your LaTeX source files in a CVS,
- you may use the ID tag to generate the date and
- version number for the version string in \listfiles.
+ If you use a version control system like RCS, CVS, Subversion
+ for your LaTeX source files, you may use the Id tag to generate
+ the date and version number for the version string in \listfiles.
Use
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {short description}
+ \ProvideFileInfos{$<>Id$}{short description}
- in your file, and do a CVS commit.
+ (without '<>' [0]) in your file, and do a 'cvs commit' (or
+ 'svn commit'). In the svn case, use the package-option 'svn'
+ (or 'subversion') to indicate the parsing format to the
+ package, and tell Subversion to expand Id:
+ svn propset svn:keywords Id <filename>
(2) include main file:
@@ -145,6 +170,11 @@ useful.
\descriptionName - table header "description"
-----
+[0] The <> are inserted here to avoid Subversion
+ expanding this line. If someone has an idea how
+ to have this in plain format in the README (maybe
+ with some complicated magic in the .dtx and/or .ins),
+ please contact me.
[1] this determination can be configured with
the package options
nocat12 - does only work with eTeX, else
@@ -165,17 +195,18 @@ useful.
%</readme>
%<*de|readme>
LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument
+und verwandte Funktionen.
Autor: Paul Ebermann (Paul-Ebermann@gmx.de).
-Lizenz: LPPL 1.3b oder spter, mit Maintenance-Status
+Lizenz: LPPL 1.3b oder später, mit Maintenance-Status
"author-maintained". Siehe http://www.latex-project.org/lppl/.
-Geschrieben fr den eigenen Gebrauch
+Geschrieben für den eigenen Gebrauch
(-> http://www.math.hu-berlin.de/~ebermann/alg-script/),
-aber vielleicht ist es auch fr andere von Nutzen.
+aber vielleicht ist es auch für andere von Nutzen.
Zum Setzen der Dokumentation wird das Paket 'pauldoc'
-(vom selben Autor) bentigt.
+(vom selben Autor) benötigt.
Das Paket kommt als .dtx + .ins.
Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und
@@ -189,72 +220,79 @@ Zur Verwendung siehe dateiliste.pdf.
%</de|readme>
%<*readme>
----------------
-[eo-h]
+[eo]
%</readme>
%<*eo|readme>
-LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand,
-kiu antaue elprovas, chu la nomo jam ekzistas.
+LaTeX-pakaĵo 'dateiliste' - Variaĵo de \DeclareRobustCommand,
+kiu antaŭe elprovas, ĉu la nomo jam ekzistas.
-Autoro: Paulo Ebermann (Paul-Ebermann@gmx.de).
+Aŭtoro: Paŭlo Ebermann (Paul-Ebermann@gmx.de).
Licenzo: LPPL 1.3, 'author-maintained'
(-> http://www.latex-project.org/lppl/).
-Kreitaj por propra uzo, sed eble iom de ghi ankau
+Kreitaj por propra uzo, sed eble iom de ĝi ankaŭ
uzeblas por aliaj.
-La dokumentaro (escepte tiu chi dosiero) estas nur en la germana
+La dokumentaro (escepte tiu ĉi dosiero) estas nur en la germana
lingvo.
-La pakajho bezonas la pakajhojn 'ltxtable', 'longtable',
+La pakaĵo bezonas la pakaĵojn 'ltxtable', 'longtable',
'tabularx' kaj 'rcsinfo'.
-Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro).
+Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama aŭtoro).
-La pakajho venas en .dtx + .ins.
+La pakaĵo venas en .dtx + .ins.
Voku "latex dateiliste.ins" por krei la .sty-dosieron (kaj
-eble meti ghin al texmf/tex/latex/paul/, se via docstrip estis
-konfigurita laue), voku "latex dateiliste.dtx" por rekrei
+eble meti ĝin al texmf/tex/latex/paul/, se via docstrip estis
+konfigurita laŭe), voku "latex dateiliste.dtx" por rekrei
la dokumentaron.
Uzado
-------
-La pakajho konsistas el tri chefaj bonajhoj, kiujn
+La pakaĵo konsistas el tri ĉefaj bonaĵoj, kiujn
oni povas uzi sendepende, sed kune ili estas speciale
utile.
-(1) automataj versio-informoj.
+(1) Aŭtomataj versio-informoj.
- Se via LaTeX-dosieroj estas ene de CVS, vi povas
- uzi tion por automate generi la daton kaj
- versi-numeron por la listo kreita de \listfiles
+ Se vi uzas versio-kontrolan sistemon kiel Subversion aŭ
+ CVS/RCS, vi povas uzi tion por aŭtomate generi la daton
+ kaj versi-numeron por la listo kreita de \listfiles
(kaj la listo de (3).)
Uzu
- \ProvideFileInfos{$Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $}
- {mallonga priskribo}
+ \ProvideFileInfos{$<>Id$}{mallonga priskribo}
- en via dosiero, kaj faru 'cvs commit'. (CVS enmetos
- informojn, kiun \ProvideFileInfos uzas.)
+ en via dosiero, forprenu la '<>', kaj faru 'svn commit' aŭ
+ 'cvs commit'. (CVS aŭ SVN tiam enmetos informojn, kiun
+ \ProvideFileInfos uzos.)
+ En la Subversion-kazo necesas antaŭe informi Subversion
+ pri tio, ke vi volas anstataŭi 'Id' per alia afero:
+ svn propset svn:keywords Id <dosiernomo>
+ Ankaŭ necesas uzi la pakaĵ-opcion 'svn' aŭ 'subversion',
+ kiel tie:
+ \usepackage[svn]{dateiliste}
+
-(2) aldono de chefa dosiero
+(2) Aldono de ĉefa dosiero
- Kutime la chefa dosiero (kiun vi donis en la
+ Kutime la ĉefa dosiero (kiun vi donis en la
latex-voko) ne aperas en la listo kreita de
- \listfiles. Tiun la pakajho shanghas, se tiu
- dosiero havas la nomfinajhon .tex
+ \listfiles. Tion la pakaĵo ŝanĝas, se tiu
+ dosiero havas la nomfinaĵon .tex
- (Pli precize, la pakajho aldonas '\jobname.tex',
+ (Pli precize, la pakaĵo aldonas '\jobname.tex',
se tiu dosiero ekzistas, kaj se ne eblas eltrovi[1],
ke la dosiero estas jam en la listo[2].)
- Tiu aldonado estas kutime shaltita, sed eblas
- malshalti ghin per la pakajh-opcio 'noaddmain'.
- Tiam ankau eblas voki
+ Tiu aldonado estas kutime ŝaltita, sed eblas
+ malŝalti ĝin per la pakaĵ-opcio 'noaddmain'.
+ Tiam ankaŭ eblas voki
\mainFileToList
por fari tion.
-(3) enmetu la dosierliston en la rezulton
+(3) Enmetu la dosierliston en la rezulton
Vi povas uzi la komandon
@@ -266,21 +304,21 @@ utile.
opcia argumento) en la dokumenton.
Vi krome devas uzi \listfiles en la komenca
- parto de la dokumento (antau \begin{document}),
- alikaze vi nur ricevos erarmesaghon.
+ parto de la dokumento (antaŭ \begin{document}),
+ alikaze vi nur ricevos erarmesaĝon.
La tabelo nur aperos ekde la dua LaTeX-voko, kaj
- eble bezonos kelkajn pliajn por aspekti ghuste.
+ eble bezonos kelkajn pliajn por aspekti ĝuste.
- Eblas traduki la titolon de la sekcio, la antautekston
- kaj la tabelkapoj helpe de la babel-pakajho - tradukojn
- por 'english', 'german', 'ngerman' kaj 'esperanto' estas
- la pakajho jam enhavas.
- Se vi bezonas aliajn lingvojn au ne uzas 'babel',
+ Eblas traduki la titolon de la sekcio, la antaŭtekston
+ kaj la tabelkapoj helpe de la babel-pakaĵo - tradukojn
+ por 'english', 'german', 'ngerman' kaj 'esperanto' la
+ pakaĵo jam enhavas.
+ Se vi bezonas aliajn lingvojn aŭ ne uzas 'babel',
redifinu la sekvajn makroojn:
\fileListName - titolo ("Listo de dosieroj")
- \fileListPreamble - antauteksto (printita inter titolo
+ \fileListPreamble - antaŭteksto (printita inter titolo
kaj tabelo)
\fileNameName - tabelkapo "dosiernomo"
\dateName - tabelkapo "dato"
@@ -289,12 +327,12 @@ utile.
-----
[1] Tiun determinadon vi povas konfiguri per la
- pakajh-opcioj:
+ pakaĵ-opcioj:
nocat12 - nur funkcias se vi uzas eTeX, alikaze
eble la cxef-dosiero aperos dufoje.
- cat12 - funkcias kun aux sen eTeX, koncertante
+ cat12 - funkcias kun aŭ sen eTeX, konvertante
la enhavon de \@filelist al kategorio 12.
- Se vi neniun de tiuj opcioj donas, gxi laboras
+ Se vi neniun de tiuj opcioj donas, ĝi laboras
kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX.
[2] Tio povas okazi ekzemple, se vi invokas
@@ -305,31 +343,34 @@ utile.
% \CheckSum{0}
%
% \changes{v0.0}{2006/03/23}{Erste Fassung}
-% \changes{v0.1a}{2006/04/05}{Kleine nderungen der Dokumentation.}
+% \changes{v0.1a}{2006/04/05}{Kleine Änderungen der Dokumentation.}
% \changes{v0.2}{2006/04/19}{README-Dateien werden jetzt auch aus
% der .dtx-Datei generiert.}
+% \changes{v0.5}{2009/11/01}{Umstellung der Dokumentation auf Unicode.}
%
% \GetFileInfo{dateiliste.sty}
%
%
% \title{Das \pack{dateiliste}-Package -- Liste der verwendeten Dateien im Dokument\thanks{%
-% Dieses Dokument gehrt zu \pack{dateiliste}~\fileversion,
+% Dieses Dokument gehört zu \pack{dateiliste}~\fileversion,
% vom~\filedate.}}
% \author{Paul Ebermann\thanks{E-Mail: \texttt{Paul-Ebermann@gmx.de}}
% \thanks{Rolf Niepraschk (\texttt{Rolf.Niepraschk@ptb.de})
% hat das Package \pack{printfilelist}
-% geschrieben und mir geschickt, dessen Code bildete die Basis
-% fr \cs{printFileList}. Fr den jetztigen Code
+% geschrieben und mir geschickt, dessen Code bildete
+% die Basis
+% für \cs{printFileList}. Für den jetztigen Code
% (insbesondere dessen Fehler) bin ich (Paul) aber
% selbst verantwortlich.}}
%
% \maketitle
%
% \begin{abstract}
-% Dieses Paket implementiert einige Befehle, um den
-% berblick ber Versionen und nderungsdaten von \LaTeX-Quelltexten
-% zu behalten: Automatische Versionsinfos aus dem CVS, Hauptdatei
-% in der Dateiliste, Inklusion der Dateiliste im Dokument.
+% Dieses Paket implementiert einige Befehle, um den
+% Überblick über Versionen und Änderungsdaten von \LaTeX-Quelltexten
+% zu behalten: Automatische Versionsinfos aus dem Versionskontrollsystem
+% (CVS/RCS oder Subversion), Hauptdatei in der Dateiliste,
+% Inklusion der Dateiliste als Tabelle im Dokument.
% \end{abstract}
%
% \tableofcontents
@@ -337,110 +378,171 @@ utile.
%
% \section{Benutzerdokumentation der Befehle}
%
-% Die drei Teile \emph{automatische Versionsinfos} (mittels '\ProvideFileInfos'),
-% \emph{Hauptdatei in der Dateiliste} (mittels '\mainFileToList' bzw. der Package-Option)
-% und \emph{Dateilisten-Ausgabe} (mittels 'printFileList') sind unabhngig voneinander
-% nutzbar, aber die ersten beiden Features werden durch das letzte erst richtig ntzlich,
-% und damit das letzte eine vernnftige Ausgabe hat, sind die ersten beiden hilfreich.
+% Die drei Teile \emph{automatische Versionsinfos} (mittels
+% '\ProvideFileInfos'), \emph{Hauptdatei in der Dateiliste}
+% (mittels '\mainFileToList' bzw. der 'addmain'-Package-Option)
+% und \emph{Dateilisten-Ausgabe} (mittels 'printFileList')
+% sind unabhängig voneinander nutzbar, aber die ersten beiden
+% Features werden durch das letzte erst richtig nützlich,
+% und damit das letzte eine vernünftige Ausgabe hat, sind
+% die ersten beiden hilfreich.
% Daher also alles in einem Package.
%
% \subsection{README in Englisch, Deutsch und Esperanto}
%
-% Eine README-Datei mit einer Kurzbersicht des Paketes auf
-% Englisch, Deutsch und Esperanto kann ebenfalls mit docstrip
+% Eine README-Datei mit einer Kurzübersicht des Paketes auf
+% Englisch, Deutsch und Esperanto (sowie einzel-Dateien für
+% diese Sprachen) kann ebenfalls mit \pack{docstrip}
% aus der dtx-Datei generiert werden, die beiliegende Datei
% 'dateiliste.ins' tut dies neben der Generierung der
% '.sty'-Datei.
%
% \subsection{Automatische Versionsinfos}
%
+%
% \noindent\DescribeMacro{\ProvideFileInfos}\marg{id-string}\marg{kurzbeschreibung}
%
-% ndert die Informationen fr die Datei, in der es aufgerufen wurde.
-% \meta{id-string} sollte ein String sein, der wie
-%\begin{verbatim}
-% $Id: dateiliste.dtx,v 2.1 2006/07/27 10:39:02 epaul Exp $
-%\end{verbatim}
-% (Beispiel fr diese Datei) aussieht.
-% Diesen lsst man am besten von seinem CVS produzieren, schreibt also etwas wie
-%\begin{quote}
-% '\ProvideFileInfos{$''Id:$}{Algebraische Geometrie I}'
-%\end{quote}
-% in seine Datei und macht dann ein 'cvs commit' -- dadurch werden von CVS die
-% passenden Informationen eingefllt.
+% Ändert die Informationen für die Datei, in der es aufgerufen
+% wurde (bzw. fügt neue hinzu).
%
% \meta{kurzbeschreibung} sollte eine kurze Beschreibung der Funktion/des
% Inhaltes der Datei sein, optimalerweise nur ASCII-Zeichen.
%
-% Das Makro sorgt dann dafr, dass in der durch '\listfiles' sowie
-% auch der durch '\printFileList' (siehe Abschnitt \ref{describe:printfilelist})
+% \meta{id-string} sollte ein String sein, der (im RCS-Modus) wie
+% \begin{quote}
+% '$''Id: dateiliste.dtx,v 4.1 2009/10/31 19:58:13 epaul Exp $'
+% \end{quote}
+% oder (im Subversion-Modus) wie
+% \begin{quote}
+% '$Id: dateiliste.dtx 47 2009-11-04 13:22:29Z epaul $'
+% \end{quote}
+% aussieht. Diesen lässt man am besten von seinem Versionskontrollsystem
+% produzieren -- dieses Paket unterstützt die Syntax von
+% RCS und CVS (RCS-Modus) sowie die Syntax von Subversion (svn).
+%
+% Der Modus kann durch Paket-Optionen ausgewählt werden:
+% \begin{itemize}
+% \item \DescribeOption{rcs}\DescribeOption{cvs}
+% Die Option 'rcs' oder 'cvs' wählt den RCS-Modus aus, in dem
+% das Datum mit '/' getrennt wird, der Dateiname von ',v' gefolgt
+% wird, am Ende ein Status gezeigt wird (meist 'Exp'), und die
+% Versionsnommer eine mit '.' getrennte Zahlenfolge ist. (Es kann
+% außerdem noch der Nutzername desjenigen enthalten sein, der eine
+% Sperre auf diese Datei hält.)
+% \item \DescribeOption{subversion}\DescribeOption{svn}
+% Die Option 'svn' oder 'subversion' wählt den Subversion-Modus
+% aus, in dem der Dateiname ohne Zusatz auftaucht, Datum und Uhrzeit
+% im ISO-8601-Format mit Zeitzonenanzeiger 'Z' dargestellt werden,
+% und die Versionsnummer nur eine Zahl ist.
+% \end{itemize}
+%
+% Aus Kompatibilitätsgründen zu früheren Versionen
+% dieses Paketes (vor 0.5) ist der Default-Modus (d.h. wenn keine
+% dieser Optionen angegeben wurde) 'rcs'.
+%
+% Wir schreiben also etwas wie
+%\begin{quote}
+% '\ProvideFileInfos{$''Id$}{Algebraische Geometrie I}'
+%\end{quote}
+% in unsere Datei (üblicherweise ziemlich am Anfang) und rufen dann
+% 'cvs commit' bzw. 'svn commit' auf -- dadurch werden von CVS bzw.
+% Subversion die passenden Informationen in unsere Arbeitskopie
+% eingefüllt. (Bei Subversion muss vorher
+% die Keyword-Ersetzung eingeschaltet werden, etwa mit
+% \begin{quote}
+% 'svn propset svn:keywords Id '\meta{dateiname},
+% \end{quote}
+% bei CVS muss man nur darauf achten, sie nicht abzuschalten.)
+% Analoges geschieht auch beim Checkout.
+%
+% Das Makro sorgt dann dafür, dass in der durch '\listfiles' sowie
+% auch der durch '\printFileList' (siehe Abschnitt
+% \ref{describe:printfilelist})
% erzeugten Liste die richtigen Daten (d.h. das Commit-Datum und die
-% RCS/CVS-Versionsnummer) stehen.
+% RCS/CVS/SVN-Versionsnummer) stehen.
+%
+% Dies ist besonders nützlich, wenn man ein Dokument hat, welches
+% sich aus mehreren Quelltextdateien zusammensetzt, welche üblicherweise
+% dann auch nicht immer gleichzeitig bearbeitet werden.
+%
+% \subsection{Hauptdatei in der Dateiliste}
%
-% \subsection{Hauptdatei in der Dateiliste, Package-Optionen}
% \DescribeMacro{\mainFileToList}
-% Fgt die Haupt-Datei (\meta{jobname}'.tex') am Anfang der Dateiliste ein,
-% falls sie existiert. Zuvor wird versucht, ein etwaiges Vorkommen dieses
-% Namens in der Liste aus dieser zu entfernen.
-% (Ein solches Vorkommen kann nur dann sein, wenn die Haupt-Datei mit '\input{...}'
-% geladen wurde, anstatt einfach so den Namen auf der Kommandozeile anzugeben, oder
-% wenn die Hauptdatei sich selbst noch einmal einliest.)
-%
-% Die interne Funktionsweise (und damit etwaige Nebenwirkungen) \DescribeMacro{cat12}
-% hngt davon ab, ob eine der
-% Package-Optionen 'cat12' oder 'nocat12' \DescribeMacro{nocat12} gegeben wurde:
+% Fügt die Haupt-Datei (\meta{jobname}'.tex') am Anfang der Dateiliste
+% ein, falls sie existiert. Zuvor wird versucht, ein etwaiges Vorkommen
+% dieses Namens in der Liste aus dieser zu entfernen.
+% (Ein solches Vorkommen kann nur dann sein, wenn die Haupt-Datei mit
+% '\input{...}' geladen wurde, anstatt einfach so den Namen auf der
+% Kommandozeile anzugeben, oder wenn die Hauptdatei sich selbst noch
+% einmal einliest, wie in diesem Dokument.)
+%
+% \DescribeOption{cat12}
+% Die interne Funktionsweise (und damit etwaige Nebenwirkungen)
+% hängt davon ab, ob eine der
+% Package-Optionen 'cat12' oder 'nocat12' \DescribeOption{nocat12}
+% gegeben wurde:
% \begin{itemize}
% \item Mit Option 'cat12' wird die interne Liste der geladenen Dateien
-% in Kategorie-12-Zeichen (d.h. other) umgewandelt, um den eventuell dort
-% schon vorhandenen Namen der Hauptdatei zu lschen. Dies kann Nebenwirkungen
-% auf andere Pakete haben, wenn diese ebenfalls diese Liste verarbeiten
-% und dabei auf die Kategorien der Zeichen angewiesen sind.
-% \item Mit Option 'nocat12' funktioniert es bei Verwendung von \eTeX\ auch ohne
-% die eben geschilderte Umwandlung, bei \TeX\ ist das nicht mglich und
-% es wird einfach so der Dateiname eingefgt -- mit dem Effekt, dass er eventuell
-% doppelt auftaucht.
-% \item Ohne diese Optionen wird bei Verwendung von \eTeX\ die nebenwirkungsfreie
-% Variante, ohne \eTeX\ die Kategorie-12-Variante gewhlt.
+% in Kategorie-12-Zeichen (d.h. other) umgewandelt, um den eventuell
+% dort schon vorhandenen Namen der Hauptdatei zu löschen. Dies kann
+% Nebenwirkungen auf andere Pakete haben, wenn diese ebenfalls diese
+% Liste verarbeiten und dabei auf die Kategorien der Zeichen
+% angewiesen sind.
+% \item Mit Option 'nocat12' funktioniert es bei Verwendung von \eTeX\
+% auch ohne die eben geschilderte Umwandlung, bei \TeX\ ist das nicht
+% möglich und es wird einfach so der Dateiname eingefügt -- mit dem
+% Effekt, dass er eventuell doppelt auftaucht.
+% \item Ohne diese Optionen wird bei Verwendung von \eTeX\ die
+% nebenwirkungsfreie Variante, ohne \eTeX\ die Kategorie-12-Variante
+% gewählt.
% \end{itemize}
% Details dazu sind im Implementationsteil nachzulesen.
%
% Dieses Makro wird automatisch am Ende des
-% Dokumentes ausgefhrt, falls nicht die Package-Option 'noaddmain'
-% \DescribeMacro{noaddmain} gesetzt wurde.
-% Mit 'addmain' \DescribeMacro{addmain} kann das Vorgabe-Verhalten erzwungen werden.
+% Dokumentes ausgeführt, falls nicht die Package-Option 'noaddmain'
+% \DescribeOption{noaddmain} gesetzt wurde.
+% Mit 'addmain' \DescribeOption{addmain} kann das Vorgabe-Verhalten
+% erzwungen werden.
%
% \subsection{Dateilisten-Ausgabe}\label{describe:printfilelist}
% \noindent\DescribeMacro{\printFileList}\oarg{gliederung}
%
-% Fgt an der aktuellen Stelle eine Liste der im aktuellen Dokument
+% Fügt an der aktuellen Stelle eine Liste der im aktuellen Dokument
% verwendeten Dateien (ohne die Haupt-Datei) ein.
% \meta{gliederung} ist ein Gliederungsbefehl (wie '\section',
-% '\chapter' etc., Vorgabewert ist '\section*' (fr einen
+% '\chapter' etc., Vorgabewert ist '\section*' (für einen
% unnummerierten Abschnitt).
%
-% Damit eine Liste ausgegeben wird, muss in der Prambel des Dokumentes
+% Damit eine Liste ausgegeben wird, muss in der Präambel des Dokumentes
% ein '\listfiles' auftauchen. (Andernfalls gibt '\printFileList' nur
% eine Warnung auf der Konsole aus und tut sonst nichts.)
%
% Die Liste selbst ist erst ab dem zweiten \LaTeX-Lauf im Dokument zu
-% sehen (und enthlt ab dem dritten Lauf dann auch die Dateilisten-Datei).
+% sehen (und enthält ab dem dritten Lauf dann auch die Dateilisten-Datei).
%
-% Die Liste wird als 4-spaltige Tabelle gesetzt.
+% \DescribeOption{showpages}\DescribeOption{noshowpages}
+% Die Liste wird als 4- oder 5-spaltige Tabelle gesetzt: Falls die
+% Option 'showpages' übergeben wurde, ist auch die Seitennummer, die
+% zum Ladezeitpunkt der Datei aktuell war, enthalten ($0$ für alle
+% Dateien, die in der Präambel geladen wurden), mit 'noshowpages'
+% fehlt diese Spalte. ('showpages' ist der Vorgabewert.)
%
%
% Falls das Paket \pack{babel} vor oder nach diesem Paket geladen wird,
-% sind die Spaltenberschriften, die Gliederung sowie die Prambel auch
-% bersetzbar -- zur Zeit werden von diesem Paket die Sprachoptionen 'english',
-% 'german', 'ngerman' und 'esperanto' untersttzt.
+% sind die Spaltenüberschriften, die Gliederung sowie die Präambel auch
+% übersetzbar -- zur Zeit werden von diesem Paket die Sprachoptionen
+% 'english', 'german', 'ngerman' und 'esperanto' unterstützt. Wer weitere
+% Übersetzungen beisteuern will, melde sich bei mir.
%
% Ansonsten \DescribeMacro{\fileListName}\DescribeMacro{\fileListPreamble}
-% \DescribeMacro{\fileNameName}\DescribeMacro{\dateName}\DescribeMacro{\verName}
-% \DescribeMacro{\descriptionName} kann durch Neudefinition der Befehle
-% '\fileListName' (berschrift), '\fileListPreamble' (einleitender Text,
-% normalerweise mit Funote),
-% sowie '\fileNameName', '\dateName', '\verName' und '\descriptionName' (Tabellenkopf)
-% der Inhalt der statischen Texte verndert werden. (Auch das wirkt sich
-% erst im folgenden \LaTeX-Lauf aus.)
+% \DescribeMacro{\fileNameName}\DescribeMacro{\dateName}
+% \DescribeMacro{\verName}\DescribeMacro{\descriptionName} kann
+% durch Neudefinition der Befehle
+% '\fileListName' (Überschrift), '\fileListPreamble' (einleitender Text,
+% normalerweise mit Fußnote),
+% sowie '\fileNameName', '\dateName', '\verName' und '\descriptionName'
+% (Tabellenkopf) der Inhalt der statischen Texte verändert werden.
+% (Auch das wirkt sich erst im folgenden \LaTeX-Lauf aus.)
%
% Im folgenden mal ein Beispiel aus diesem Dokument, erzeugt mit:
%\begin{verbatim}
@@ -449,23 +551,53 @@ utile.
%
% \printFileList[\subsubsection]
%
-% \subsection{Abhngigkeiten}
+% \subsection{Abhängigkeiten}
%
-% Fr die Funktion des Paketes sind die Pakete \pack{rcsinfo} (Jrgen Vollmer) und
-% \pack{ltxtable} -- damit auch \pack{tabularx}, \pack{longtable} (alle drei von
-% David Carlisle) und \pack{array} (Frank Mittelbach) -- notwendig. \pack{babel}
+% Für die Funktion des Paketes sind die Pakete \pack{rcsinfo}
+% (Jürgen Vollmer) im RCS-Modus bzw. \pack{svninfo} (Achim D. Bruckner)
+% im Subversion-Modus und \pack{ltxtable} -- damit auch \pack{tabularx},
+% \pack{longtable} (alle drei von David Carlisle) und \pack{array}
+% (Frank Mittelbach) -- notwendig. \pack{babel}
% (Johannes Braams) wird, falls ebenfalls geladen, auch genutzt.
%
-% Falls das Paket \pack{pauldoc} (von mir) ebenfalls geladen wird, werden einige spezielle
-% Anpassungen getroffen.
+% Falls das Paket \pack{pauldoc} (von mir) ebenfalls geladen wird,
+% werden einige spezielle Anpassungen getroffen.
%
-% Fr die korrekte Erkennung, dass der Name der Hauptdatei schon in der Liste der
-% geladenen Dateien auftaucht, ist der primitive \eTeX-Befehl '\scantokens' notwendig --
-% falls kein \eTeX\ verwendet wird, kann eine nicht-Erkennung (und damit am Ende das
-% doppelte Auftauchen der Haupt-Datei) vorkommen.
+% Für das Setzen der Doku ist außerdem \pack{pauldoc} (von mir) und
+% \pack{dox} (von Didier Verna) notwendig.
+%
+% Für die korrekte Erkennung, dass der Name der Hauptdatei schon in
+% der Liste der geladenen Dateien auftaucht, ist der primitive
+% \eTeX-Befehl '\scantokens' notwendig -- falls kein \eTeX\ verwendet
+% wird, kann eine nicht-Erkennung (und damit am Ende das
+% doppelte Auftauchen der Haupt-Datei) vorkommen. Details dazu bei
+% der Diskussion der Optionen 'cat12' und 'nocat12', sowie im
+% Implementations-Teil.
+%
+% \subsection{Wunschliste}
+%
+% Ein paar Ideen, die ich gerne mal umsetzen möchte, aber noch nicht dazu
+% gekommen bin:
+%
+% \begin{itemize}
+% \item eine Option, um die Datumsdarstellung in der Dateiliste auf
+% das ISO-Format (YYYY-MM-DD) umzustellen.
+% \item eine Option, um das 'v' in den Versionsnummern wegzulassen.
+% \item eine Möglichkeit, doppelt geladene Dateien in der Liste nicht
+% doppelt aufzuführen. (Das kann etwa passieren, wenn man mitten im
+% Dokument die Eingabe-Kodierung wechselt.)
+% \item eine Möglichkeit, die Liste zu filtern, und z.B. nur '.tex'-Dateien
+% aufzunehmen. Das könnte z.B. nützlich sein, wenn man nur die
+% "`Inhalts-Dateien"' eines zusammengesetzen Dokumentes aufführen will,
+% nicht aber alle verwendeten Package-Dateien.
+% \item Falls eine Versionsnummer fehlt, sollte das erkannt werden, und
+% die Spalte leergelassen werden, anstatt den Beschreibungs-Text in die
+% Versionsspalte zu setzen.
+% \end{itemize}
%
% \StopEventually{\PrintChanges\PrintIndex}
%
+% \makeatother
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -481,6 +613,7 @@ utile.
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
+% \makeatletter
%
% \DoNotIndex{\',\@currname,\^,\begin,\end,\begingroup,\endgroup,
% \csname,\endcsname,\day,\def,\DeclareOption,\do,
@@ -490,6 +623,11 @@ utile.
% \protect,\relax,\renewcommand,\space,\string,\textbf,
% \the,\two@digits,\u,\write,\xdef,\year}
%
+% ^^A damit Seitennummern und Zeilennummern im
+% ^^A Index nicht durcheinanderkommen.
+%
+% \setcounter{CodelineNo}{99}
+%
% \section{Implementation}
%
% \begin{macrocode}
@@ -497,8 +635,11 @@ utile.
% \end{macrocode}
%
% \subsection{Optionen}
-% \changes{v0.1}{2006/04/02}{Optionen \texttt{addmain} und \texttt{noaddmain} hinzugefgt.}
-% Wir merken uns die ausgewhlte Option in einem '\if'.
+% \changes{v0.1}{2006/04/02}{Optionen \texttt{addmain} und \texttt{noaddmain} hinzugefügt.}
+% \begin{option}{addmain}
+% \begin{option}{noaddmain}
+% \begin{macro}{\if@dateiliste@addMain}
+% Wir merken uns die ausgewählte Option in einem '\if'.
% \begin{macrocode}
\newif\if@dateiliste@addMain
\DeclareOption{addmain} {%
@@ -508,9 +649,18 @@ utile.
\@dateiliste@addMainfalse
}
% \end{macrocode}
-%
-% \changes{v0.2}{2006/04/19}{Optionen 'cat12' und 'nocat12' hinzugefgt.}
-% Das gleiche gilt fr 'cat12'/'nocat12'.
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{cat12}
+% \begin{option}{nocat12}
+% \begin{macro}{\if@dateiliste@catxii}
+% \begin{macro}{\if@dateiliste@nocatxii}
+% \changes{v0.2}{2006/04/19}{Optionen 'cat12' und 'nocat12' hinzugefügt.}
+% Das gleiche gilt für 'cat12'/'nocat12' -- allerdings haben wir hier
+% zwei '\if's, da es auch noch die Möglichkeit gibt, keine der beiden
+% Optionen auszuwählen.
% \begin{macrocode}
\newif\if@dateiliste@catxii \@dateiliste@catxiifalse
\newif\if@dateiliste@nocatxii \@dateiliste@nocatxiifalse
@@ -521,21 +671,187 @@ utile.
\@dateiliste@nocatxiitrue
}
% \end{macrocode}
-% Die Standard-Option ist 'addmain'.
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \begin{option}{showpages}
+% \begin{option}{noshowpages}
+% \begin{macro}{\if@dateiliste@showpages}
+% Eine weiteres Optionspaar betrifft die Anzeige der Seitennummern
+% in der Dateiliste.
+% \begin{macrocode}
+\newif\if@dateiliste@showpages \@dateiliste@showpagesfalse
+\DeclareOption{showpages} {%
+ \@dateiliste@showpagestrue
+}
+\DeclareOption{noshowpages} {%
+ \@dateiliste@showpagesfalse
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \changes{v0.5}{2009/10/31}{Optionen für Subversion-Unterstützung}
+% \begin{option}{svn}
+% \begin{option}{subversion}
+% \begin{option}{rcs}
+% \begin{option}{cvs}
+% \begin{macro}{\if@dateiliste@subversion}
+% Das vierte Optionspaar: 'svn' (mit Alias 'subversion') für
+% Subversion-'Id's, 'rcs' (mit Alias 'cvs') für CVS/RCS-'Id's.
+% Diese unterscheiden sich vor allem im Format der Datumsangaben.
+% (Hier merken wir uns nur die Optionen, die Arbeit geschieht in
+% Abschnitt \ref{versionsnummern}.
+% \begin{macrocode}
+\newif\if@dateiliste@subversion \@dateiliste@subversionfalse
+\DeclareOption{svn} {%
+ \@dateiliste@subversiontrue
+}
+\DeclareOption{subversion} {%
+ \@dateiliste@subversiontrue
+}
+\DeclareOption{cvs} {%
+ \@dateiliste@subversionfalse
+}
+\DeclareOption{rcs} {%
+ \@dateiliste@subversionfalse
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% Die Standard-Optionen sind 'addmain', 'showpages' und 'rcs'.
% \begin{macrocode}
\ExecuteOptions{addmain}
+\ExecuteOptions{showpages}
+\ExecuteOptions{rcs}
\ProcessOptions
% \end{macrocode}
%
+% \subsection{Seitenzahlen in die Dateiliste}
+% \label{showpages}
+% \begin{macro}{\@addtofilelist}
+% Falls nicht die Option 'noshowpages' angegeben wurde,
+% merken wir uns die Seitennummern aller eingebundenen
+% Dateien. Dazu definieren wir '\@addtofilelist' neu, um
+% neben dem Hinzufügen des Namens zur Dateiliste auch die
+% jeweilige Seitennummer in einem eigenen Makro zu merken.
+% \begin{macrocode}
+ \if@dateiliste@showpages
+ \CheckCommand*{\@addtofilelist}[1]{\xdef\@filelist{\@filelist,#1}}
+ \renewcommand*{\@addtofilelist}[1]{%
+ \expandafter\xdef%
+ \csname dateiliste@page@#1\endcsname%
+ {\thepage}%
+ \xdef\@filelist{\@filelist,#1}%
+ }
+ \fi
+% \end{macrocode}
+% \changes{v0.5}{2009/11/03}{Seitenzahlen für Präambel-Dateien jetzt 0}
+% Damit die Seitennummern für in der Präambel geladene Pakete etc.
+% alle 0 sind, setzen wir die Seitenzahl jetzt auf 0, und bei Beginn
+% des Dokumentes wieder auf 1.
+% \begin{macrocode}
+\setcounter{page}{0}
+\AtBeginDocument{\stepcounter{page}}
+% \end{macrocode}
+% \end{macro}
%
% \subsection{Aktuelle Versionsnummern in der Dateiliste}
+% \label{versionsnummern}
+% Wir wollen in der durch '\ProvideFileInfo'
+% provozierten Ausgabe automatisch sinnvolle Infos haben, mit
+% Daten, die von unserem Versionskontrollsystem eingefüllt
+% werden. Zur Zeit unterstützen wir das Format von CVS und RCS
+% (schon seit Version 0.0) und das Format von Subversion (seit
+% Version 0.5).
+%
+% \subsubsection{Subversion-Modus}
+% Die Fallunterscheidung funktioniert mit diesem '\if@...', welches
+% durch Paket-Optionen initialisiert wurde.
+% \begin{macrocode}
+\if@dateiliste@subversion
+% \end{macrocode}
+%
+% Im Subversion-Modus laden wir \pack{svninfo}.
+%
+% Wir verwenden die Parameter 'nofancy', weil sonst die Fußzeile
+% umgestellt wird, und 'notoday', weil sonst das aktuelle Datum
+% umgestellt wird. 'final' verhindert, dass die Fußzeile geändert
+% wird (wir brauchen die Infos ja nur für unsere Dateiliste).
+% \changes{v0.5}{2009/10/31}{\pack{svninfo} statt \pack{rcsinfo}, falls
+% wir im Subversion-Modus sind.}
+% \begin{macrocode}
+\RequirePackage[nofancy, notoday, final]{svninfo}[2006/05/11]
+% \end{macrocode}
+%
+% \begin{macro}{\ProvideFileInfos}\noindent\marg{id-string}\marg{kurzbeschreibung}
%
-% Zunchst wollen wir in der durch '\listfiles'
-% provozierten Ausgabe automatisch sinnvolle Infos haben. Dafr
-% laden wir das Paket \pack{rcsinfo}.
-% Wir verwenden die Parameter 'nofancy', weil sonst die Fuzeile
-% umgestellt wird, und 'notoday', weil sonst das aktuelle Datum umgestellt
-% wird.
+% \changes{v0.5}{2009/11/01}{Neuimplementation für Subversion.}
+%
+% \begin{macrocode}
+\newcommand*{\ProvideFileInfos}[2] {%
+% \end{macrocode}
+% Zunächst lassen wir '\svnInfo' den \meta{id-string} analysieren.
+% Dies definiert (unter anderem) die Makros '\svnInfoFile' (der
+% Dateiname), '\svnInfoDay', '\svnInfoMonth' und '\svnInfoYear' (Datum)
+% und '\svnInfoRevision' (die Revisionsnummer, in der die Datei das
+% letzte mal geändert wurde).
+%
+% Das Leerzeichen nach dem '#1' ist notwendig, damit '\svnInfo'
+% erkennt, wo der \meta{id-string} aufhört -- in der Definition steht
+% da nämlich ein Leerzeichen am Ende der Parameterliste.
+% \begin{macrocode}
+ \svnInfo #1 %
+% \end{macrocode}
+%
+% Dann rufen wir '\ProvidesFile' aus dem \LaTeX-Kernel auf.
+% \begin{macrocode}
+ \ProvidesFile%
+% \end{macrocode}
+% Als erster Parameter wird der Dateiname übergeben, der von '\svnInfo'
+% ermittelt wurde.
+% \begin{macrocode}
+ {\svnInfoFile}%
+% \end{macrocode}
+% Dann das, wofür wir das ganze eigentlich machen: Das Datum (im
+% Format YYYY/MM/DD, weil das von den \LaTeX-Paketen auch
+% so gemacht wird), ein Leerzeichen, dann die Versionsnummer
+% (mit einem 'v' davor). Schließlich hängen wir noch
+% \meta{kurzbeschreibung} an.
+% \begin{macrocode}
+ [\svnInfoYear/\svnInfoMonth/\svnInfoDay\space
+ v\svnInfoRevision\space #2]%
+% \end{macrocode}
+% '\ProvidesFile' definiert damit jetzt ein Makro ('\ver@'\meta{dateiname})
+% mit diesem Text als Inhalt, welches später von '\@dofilelist' (und
+% unserem '\@writefilelist') verwendet wird.
+%
+% Außer dem Versionsstring wollen wir uns (falls dies per Package-Option
+% eingeschaltet wurde) noch die Seitennummer
+% merken, bei der die Datei anfing -- das macht '\addtofilelist',
+% welches in Abschnitt \ref{showpages} definiert wurde, und von
+% '\ProvidesFile' aufgerufen wird.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{RCS-Modus}
+%
+% \begin{macrocode}
+\else% \if@dateiliste@subversion
+% \end{macrocode}
+%
+% Im RCS-Modus laden wir das Paket \pack{rcsinfo}.
+%
+% Wir verwenden die Parameter 'nofancy', weil sonst die Fußzeile
+% umgestellt wird, und 'notoday', weil sonst das aktuelle Datum
+% umgestellt wird.
% \changes{v0.1}{2006/03/30}{\pack{rcsinfo} nun mit \texttt{notoday}-Parameter.}
% \begin{macrocode}
\RequirePackage[nofancy, notoday]{rcsinfo}
@@ -547,12 +863,12 @@ utile.
% \begin{macrocode}
\newcommand*{\ProvideFileInfos}[2] {%
% \end{macrocode}
-% Zunchst lassen wir '\rcsInfo' den \meta{id-string} analysieren. Dies definiert
+% Zunächst lassen wir '\rcsInfo' den \meta{id-string} analysieren. Dies definiert
% (unter anderem) die Makros '\rcsInfoFile' (der Dateiname), '\rcsInfoDate'
% (Datum, im 'YYYY/MM/DD'-Format) und '\rcsInfoRevision' (die Versionsnummer).
%
% Das Leerzeichen nach dem '#1' ist notwendig, damit '\rcsInfo' erkennt, wo
-% der \meta{id-string} aufhrt - in der Definition steht da nmlich ein Leerzeichen
+% der \meta{id-string} aufhört - in der Definition steht da nämlich ein Leerzeichen
% am Ende der Parameterliste.
% \begin{macrocode}
\rcsInfo #1 %
@@ -561,39 +877,43 @@ utile.
% \begin{macrocode}
\ProvidesFile%
% \end{macrocode}
-% Als erster Parameter wird der Dateiname bergeben, der von '\rcsInfo' ermittelt wurde.
+% Als erster Parameter wird der Dateiname übergeben, der von '\rcsInfo' ermittelt wurde.
% Mittels '\expandafter\@firstofone' entfernen wir dabei noch das von '\rcsInfo' (zumindest
% in meiner Version) eingebaute Leerzeichen am Anfang
-% (welches ja einen anderen Namen ergibt und damit verhindern wrde, dass die Information der
+% (welches ja einen anderen Namen ergibt und damit verhindern würde, dass die Information der
% richtigen Datei zugeschrieben wird).
% \begin{macrocode}
{\expandafter\@firstofone\rcsInfoFile}%
% \end{macrocode}
-% Dann das, wofr wir das ganze eigentlich machen: Das Datum, ein
-% Leerzeichen, dann die Versionsnummer (mit einem 'v' davor). Schlielich
-% hngen wir noch \meta{kurzbeschreibung} an.
+% Dann das, wofür wir das ganze eigentlich machen: Das Datum, ein
+% Leerzeichen, dann die Versionsnummer (mit einem 'v' davor). Schließlich
+% hängen wir noch \meta{kurzbeschreibung} an.
% \begin{macrocode}
[\rcsInfoDate\space v\rcsInfoRevision\space #2]%
% \end{macrocode}
% '\ProvidesFile' definiert jetzt ein Makro ('\ver@'\meta{dateiname}) mit
-% diesem Text als Inhalt, welches spter von '\@dofilelist' (und
+% diesem Text als Inhalt, welches später von '\@dofilelist' (und
% unserem '\@writefilelist') verwendet wird.
+% Außer dem Versionsstring wollen wir uns (falls dies per Package-Option
+% eingeschaltet wurde) noch die Seitennummer
+% merken, bei der die Datei anfing.
% \begin{macrocode}
}
+\fi% \if@dateiliste@subversion
% \end{macrocode}
% \end{macro}
%
% \subsection{Dateiliste}
%
% \changes{v0.1}{2006/03/31}{\pack{ltxtable} verwendet.}
-% Da die Liste ziemlich lang (lnger als eine Seite) werden kann, verwende
+% Da die Liste ziemlich lang (länger als eine Seite) werden kann, verwende
% ich \pack{longtable} statt der eingebauten (oder der von \pack{array} verbesserten)
% 'tabular'-Umgebung. Und damit
% ich in der letzten Spalte nicht die Breite fest einstellen muss, sondern
-% einfach die restliche Breite (abhngig von Seitenbreite und der Breite der
-% anderen Spalten, welche ja abhngig vom Inhalt ist) nehmen kann, lade
+% einfach die restliche Breite (abhängig von Seitenbreite und der Breite der
+% anderen Spalten, welche ja abhängig vom Inhalt ist) nehmen kann, lade
% ich \pack{ltxtable}, welches \pack{longtable} mit \pack{tabularx} kreuzt
-% (und beide Pakete auch ldt).
+% (und beide Pakete auch lädt).
%
% \begin{macrocode}
\RequirePackage{ltxtable}
@@ -606,12 +926,12 @@ utile.
% \changes{v0.1}{2006/03/31}{Neu}
% Diese beiden Macros werden vor bzw. nach dem
% Laden (und setzen) der Dateiliste aufgerufen.
-% Sie sorgen dafr, dass \verb+'+ innerhalb der Liste
+% Sie sorgen dafür, dass \verb+'+ innerhalb der Liste
% nicht mehr in den Verbatim-Mode schaltet, wie das
% von \pack{pauldoc} eingestellt wird.
% Deswegen werden sie auch nur dann so definiert, wenn
% \pack{pauldoc} geladen wurde. (Und weil '\@ifpackageloaded'
-% nur in der Prambel erlaubt ist, mssen wir die beiden
+% nur in der Präambel erlaubt ist, müssen wir die beiden
% Befehle schon zu Beginn des Dokumentes definieren, anstatt
% einfach die Abfrage dann zu machen, wenn es gebraucht
% wird.)
@@ -627,7 +947,7 @@ utile.
}%
% \end{macrocode}
% Die beiden Makros kann man sich auch selbst umdefinieren,
-% falls andere Pakete Inkompatibilitten ergeben.
+% falls andere Pakete Inkompatibilitäten ergeben.
% \end{macro}
% \end{macro}
%
@@ -637,12 +957,12 @@ utile.
% \changes{v0.1}{2006/04/02}{Fast komplett neue Implementation,
% entsprechend auch anderes Ergebnis.}
%
-% Der Vorgabewert fr \meta{gliederung} ist '\section*',
+% Der Vorgabewert für \meta{gliederung} ist '\section*',
% also ein unnummerierter Abschnitt.
% \begin{macrocode}
\newcommand*{\printFileList}[1][\section*] {% \printFileList
% \end{macrocode}
-% Zunchst berprfen wir, ob '\listfiles' in der Prambel gegeben
+% Zunächst überprüfen wir, ob '\listfiles' in der Präambel gegeben
% wurde. Dies zeigt sich darin, dass das Kommando '\dofilelist'
% definiert ist. Andernfalls gibt es eine Warnung, und wir machen
% nichts.
@@ -659,14 +979,14 @@ utile.
% \end{macrocode}
% Andernfalls beginnen wir einen neuen Abschnitt (oder ein Kapitel oder was auch immer mit
% \meta{gliederung} festgelegt wurde), mit Namen '\fileListName' und einem Label,
-% falls man mal von wo anders darauf verweisen mchte.
+% falls man mal von wo anders darauf verweisen möchte.
% Danach kommt etwas beschreibender Text in '\fileListPreamble'.
% \begin{macrocode}
#1{\fileListName}\label{sec:filelist}%
\fileListPreamble
% \end{macrocode}
% In der Datei \meta{jobname}'.filelist' befindet sich nach dem ersten
-% \LaTeX-Lauf der Inhalt der Tabelle (siehe unten). Wir berprfen zunchst,
+% \LaTeX-Lauf der Inhalt der Tabelle (siehe unten). Wir überprüfen zunächst,
% ob die Datei schon existiert.
% \begin{macrocode}
\IfFileExists{\jobname.filelist}{%
@@ -675,14 +995,14 @@ utile.
% \changes{v0.1}{2006/03/31}{Neu}
% \begin{macro}{\@addtofilelist}
% \changes{v0.1}{2006/03/31}{neu: Umdefinition.}
-% Falls ja, dann definieren wir zunchst '\@addtofilelist' um,
+% Falls ja, dann definieren wir zunächst '\@addtofilelist' um,
% da '\LTXtable' die Datei \meta{jobname}'.filelist' mehrfach einliest, wir
% aber nur einen Eintrag in der Dateiliste haben wollen.
% Wir verwenden nicht einfach '\@gobble', um in dem Fall, dass
% durch das Setzen der Datei weitere Dateien (Schriften etc.)
% geladen werden, diese doch aufzunehmen. (Wir vergleichen also
% den Dateinamen mit dem unserer Dateinamens-Datei, und rufen
-% im Fall der Nichtbereinstimmung das Original-'\@addtofilelist' auf.)
+% im Fall der Nichtübereinstimmung das Original-'\@addtofilelist' auf.)
% \begin{macrocode}
\let \dateiliste@addtofilelist = \@addtofilelist
\def\@addtofilelist####1{%
@@ -708,7 +1028,7 @@ utile.
\dateiliste@postInclude
% \end{macrocode}
% Danach stellen wir '\@addtofilelist' wieder her und
-% fgen unsere Dateilisten-Datei auch hinzu.
+% fügen unsere Dateilisten-Datei auch hinzu.
% \begin{macrocode}
\let \@addtofilelist = \dateiliste@addtofilelist
\@addtofilelist{\jobname.filelist}%
@@ -719,9 +1039,9 @@ utile.
% laufen lassen soll.
% \begin{macrocode}
{%
- \PackageWarning{dateiliste}{
+ \AtEndDocument{\PackageWarning{dateiliste}{
Run LaTeX again to include the File list.
- }%
+ }}%
}%
% \end{macrocode}
%
@@ -732,10 +1052,10 @@ utile.
% (Wir sind immer noch innerhalb von '\printFileList', das alles passiert
% also nur, wenn dieser Befehl aufgerufen wird.)
%
-% Am Ende des Dokumentes -- d.h., wenn die Dateiliste vollstndig gesammelt
+% Am Ende des Dokumentes -- d.h., wenn die Dateiliste vollständig gesammelt
% wurde -- schreiben wir sie -- mit den passenden Formatierungsanweisungen --
% in eine Datei.
-% (Das ganze in einer Gruppe, damit nichts kaputtgeht, und temporre Makros
+% (Das ganze in einer Gruppe, damit nichts kaputtgeht, und temporäre Makros
% nachher wieder freigegeben werden.)
% \begin{macrocode}
\AtEndDocument{%
@@ -752,7 +1072,7 @@ utile.
\newwrite\dateiliste@file
\immediate\openout\dateiliste@file = \jobname.filelist
% \end{macrocode}
-% Zunchst schreiben wir eine '\ProvidesFile'-Anweisung mit dem aktuellen Datum
+% Zunächst schreiben wir eine '\ProvidesFile'-Anweisung mit dem aktuellen Datum
% in die '.filelist'-Datei. (Das hat den Effekt, dass diese Datei selbst auch
% in der Liste erscheint.)
% \begin{macrocode}
@@ -765,24 +1085,33 @@ utile.
}%
% \end{macrocode}
% Die eigentliche Liste wird in einer 'longtable' gesetzt.
-% Diese soll drei linksbndig gesetzte Spalten ('l') und dann
+% Diese soll drei linksbündig gesetzte Spalten ('l') und dann
% eine mit einem Absatz ('X' -- mittels \pack{ltxtable} aus \pack{tabularx}
-% importiert), welche den restlichen Platz ausfllt, enthalten.
-% Damit die letzte Spalte linksbndig (statt Blocksatz) wird, verwenden
-% wir '>{\raggedright\arraybackslash}' als Modifikator \footnote{wie im \LaTeX-Begleiter,
+% importiert), welche den restlichen Platz ausfüllt, enthalten.
+% Damit die letzte Spalte linksbündig (statt Blocksatz) wird, verwenden
+% wir '>{\raggedright\arraybackslash}' als Modifikator.\footnote{wie im \LaTeX-Begleiter,
% zweite Auflage, Beispiel 5-3-2 vorgeschlagen.}
-% \changes{v0.3}{2006/05/10}{jetzt auch die letzte Spalte linksbndig -- das sieht
+% \changes{v0.3}{2006/05/10}{jetzt auch die letzte Spalte linksbündig -- das sieht
% besser aus.}
% \begin{macrocode}
+ \if@dateiliste@showpages
+ \def\@tempa{lrll}
+ \else
+ \def\@tempa{lll}
+ \fi
\immediate\write\dateiliste@file{%
\string\LTleft=0pt%
\string\LTright=0pt%
- \string\begin{longtable}{lll>{\string\raggedright\string\arraybackslash}X}%
+ \string\begin{longtable}{\@tempa>{%
+ \string\raggedright\string\arraybackslash}X}%
% \end{macrocode}
-% Die berschrift -- aus bersetzbaren Textteilen, siehe unten, bestehend --
+% Die Überschrift -- aus übersetzbaren Textteilen, siehe unten, bestehend --
% wiederholt sich auf jeder Seite (deswegen '\endhead' anstatt '\\').
% \begin{macrocode}
- \string\textbf{\fileNameName} &
+ \string\textbf{\fileNameName} \expandafter&%
+ \if@dateiliste@showpages
+ \string\textbf{\pageName} &
+ \fi
\string\textbf{\dateName} &
\string\textbf{\verName} &
\string\textbf{\descriptionName}
@@ -790,50 +1119,91 @@ utile.
}%
% \end{macrocode}
% Jetzt kommt die Schleife mit den einzelnen Dateien.
-% Das ist zum Groteil abgekupfert von '\@dofilelist' aus
+% Das ist zum Großteil abgekupfert von '\@dofilelist' aus
% dem \LaTeX-Kernel ('ltfiles.dtx'), welches die Liste zum
% Terminal ausgibt.
% \begin{macrocode}
\@for\@currname:=\@filelist\do{% \@for
% \end{macrocode}
-% Zunchst bestimmen wir den genauen Dateinamen -- d.h. wir hngen, falls ntig,
-% ein '.tex' an. Auerdem finden wir den zugehrigen Versions-String heraus.
+% Zunächst bestimmen wir den genauen Dateinamen -- d.h. wir hängen,
+% falls nötig, ein '.tex' an. Außerdem finden wir den zugehörigen
+% Versions-String heraus.
% \begin{macrocode}
- \filename@parse\@currname
+ \filename@parse\@currname%
\edef\dateiliste@filename{%
\filename@base.%
\ifx\filename@ext\relax tex\else\filename@ext\fi}%
- \expandafter\let\expandafter\dateiliste@fileversion
- \csname ver@\dateiliste@filename\endcsname
+ \expandafter\let\expandafter\dateiliste@fileversion%
+ \csname ver@\dateiliste@filename\endcsname%
+% \end{macrocode}
+% Das Makro '\dateiliste@page@'\meta{name} enthält die Seitennummer
+% der Datei \meta{name}. Falls es nicht definiert ist, wurde sie
+% vor dem \pack{dateiliste}-Package geladen, also vor der ersten Seite.
+% \changes{v0.5}{2009/11/03}{undefinierte Seitenzahlen auf 0 statt 1}
+% Wir merken uns das Ergebnis in '\dateiliste@filepage'.
+% \begin{macrocode}
+ \if@dateiliste@showpages
+ \@ifundefined{dateiliste@page@\@currname}
+ {%
+ \def\dateiliste@filepage{0}%
+ }{%
+ \expandafter\let\expandafter\dateiliste@filepage%
+ \csname dateiliste@page@\@currname\endcsname%
+ }%
+ \fi
% \end{macrocode}
% Jetzt schreiben wir, durch '&' getrennt, die einzelnen Felder raus.
-% Zunchst der Dateiname, \ldots
+% De facto merken wir uns zuerst alles mittels '\edef' in der Variable
+% '\dateiliste@zeile'.
+%
+% Zunächst der Dateiname (dabei durch den Filter '\dateiliste@escapeii'
+% geschickt, um z.B. '_' unschädlich zu machen), \ldots
+% \changes{v0.5}{2009/11/03}{Dateinamen werden jetzt für die Liste escaped.}
+% \begin{macrocode}
+ \edef\dateiliste@zeile{%
+ \expandafter\dateiliste@escapeii\expandafter{%
+ \dateiliste@filename
+ }
+ \space& %
+% \end{macrocode}
+% \ldots\ dann die Seitennummer (falls wir diese überhaupt anzeigen wollen)
% \begin{macrocode}
- \immediate\write\dateiliste@file{%
- \dateiliste@filename\space& %
+ \if@dateiliste@showpages
+ \dateiliste@filepage
+ \space& %
+ \fi
% \end{macrocode}
-% \ldots\ dann entweder ein "`---"' (falls kein Versions-String gegeben wurde), \dots
+% \ldots\ dann entweder ein "`---"' (falls kein Versions-String gegeben
+% wurde), \dots
% \begin{macrocode}
\ifx\dateiliste@fileversion\relax
---
\else
% \end{macrocode}
-% \ldots\ oder der Versionsstring selbst, an den ersten beiden Leerzeichen durch
-% '&' getrennt. Dafr verfttern wir das expandierte '\dateiliste@fileversion'
-% an '\dateiliste@parse@ver'. (Fr den Fall, dass da nicht genug Leerzeichen drin
-% sind, sind am Ende noch ein paar '{}' mit Leerzeichen dazwischen -- die werden
-% am Ende ja nicht ausgegeben.)
+% \ldots\ oder der Versionsstring selbst, an den ersten beiden Leerzeichen
+% durch '&' getrennt. Dafür verfüttern wir das expandierte
+% '\dateiliste@fileversion' (also den Versionsstring)
+% an '\dateiliste@parse@ver'. (Für den Fall, dass da nicht genug
+% Leerzeichen drin sind, sind am Ende noch ein paar '{}' mit Leerzeichen
+% dazwischen -- die werden ja später nicht ausgegeben.)
% \begin{macrocode}
\expandafter\dateiliste@parse@ver
- \dateiliste@fileversion{} {} {} \relax
+ \dateiliste@fileversion{} {} {} \dateiliste@parse@ver
\fi
% \end{macrocode}
% Und jetzt noch ein '\\', um die Tabellenzeile zu beenden.
% \begin{macrocode}
- \string\\}%
+ \string\\}% \edef
+% \end{macrocode}
+% Jetzt haben wir alles in '\dateiliste@zeile' gesammelt, und können
+% es gebündelt ausgeben:
+% \begin{macrocode}
+ \immediate\write\dateiliste@file{%
+ \dateiliste@zeile
+ }%
}% \@for
% \end{macrocode}
-% Nach der Schleife beenden wir die Tabelle und schlieen
+% Nach der Schleife beenden wir die Tabelle und schließen
% dann die Datei wieder.
% \begin{macrocode}
\immediate\write\dateiliste@file{\string\end{longtable}}
@@ -841,12 +1211,30 @@ utile.
}%
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\dateiliste@parse@ver}
-% \changes{v0.1}{2006/03/31}{Neu}
-% Dieses Makro nimmt zwei durch Leerzeichen getrennte Parameter, und
-% gibt sie, mit zustzlichen '&', wieder zurck.
+%
+% \begin{macro}{\dateiliste@parse@ver}\meta{datum}\textvisiblespace\meta{version}\textvisiblespace\meta{rest}'\dateiliste@parse@ver'
+%
+% \changes{v0.1}{2006/03/31}{Neu}
+% Dieses Makro nimmt zwei durch Leerzeichen getrennte Parameter, und
+% gibt sie, mit zusätzlichen '&', wieder zurück. Das letzte Stück
+% wird noch gefiltert, damit '\bla' kein Problem bildet.
+%
+% TODO: Gelegentlich fehlt die Versionsnummer. Damit dann nicht der Anfang
+% des folgenden Textes (wie 'hyperref' bei hyperref.cfg oder 'package'
+% bei pst-node.sty) erscheint, sollte noch eine Abfrage hinein, ob '##2'
+% mit 'v' oder einer Ziffer beginnt. Andernfalls sollte alles in der
+% dritten Spalte angezeigt werden. (Leider noch nicht
+% implementiert.)
+% \changes{v0.5}{2009/11/03}{Escapen des Beschreibungs-Textes.}
+%
% \begin{macrocode}
- \def\dateiliste@parse@ver##1 ##2 {##1 & ##2 & }%
+ \def\dateiliste@parse@ver##1 ##2 ##3\dateiliste@parse@ver{%
+ ##1 & ##2 &
+ % \dateiliste@general@escape{##3}{\@backslashchar}%
+ % {\string\textbackslash{}}%
+ \dateiliste@escapeii{##3}%
+ \relax
+ }%
% \end{macrocode}
% \end{macro}
% Damit ist der else-Teil und auch das ganze Makro '\printFileList' zu Ende.
@@ -855,7 +1243,289 @@ utile.
}%
% \end{macrocode}
% \end{macro}
-% \subsubsection{Anpassbare Texte und bersetzungen}
+%
+% \subsubsection{Escapen gefährlicher Makros und Zeichen}
+% \label{escape}
+%
+% Ein Problem, welches mir durch Otto Schindler und Jens Goldhammer
+% (unabhängig voneinander) mitgeteilt wurde: Enthält der Dateiname
+% oder die Kurzbeschreibung nicht direkt von LaTeX verarbeitbare Zeichen
+% (im Dateinamen sind z.B. '_', in der Kurzbeschreibung z.B.
+% Makronamen üblich), gibt es Probleme. (Offensichtlich muss man
+% bei Makronamen sich etwas anstrengen, um sie da rein zu bekommen, aber
+% es geht.)
+%
+% Wir müssen also diese Zeichen vor dem Rausschreiben ersetzen.
+%
+% Ein (nicht fertiggestellter) Ansatz ist in Abschnitt \ref{alt-ersetzung}
+% zu finden. Hier ein anderer Ansatz, der prinzipiell zu funktionieren
+% scheint.
+%
+%
+% \begin{macro}{\dateiliste@escapeii}\marg{text}
+%
+% Geht \meta{text} tokenweise durch und maskiert alles, was gefährlich
+% werden könnte.
+%
+% Zunächst übergeben wir die ganze Zeichenkette an das nächste Makro,
+% mit einigen im echten Text wohl nicht vorkommenden Begrenzern.
+% \begin{macrocode}
+\newcommand*{\dateiliste@escapeii}[1]{%
+ \dateiliste@escape@@ii#1\@nil. \@@nil\@@
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Da ein mit '#1#2' definiertes Makro (um einzelne Token abzutrennen)
+% Leerzeichen zwischen Makro-Parametern einfach verschluckt,
+% müssen wir zunächst eine Wort-Trennung vornehmen -- dafür dieses Makro.
+% \begin{macro}{\dateiliste@escape@@ii}
+% \meta{wort}\textvisiblespace\meta{rest}'\@@'
+%
+% Wir geben das erste \meta{wort} an das nächste Makro
+% ('\dateiliste@escape@ii') weiter und arbeiten dann rekursiv
+% auf \meta{rest}.
+%
+% '#2' ist das erste Token von \meta{rest} -- ist
+% das '\@@nil', so haben wir das letzte Wort erreicht, denn das
+% Leerzeichen ist jenes, das von '\dateiliste@escapeii' hinter '\@nil.'
+% eingefügt wurde. Das ist dann also unsere Abbruchbedingung, wir müssen
+% nur noch \meta{wort} abarbeiten.
+%
+% Ansonsten geben wir nach dem ersten Wort ein Leerzeichen aus
+% (ein solches hatten wir ja zwischen \meta{wort} und \meta{rest}), und
+% rufen uns selbst mit \meta{rest} auf.
+%
+% \begin{macrocode}
+\def\dateiliste@escape@@ii#1 #2#3\@@{%
+ \ifx\@@nil#2
+ % nur ein Wort, und das '\@nil' ist schon in '#1' drin.
+ \afterfi{%
+ \dateiliste@escape@ii#1\@@%
+ }%
+ \else
+ %Rekursion
+ \afterfi{%
+ \dateiliste@escape@ii#1\@nil\@@%
+ \space%
+ \dateiliste@escape@@ii#2#3\@@%
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateiliste@escapeii}\meta{token}\meta{rest}'\@@'
+%
+% Maskiert \meta{token} (per Übergabe an '\dateiliste@escapetoken'),
+% und arbeitet danach rekursiv mit \meta{rest}.
+%
+% Irgendwo in \meta{rest} taucht ein '\@nil' auf -- wenn wir bei dem
+% angekommen sind, sind wir fertig.
+%
+% Das '\@empty' ist notwendig, falls ein leerer Parameter (also '{}')
+% als '#1' übergeben wurde, da ansonsten '\@nil' mit '\else' verglichen
+% wird (und der '\else'-Teil also nicht ausgeführt wird). So wird in
+% diesem Fall '\@nil' mit '\@empty' verglichen (falsch), und der
+% else-Teil tritt ein.
+%
+% \begin{macrocode}
+\def\dateiliste@escape@ii#1#2\@@{%
+ \ifx#1\@nil
+ \@empty
+ \else
+ \afterfi{%
+ \dateiliste@escapetoken{#1}%
+ \dateiliste@escape@ii#2\@@
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateiliste@escapetoken}\marg{token}
+%
+% Dieses Makro maskiert ein einzelnes Token für
+% die Ausgabe in eine Datei und nachheriges
+% Wiedereinlesen in die Tabelle.
+%
+% \begin{macrocode}
+\newcommand*{\dateiliste@escapetoken}[1] {%
+% \end{macrocode}
+% Zunächst der Test, ob \meta{token} zufälligerweise die leere
+% Zeichenkette ist. Falls ja, vergleicht das '\ifx' nicht
+% etwa '#1' mit '\@empty', sondern '\@empty' mit '\@empty',
+% und wir machen gar nichts (weil gleich danach das '\else' kommt).
+% \begin{macrocode}
+ \ifx#1\@empty\@empty
+ \else
+% \end{macrocode}
+% Ansonsten versuchen wir herauszufinden, ob \meta{token} eine
+% Kontrollsequenz o.ä. ist -- dann verwendet '\ifcat' die Kategorie
+% 16 (das ist keine der normalen Kategorien), wie auch bei '\relax'.
+%
+% In diesem Fall geben wir '\string' und eine String-Darstellung der
+% Kontrollsequenz aus, wodurch diese nach dem Einlesen angezeigt
+% (und nicht interpretiert) wird.
+% \begin{macrocode}
+ \ifcat\noexpand\relax
+ \noexpand#1%
+ \string\string\string#1%
+ \else
+% \end{macrocode}
+% Ansonsten haben wir es mit einem einzelnen Zeichen zu tun.
+%
+% Wir überprüfen, welchen '\catcode' das Zeichen hätte, wenn
+% es jetzt eingelesen würde. Hoffentlich ist das der gleiche,
+% der auch beim Einlesen der Dateiliste eingestellt ist, und zumindest
+% für 0-9 und 14 auch die normalen Zeichen. Wenn nicht, dann hat jemand
+% schon gewaltig die Catcodes verbogen, und ist selbst schuld.
+%
+% (Es ist leider nicht wirklich möglich, die Fallunterscheidung
+% direkt danach zu machen, welchen Catcode das Zeichen nun hat, außer
+% durch Vergleiche mit anderen Zeichen -- und das setzt wieder vorraus,
+% dass diese Zeichen noch ihre Original-Codes haben.)
+%
+% \begin{macrocode}
+ \ifcase \catcode\expandafter`#1 %
+ \string\textbackslash\space% (kann nur mit Tricks vorkommen) - \
+ \or\string\{% dito - {
+ \or\string\}% dito - }
+ \or\string\$% math shift (3) - $
+ \or\string\&% alignment tab (4) - &
+ \or(Kategorie 5)% end of line
+ \or\string\#% parameter (6) - sollte nicht vorkommen
+ \or\string\^{ }% superscript (7)
+ \or\string\_% subscript (8)
+ \or(Kategorie 9 - ignored)% (9) - sollte nicht vorkommen
+ \or#1% space (10)
+ \or#1% letter (11)
+ \or#1% other (12)
+ \or\string\string\string#1% active -- sollte auch normalerweise
+ % nicht vorkommen.
+ \or\%% comment (14) (dafür muss man auch etwas tricksen)
+ \or(Kategorie 15 - invalid)% (15 - sollte nicht vorkommen)
+ \else(andere Kategorie)% (und da es eigentlich nur
+ % Kategorien 0-15 gibt, auch das nicht.)
+ \fi% (\ifcase)
+ \fi% (\ifcat)
+ \fi% (\ifx)
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% Hier noch ein Hilfs-Makro, geklaut\footnote{Ich habe absichtlich nur
+% dieses Makro hier kopiert, anstatt das \pack{gmutils}-Paket einzubinden,
+% denn \pack{gmutils} führt auch noch einige Redefinitionen in ganz
+% anderen Bereichen durch, die ich nicht brauche bzw. haben will.}
+% aus \pack{gmutils}\footnote{von Grzegorz Murzynowski, auf CTAN unter
+% '/macros/contrib/gmutils'.}:
+% \begin{macro}\afterfi\marg{cmd}
+%
+% Führt \meta{cmd} nach dem nächsten '\fi' aus -- alles dazwischen
+% wird übersprungen.
+% Damit kann man zu tiefe '\if'-Verschachtelungen im Falle einer
+% Rekursion vermeiden.
+%
+% Achtung: es geht hier wirklich um das lexikalisch nächste '\fi',
+% auch wenn das eigentlich zu einem dazwischen kommenden '\if' gehört.
+% In unserem Fall kommen solche pathologischen Fälle nicht vor -- falls
+% doch, verwende man analog definierte '\afteriffifi' etc. -- ich verweise
+% auf die Dokumentation von \pack{gmutils}.
+%
+% \begin{macrocode}
+\long\def\afterfi#1#2\fi{%
+ \fi#1%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@nil}
+% \begin{macro}{\@nil}
+% \begin{macro}{\@@}
+% Damit die '\ifx'-Vergleiche bei den Escape-Funktionen funktionieren, müssen
+% diese drei Makros unterschiedlich definiert sein. Der exakte Wert ist nicht
+% wichtig, da sie ja nie wirklich expandiert werden (sollten).
+% \begin{macrocode}
+\newcommand*\@@nil{\@@nil}%
+\newcommand*\@nil{\@nil}%
+\newcommand*\@@{\@@}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Alternatives Escapen}
+% \label{alt-ersetzung}
+% \begin{macrocode}
+%<*escape-original>
+% \end{macrocode}
+%
+% \begin{macro}{\dateiliste@general@escape}\marg{text}\marg{suche}\marg{ersetze}
+% Dieses Makro könnte (wenn es denn funktionieren würde) von
+% '\@writefilelist' innerhalb eines '\edef' oder '\write' aufgerufen
+% werden, um gefährliche Zeichen zu escapen, so dass sie nach dem Einlesen
+% im Dokument anzeigbar sind. Da es innerhalb des '\edef' sitzt, muss
+% es expandierbar sein, darf also kein '\def' etc. enthalten.
+% (Aha, da ist das Problem.)
+%
+% Zwei Ansätze:
+% \begin{enumerate}
+% \item Wir versuchen, unser '\dateiliste@general@escape' expandierbar
+% zu machen.
+% \item Wir bauen die API um, so dass es nicht zu seinem Ergebnis expandiert,
+% sondern dieses in einem (expandierbaren) Makro ablegt. Entsprechend muss
+% es dann \emph{vor} dem '\write' aufgerufen werden, und das Ergebnis-Makro
+% wird dann an das '\write' verfüttert.
+% \end{enumerate}
+% Der erste Ansatz wurde etwas abgewandelt als '\dateiliste@escapeii'
+% in Abschnitt \ref{escape} umgesetzt, und ist auch der, welcher jetzt
+% verwendet wird.
+%
+% Hier der erste Versuch, implementiert als einfache Ersetzungsfunktion.
+% Durch den '%<*escape-original>'-Abschnitt wird er nicht in die Package-Datei
+% aufgenommen. (Es wäre zusätzlich dazu auch noch eine entsprechende Änderung
+% in '\dateiliste@parse@ver' sowie in '\@writefilelist' notwendig.)
+%
+%
+% \begin{macrocode}
+\newcommand*{\dateiliste@general@escape}[3]{
+ \relax
+ \begingroup
+ \def\dateiliste@suche{#2}% -- dumme Fehlermeldung:
+ % ! Undefined control sequence. -- warum?
+ \def\dateiliste@ersetzung{#3}%
+ \dateiliste@general@escape@#1\@nil\@@%
+ \endgroup
+}%
+\def\dateiliste@gobbletoAt#1\@@{}%
+\def\dateiliste@general@escape@#1#2\@@{%
+ \ifx#1\@nil
+ \expandafter\dateiliste@gobbletoAt
+ \else
+ \dateiliste@general@escape@token{#1}%
+ \expandafter\dateiliste@general@escape@
+ \fi
+ #2\@@%
+}%
+\newcommand*{\dateiliste@general@escape@token}[1]{%
+% \if#3\space
+% \space%
+% \else
+ \if \datailiste@suche#1%
+ \dateiliste@ersetzung%
+ \else
+ #1%
+ \fi
+% \fi
+}%
+%</escape-original>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Anpassbare Texte und Übersetzungen}
% \begin{macro}{\fileListPreamble}
% \changes{v0.1}{2006/03/31}{Neu}
% \begin{macro}{\fileListName}
@@ -867,7 +1537,7 @@ utile.
% \changes{v0.1}{2006/03/31}{Neu}
% \begin{macro}{\descriptionName}
% \changes{v0.1}{2006/03/31}{Neu}
-% Einige Namen fr bersetzbare Texte -- standardmig auf Englisch.
+% Einige Namen für übersetzbare Texte -- standardmäßig auf Englisch.
% \begin{macrocode}
\newcommand*\fileListPreamble{
Here is the list of all files used during the run of \LaTeX{}
@@ -878,20 +1548,21 @@ utile.
}
\newcommand*\fileListName{List of Files}
\newcommand*\fileNameName{file name}
+\newcommand*\pageName{page}
\newcommand*\dateName{release date}
\newcommand*\verName{version}
\newcommand*\descriptionName{description}
% \end{macrocode}
% \begin{macro}{\dateiliste@babel}
-% Hier noch gleich ein paar bersetzungen.
+% Hier noch gleich ein paar Übersetzungen.
% Wir definieren hier ein einmal-Makro, welches
-% fr mehrere Sprachen\footnote{Genauer: genau fr die Sprachen, welche ich soweit
-% beherrsche, dass ich diese Texte bersetzen konnte.} zum jeweiligen Initialisierungsmakro
-% Neudefinitionen dieser fnf Befehle hinzufgt.
+% für mehrere Sprachen\footnote{Genauer: genau für die Sprachen, welche ich soweit
+% beherrsche, dass ich diese Texte übersetzen konnte.} zum jeweiligen Initialisierungsmakro
+% Neudefinitionen dieser fünf Befehle hinzufügt.
% \begin{macrocode}
\newcommand*{\dateiliste@babel}{
% \end{macrocode}
-% Zunchst Englisch - das sollte das gleiche wie die Standard-Einstellungen sein.
+% Zunächst Englisch - das sollte das gleiche wie die Standard-Einstellungen sein.
% \begin{macrocode}
\addto{\extrasenglish}{%
\renewcommand*\fileListPreamble{%
@@ -903,47 +1574,54 @@ utile.
}
\renewcommand*\fileListName{List of Files}%
\renewcommand*\fileNameName{file name}
+ \renewcommand*\pageName{page}
\renewcommand*\dateName{release date}
\renewcommand*\verName{ver.}
\renewcommand*\descriptionName{description}
}%
% \end{macrocode}
% Deutsch mit neuer Rechtschreibung.
+% \changes{v0.4}{2009/10/26}{Kodierung der deutschen Umlaute
+% in der \cs{fileListPreamble} per \cs{"}, damit das
+% Paket auch mit utf8-kodierten Dateien funktioniert.
+% Dank an Michael Niedermair für den Bugreport.}
% \begin{macrocode}
\addto{\extrasgerman}{%
\renewcommand*\fileListPreamble{%
- Hier die Liste aller Dateien, die whrend des \LaTeX-Laufes,
+ Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
welcher dieses Dokument erzeugte, verwendet wurden.
\footnote{genauer: Es ist die Liste aller Dokumente, die
- einen \LaTeX-Lauf frher verwendet wurden. Aber nach
- einigen Lufen sollte sich die Liste stabilisieren.}
+ einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
+ einigen L\"aufen sollte sich die Liste stabilisieren.}
}
\renewcommand*\fileListName{Liste der Dateinamen}%
\renewcommand*\fileNameName{Dateiname}
+ \renewcommand*\pageName{\llap{Se}ite}
\renewcommand*\dateName{Datum}
\renewcommand*\verName{Ver.}
\renewcommand*\descriptionName{Beschreibung}
}%
% \end{macrocode}
% Deutsch mit alter Rechtschreibung: ist das gleiche (hier tauchen
-% keine Flle mit nderungen auf.)
+% keine Fälle mit Änderungen auf.)
% \begin{macrocode}
\addto{\extrasngerman}{%
\renewcommand*\fileListPreamble{%
- Hier die Liste aller Dateien, die whrend des \LaTeX-Laufes,
+ Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
welcher dieses Dokument erzeugte, verwendet wurden.
\footnote{genauer: Es ist die Liste aller Dokumente, die
- einen \LaTeX-Lauf frher verwendet wurden. Aber nach
- einigen Lufen sollte sich die Liste stabilisieren.}
+ einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
+ einigen L\"aufen sollte sich die Liste stabilisieren.}
}
\renewcommand*\fileListName{Liste der Dateinamen}%
\renewcommand*\fileNameName{Dateiname}
+ \renewcommand*\pageName{Seite}
\renewcommand*\dateName{Datum}
\renewcommand*\verName{Ver.}
\renewcommand*\descriptionName{Beschreibung}
}%
% \end{macrocode}
-% Fr die Verwender der Internationalen Sprache (siehe 'www.esperanto.de'):
+% Für die Verwender der Internationalen Sprache (siehe 'www.esperanto.de'):
% \begin{macrocode}
\addto{\extrasesperanto}{%
\renewcommand*\fileListPreamble{%
@@ -956,14 +1634,15 @@ utile.
}
\renewcommand*\fileListName{Listo de dosieroj}%
\renewcommand*\fileNameName{dosiernomo}
+ \renewcommand*\pageName{pa\^go}
\renewcommand*\dateName{dato}
\renewcommand*\verName{versio}
\renewcommand*\descriptionName{priskribo}
}%
% \end{macrocode}
-% Am Ende der Ausfhrung von '\dateiliste@babel' vernichtet der Befehl sich
-% selbst. Das spart etwas Speicher, und sorgt dafr, dass er nicht versehentlich
-% mehrfach ausgefhrt wird (auch wenn das wohl nicht schdlich wre).
+% Am Ende der Ausführung von '\dateiliste@babel' vernichtet der Befehl sich
+% selbst. Das spart etwas Speicher, und sorgt dafür, dass er nicht versehentlich
+% mehrfach ausgeführt wird (auch wenn das wohl nicht schädlich wäre).
% \begin{macrocode}
\let \dateiliste@babel = \relax%
}%
@@ -971,18 +1650,18 @@ utile.
% \end{macro}
% Wir untersuchen jetzt, ob \pack{babel} schon geladen wurde.
% Diese Fallunterscheidung ist notwendig, weil der Code von
-% '\dateiliste@babel' zwar das Paket bentigt (also nach ihm
-% ausgefhrt werden sollte), aber nicht einfach direkt mit '\AtBeginDocument'
+% '\dateiliste@babel' zwar das Paket benötigt (also nach ihm
+% ausgeführt werden sollte), aber nicht einfach direkt mit '\AtBeginDocument'
% ans Ende geschoben werden sollte, da er (falls \pack{babel} schon vor
% diesem Paket geladen wurde) dort nach dem \pack{babel}-Code (der die
-% Sprache auswhlt) kommen wrde, und damit mehr nichts bewirkt.
+% Sprache auswählt) kommen würde, und damit mehr nichts bewirkt.
%
% Falls \pack{babel} jetzt schon geladen wurde, \ldots
% \begin{macrocode}
\@ifpackageloaded{babel}
{%
% \end{macrocode}
-% \ldots informieren wir es sofort ber die neuen Namen, die beim
+% \ldots informieren wir es sofort über die neuen Namen, die beim
% Sprachwechsel bitte angepasst werden sollten.
% \begin{macrocode}
\dateiliste@babel%
@@ -990,8 +1669,8 @@ utile.
% \end{macrocode}
% Ansonsten verschieben wir das zum Beginn des Dokumentes (und machen
% das auch dann nur, wenn \pack{babel} inzwischen geladen wurde --
-% ansonsten ist das ganze ja berflssig, und '\addto' gibt es auch
-% nicht, also knnen wir dann '\dateiliste@babel' vernichten).
+% ansonsten ist das ganze ja überflüssig, und '\addto' gibt es auch
+% nicht, also können wir dann '\dateiliste@babel' vernichten).
% \begin{macrocode}
{%
\AtBeginDocument{%
@@ -1012,58 +1691,70 @@ utile.
%
% \subsection{Hauptdatei in die Dateiliste}
% \begin{macro}{\mainFileToList}
-% \changes{v0.1}{2006/04/02}{Neu}
-% \changes{v0.2}{2006/04/19}{Mgliche Erkennung des Dateinamens jetzt auch ohne \eTeX}
-% Zunchst sehen wir nach, ob es eine Datei mit Namen \meta{jobname}'.tex'
-% gibt.
+% \changes{v0.1}{2006/04/02}{Neu}
+% \changes{v0.2}{2006/04/19}{Mögliche Erkennung des Dateinamens jetzt
+% auch ohne \eTeX}
+% Hier unser Nutzer-Makro für die Inklusion der Hauptdatei
+% in die Dateiliste.
+%
+% Zunächst sehen wir nach, ob es eine Datei mit Namen \meta{jobname}'.tex'
+% gibt.
% \begin{macrocode}
\newcommand*{\mainFileToList}{% \mainFileToList
\IfFileExists{\jobname.tex} {%
\begingroup
% \end{macrocode}
-% Falls ja, dann ist das hchstwahrscheinlich die Haupt-Datei des
-% Dokumentes, und taucht wahrscheinlich -- nmlich, wenn sie auf der
+% Falls ja, dann ist das höchstwahrscheinlich die Haupt-Datei des
+% Dokumentes\footnote{Andernfalls hat entweder jemand '\jobname' manipuliert,
+% oder die Hauptdatei ist eine Datei, die nicht auf '.tex' endet,
+% etwa \meta{jobname}'.dtx' -- in dem Fall sollte man eigentlich keine Datei
+% \meta{jobname}'.tex' daneben haben. Ansonsten ist es wohl zumutbar, die
+% Option 'noaddmainfile' anzugeben.
+% }, und taucht wahrscheinlich -- nämlich, wenn sie auf der
% Kommandozeile oder mit '\input '\meta{jobname}'.tex' anstatt
% '\input{'\meta{jobname}'.tex}' geladen wurde -- nicht in der Dateiliste
% auf.
%
% Das Problem an der Erkennung des letzten Falles (\LaTeX-'\input{}') ist,
% dass '\jobname' die Zeichen (auch die Buchstaben) in
-% Kategorie 12 (\emph{other}) liefert anstatt in der natrlichen Kategorie
+% Kategorie 12 (\emph{other}) liefert anstatt in der natürlichen Kategorie
% (d.h. Buchstaben in 11 = \emph{letter}) (wie die Dateien, deren Name
% irgendwo im Quelltext auftaucht und dann in '\@filelist' landet).
%
-% Ich habe drei Mglichkeiten gefunden, damit umzugehen:
+% Ich habe drei Möglichkeiten gefunden, damit umzugehen:
% \begin{enumerate}[(1)]
% \item Wir wandeln '\@filelist' komplett in Kategorie-12-Zeichen um.
-% (Den Tipp, wie das geht, habe ich zufllig beim Durchstbern der UK-\TeX-FAQ
-% gefunden: \texttt{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=compjobnam})
-% \item Wir wandeln '\jobname' (bzw. die Buchstaben darin) in ihre "`richtige"'
-% Kategorie (11 fr Buchstaben) um.
+% \footnote{Den Tipp, wie das geht, habe ich zufällig beim Durchstöbern
+% der UK-\TeX-FAQ gefunden:
+% \texttt{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=compjobnam}}
+% \item Wir wandeln '\jobname' (bzw. die Buchstaben darin) in ihre
+% "`richtige"' Kategorie (11 für Buchstaben) um.
% \item Wir ignorieren das Problem und leben damit, dass eventuell der
% Dateiname doppelt auftaucht.
% \end{enumerate}
%
-% (2) funktioniert leider nur bei Verwendung von \eTeX, (1)
-% hat den Nachteil, dass anschlieend '\@filelist' komplett aus
+% Variante (2) funktioniert leider nur bei Verwendung von \eTeX, (1)
+% hat den Nachteil, dass anschließend '\@filelist' komplett aus
% Kategorie-12-Zeichen besteht, was eventuell zu Problemen mit anderen
-% Paketen fhrt, welche ebenfalls diese Liste verarbeiten und auf deren
+% Paketen führt, welche ebenfalls diese Liste verarbeiten und auf deren
% Catcodes angewiesen sind.
%
-% Daher haben ich zwei Paket-Optionen hinzugefgt, welche eine entsprechende
-% Auswahl ermglichen:
+% Daher haben ich zwei Paket-Optionen hinzugefügt, welche eine entsprechende
+% Auswahl ermöglichen:
% \begin{description}
% \item[Standardvorgehen:] Falls \eTeX\ verwendet wurde, nimm (2),
-% fr \TeX\ nimm (1).
-% \item[Mit Option \texttt{nocat12}:] Falls \eTeX\ verwendet wurde, nimm (2),
-% sonst (3).
-% \item[Mit Option \texttt{cat12}:] Nimm immer (1).
+% für \TeX\ nimm (1). (Die Unterscheidung läuft dabei natürlich nicht
+% über die Existenz von \eTeX, sondern über die Existenz von
+% '\scantokens', der beötigten Kontrollsequenz.)
+% \item[Mit Option \texttt{nocat12}:] \DescribeOption{nocat12}
+% Falls \eTeX\ verwendet wurde, nimm (2), sonst (3).
+% \item[Mit Option \texttt{cat12}:] \DescribeOption{cat12}
+% Nimm immer (1).
% \end{description}
-%
-% (Vor Version 0.2 gab es nur das Verhalten, welches jetzt 'nocat12' entspricht.)
+% Vor Version 0.2 gab es nur das Verhalten, welches jetzt 'nocat12' entspricht.)
%
% \begin{macro}{\dateiliste@catxii@transform}
-% Hier die Implementation fr (1). Wir wandeln auch das '.tex' in Kategorie 12 um,
+% Hier die Implementation für (1). Wir wandeln auch das '.tex' in Kategorie 12 um,
% mittels '\meaning' (mit '\strip@prefix' entfernen wir etwas Text, der vor der
% Makrodefinition steht)
% \begin{macrocode}
@@ -1074,30 +1765,30 @@ utile.
\expandafter\strip@prefix\meaning\dateiliste@mainfile
}%
% \end{macrocode}
-% Jetzt das gleiche fr '\@filelist'.
+% Jetzt das gleiche für '\@filelist'.
% \begin{macrocode}
\edef\@filelist{\expandafter\strip@prefix\meaning\@filelist}%
}%
% \end{macrocode}
% \end{macro}
% \begin{macro}{\dateiliste@scantoken@tr}
-% Hier die Implementation fr (2) mit '\scantokens':
+% Hier die Implementation für (2) mit '\scantokens':
% In \eTeX\ gibt es dagegen den '\scantokens'-Befehl, welcher
-% es ermglicht, im Speicher von \TeX\ vorliegende Token neu aus
+% es ermöglicht, im Speicher von \TeX\ vorliegende Token neu aus
% einer Pseudo-Datei einzulesen. Wenn
% er definiert ist (nur dann wird dieses Makro aufgerufen), rufen wir ihn
% hier auf -- mit einigen '\expandafter', um nur den '\jobname' vor
-% der '\scantokens'-Ausfhrung zu expandieren, und nicht die Token
+% der '\scantokens'-Ausführung zu expandieren, und nicht die Token
% '\edef\dateiliste@mainfile{' und '.tex}' drumherum.
% '\scantokens' bekommt also die Zeichen \par
% '\makeatletter\edef\dateiliste@mainfile{'\meta{jobname}'.tex}\makeatother'\par
% \noindent zu lesen.
%
% Das '\edef' wird dann also mit Kategorie-11-Buchstaben (also "`richtigen"')
-% im Dateinamen ausgefhrt. (Das '\makeatletter' und '\makeatother' ist
+% im Dateinamen ausgeführt. (Das '\makeatletter' und '\makeatother' ist
% notwendig, um das '@' auch als Buchstabe zuzulassen und somit '\dateiliste@mainfile'
% als einzelnen Makronamen anzusehen. Zu dem Zeitpunkt, zu dem '\scantokens'
-% ausgefhrt wird, sind ja die Dokumenten-Catcodes in Kraft, nicht die einer
+% ausgeführt wird, sind ja die Dokumenten-Catcodes in Kraft, nicht die einer
% Package-Datei.)
% \begin{macrocode}
\newcommand*{\dateiliste@scantoken@tr}
@@ -1115,7 +1806,7 @@ utile.
}%
% \end{macrocode}
% \end{macro}
-% Hier jetzt die groe Fallunterscheidung:
+% Hier jetzt die große Fallunterscheidung:
% \begin{macrocode}
\if@dateiliste@catxii
\dateiliste@catxii@transform
@@ -1124,9 +1815,9 @@ utile.
{%
\if@dateiliste@nocatxii
% \end{macrocode}
-% Das ist die Implementation fr (3): wir merken uns den Dateinamen einfach
+% Das ist die Implementation für (3): wir merken uns den Dateinamen einfach
% so. Das geht wahrscheinlich schief, wenn nicht noch irgend ein anderes
-% Makropaket eingreift, und wir knnen \meta{jobname}'.tex' nicht aus der
+% Makropaket eingreift, und wir können \meta{jobname}'.tex' nicht aus der
% Liste entfernen.
% \begin{macrocode}
\edef\dateiliste@mainfile{\jobname.tex}%
@@ -1140,16 +1831,16 @@ utile.
\fi
% \end{macrocode}
% Jetzt haben wir in '\dateiliste@mainfile' den Namen der Hauptdatei,
-% auch (je nach Optionen und \eTeX-Verfgbarkeit) '@filelist' vorbereitet.
+% auch (je nach Optionen und \eTeX-Verfügbarkeit) '@filelist' vorbereitet.
%
-% Wir knnen nun mit '\@removeelement' (aus dem \LaTeX-Kernel)
+% Wir können nun mit '\@removeelement' (aus dem \LaTeX-Kernel)
% das Vorkommen von \meta{jobname}'.tex' entfernen (falls der Name dort vorhanden
% ist -- wahrscheinlich nicht).
% \begin{macrocode}
\@expandtwoargs\@removeelement{\dateiliste@mainfile}%
\@filelist\@filelist
% \end{macrocode}
-% Anschlieend fgen wir den Dateinamen an den \emph{Anfang} der Liste an.
+% Anschließend fügen wir den Dateinamen an den \emph{Anfang} der Liste an.
% \begin{macrocode}
\xdef\@filelist{%
\dateiliste@mainfile,\@filelist
@@ -1170,7 +1861,7 @@ utile.
% \end{macro}
%
% Am Ende des Dokumentes (aber noch vor dem Aufruf von '\@writefilelist', der von
-% '\printFileList' hinzugefgt wird) rufen wir, sofern die passende
+% '\printFileList' hinzugefügt wird) rufen wir, sofern die passende
% Option gesetzt war, das eben definierte Makro auf.
% \begin{macrocode}
\if@dateiliste@addMain
@@ -1187,13 +1878,13 @@ utile.
% \Finale
%\endinput
%
-%<*mll>
+%<*müll>
-%%% Folgendes ist nur fr meinen Editor.
+%%% Folgendes ist nur für meinen Editor.
%%%
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
-%</mll>
+%</müll>
diff --git a/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins b/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins
index 8684643f521..79b1f41b722 100644
--- a/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins
+++ b/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins
@@ -8,6 +8,24 @@
%%
\input docstrip.tex
+
+\askonceonly
+
+
+% Die Readme-Dateien generieren wir vor dem Festlegen von \usedir,
+% damit sie nicht in das selbe Verzeichnis im texmf-Baum gesteckt
+% werden.
+\generate{%
+ \usepreamble\empty
+ \usepostamble\empty
+ \file{dateiliste.README}{\from{dateiliste.dtx}{readme}}%
+ \file{dateiliste.README-en}{\from{dateiliste.dtx}{en}}%
+ \file{dateiliste.README-de}{\from{dateiliste.dtx}{de}}%
+ \file{dateiliste.README-eo}{\from{dateiliste.dtx}{eo}}%
+ }
+
+
+
\usedir{tex/latex/paul}
\Msg{**********************************************************}
@@ -27,19 +45,10 @@
'--------------------------------------------------'
\endpreamble
-\askonceonly
\generate{\file{dateiliste.sty}{\from{dateiliste.dtx}{package}}}
-\generate{%
- \usepreamble\empty
- \usepostamble\empty
- \file{dateiliste.README}{\from{dateiliste.dtx}{readme}}%
- \file{dateiliste.README-en}{\from{dateiliste.dtx}{en}}%
- \file{dateiliste.README-de}{\from{dateiliste.dtx}{de}}%
- \file{dateiliste.README-eo}{\from{dateiliste.dtx}{eo}}%
- }
\Msg{#######################}
\Msg{# }
diff --git a/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty b/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty
index 9468c3aee6b..6bfec020ddf 100644
--- a/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty
+++ b/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty
@@ -11,28 +11,28 @@
%% | |
%% | (c) 2006 Paul Ebermann. |
%% '--------------------------------------------------'
-%% (C) 2006 Paul Ebermann (Hauptautor)
+%% (C) 2006, 2009 Paul Ebermann (Hauptautor)
%% (C) 2006 Rolf Niepraschk (einiges an Code gespendet)
%%
%% Package dateiliste - Zur Ausgabe der Liste der Dateien im Dokument.
%%
-%% Die Datei dateiliste.dtx sowie die dazugehrige
+%% Die Datei dateiliste.dtx sowie die dazugehörige
%% dateiliste.ins sowie die damit generierte
%% dateiliste.sty stehen unter der
%% "LaTeX Project Public License" (LPPL, zu finden
%% unter http://www.latex-project.org/lppl/, sowie
%% auch in den meisten TeX-Distributionen in
%% texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
-%% spter (nach Wahl des Verwenders).
+%% später (nach Wahl des Verwenders).
%%
%% Der 'maintenance-status' ist (zur Zeit) 'maintained'.
%%
-%% Das heit in etwa, die Dateien drfen frei vertrieben werden,
-%% bei nderungen (durch andere Personen als Paul Ebermann)
-%% ist aber der Name der Datei zu ndern.
+%% Das heißt in etwa, die Dateien dürfen frei vertrieben werden,
+%% bei Änderungen (durch andere Personen als Paul Ebermann)
+%% ist aber der Name der Datei zu ändern.
\NeedsTeXFormat{LaTeX2e}[2003/12/01]
\ProvidesPackage{dateiliste}[%
- 2006/07/27 v0.3 %
+ 2009/11/04 v0.5 %
Ausgabe der Dateiliste (PE)]
\newif\if@dateiliste@addMain
\DeclareOption{addmain} {%
@@ -49,8 +49,51 @@
\DeclareOption{nocat12} {%
\@dateiliste@nocatxiitrue
}
+\newif\if@dateiliste@showpages \@dateiliste@showpagesfalse
+\DeclareOption{showpages} {%
+ \@dateiliste@showpagestrue
+}
+\DeclareOption{noshowpages} {%
+ \@dateiliste@showpagesfalse
+}
+\newif\if@dateiliste@subversion \@dateiliste@subversionfalse
+\DeclareOption{svn} {%
+ \@dateiliste@subversiontrue
+}
+\DeclareOption{subversion} {%
+ \@dateiliste@subversiontrue
+}
+\DeclareOption{cvs} {%
+ \@dateiliste@subversionfalse
+}
+\DeclareOption{rcs} {%
+ \@dateiliste@subversionfalse
+}
\ExecuteOptions{addmain}
+\ExecuteOptions{showpages}
+\ExecuteOptions{rcs}
\ProcessOptions
+ \if@dateiliste@showpages
+ \CheckCommand*{\@addtofilelist}[1]{\xdef\@filelist{\@filelist,#1}}
+ \renewcommand*{\@addtofilelist}[1]{%
+ \expandafter\xdef%
+ \csname dateiliste@page@#1\endcsname%
+ {\thepage}%
+ \xdef\@filelist{\@filelist,#1}%
+ }
+ \fi
+\setcounter{page}{0}
+\AtBeginDocument{\stepcounter{page}}
+\if@dateiliste@subversion
+\RequirePackage[nofancy, notoday, final]{svninfo}[2006/05/11]
+\newcommand*{\ProvideFileInfos}[2] {%
+ \svnInfo #1 %
+ \ProvidesFile%
+ {\svnInfoFile}%
+ [\svnInfoYear/\svnInfoMonth/\svnInfoDay\space
+ v\svnInfoRevision\space #2]%
+}
+\else% \if@dateiliste@subversion
\RequirePackage[nofancy, notoday]{rcsinfo}
\newcommand*{\ProvideFileInfos}[2] {%
\rcsInfo #1 %
@@ -58,6 +101,7 @@
{\expandafter\@firstofone\rcsInfoFile}%
[\rcsInfoDate\space v\rcsInfoRevision\space #2]%
}
+\fi% \if@dateiliste@subversion
\RequirePackage{ltxtable}
\AtBeginDocument{%
\@ifpackageloaded{pauldoc}{%
@@ -98,9 +142,9 @@
\@addtofilelist{\jobname.filelist}%
}
{%
- \PackageWarning{dateiliste}{
+ \AtEndDocument{\PackageWarning{dateiliste}{
Run LaTeX again to include the File list.
- }%
+ }}%
}%
\AtEndDocument{%
\begingroup
@@ -117,39 +161,138 @@
[\dateiliste@today\space --- automatically %
generated filelist]%
}%
+ \if@dateiliste@showpages
+ \def\@tempa{lrll}
+ \else
+ \def\@tempa{lll}
+ \fi
\immediate\write\dateiliste@file{%
\string\LTleft=0pt%
\string\LTright=0pt%
- \string\begin{longtable}{lll>{\string\raggedright\string\arraybackslash}X}%
- \string\textbf{\fileNameName} &
+ \string\begin{longtable}{\@tempa>{%
+ \string\raggedright\string\arraybackslash}X}%
+ \string\textbf{\fileNameName} \expandafter&%
+ \if@dateiliste@showpages
+ \string\textbf{\pageName} &
+ \fi
\string\textbf{\dateName} &
\string\textbf{\verName} &
\string\textbf{\descriptionName}
\string\endhead%
}%
\@for\@currname:=\@filelist\do{% \@for
- \filename@parse\@currname
+ \filename@parse\@currname%
\edef\dateiliste@filename{%
\filename@base.%
\ifx\filename@ext\relax tex\else\filename@ext\fi}%
- \expandafter\let\expandafter\dateiliste@fileversion
- \csname ver@\dateiliste@filename\endcsname
- \immediate\write\dateiliste@file{%
- \dateiliste@filename\space& %
+ \expandafter\let\expandafter\dateiliste@fileversion%
+ \csname ver@\dateiliste@filename\endcsname%
+ \if@dateiliste@showpages
+ \@ifundefined{dateiliste@page@\@currname}
+ {%
+ \def\dateiliste@filepage{0}%
+ }{%
+ \expandafter\let\expandafter\dateiliste@filepage%
+ \csname dateiliste@page@\@currname\endcsname%
+ }%
+ \fi
+ \edef\dateiliste@zeile{%
+ \expandafter\dateiliste@escapeii\expandafter{%
+ \dateiliste@filename
+ }
+ \space& %
+ \if@dateiliste@showpages
+ \dateiliste@filepage
+ \space& %
+ \fi
\ifx\dateiliste@fileversion\relax
---
\else
\expandafter\dateiliste@parse@ver
- \dateiliste@fileversion{} {} {} \relax
+ \dateiliste@fileversion{} {} {} \dateiliste@parse@ver
\fi
- \string\\}%
+ \string\\}% \edef
+ \immediate\write\dateiliste@file{%
+ \dateiliste@zeile
+ }%
}% \@for
\immediate\write\dateiliste@file{\string\end{longtable}}
\immediate\closeout\dateiliste@file
}%
- \def\dateiliste@parse@ver##1 ##2 {##1 & ##2 & }%
+ \def\dateiliste@parse@ver##1 ##2 ##3\dateiliste@parse@ver{%
+ ##1 & ##2 &
+ % \dateiliste@general@escape{##3}{\@backslashchar}%
+ % {\string\textbackslash{}}%
+ \dateiliste@escapeii{##3}%
+ \relax
+ }%
}%
}%
+\newcommand*{\dateiliste@escapeii}[1]{%
+ \dateiliste@escape@@ii#1\@nil. \@@nil\@@
+}%
+\def\dateiliste@escape@@ii#1 #2#3\@@{%
+ \ifx\@@nil#2
+ % nur ein Wort, und das '\@nil' ist schon in '#1' drin.
+ \afterfi{%
+ \dateiliste@escape@ii#1\@@%
+ }%
+ \else
+ %Rekursion
+ \afterfi{%
+ \dateiliste@escape@ii#1\@nil\@@%
+ \space%
+ \dateiliste@escape@@ii#2#3\@@%
+ }%
+ \fi
+}%
+\def\dateiliste@escape@ii#1#2\@@{%
+ \ifx#1\@nil
+ \@empty
+ \else
+ \afterfi{%
+ \dateiliste@escapetoken{#1}%
+ \dateiliste@escape@ii#2\@@
+ }%
+ \fi
+}%
+\newcommand*{\dateiliste@escapetoken}[1] {%
+ \ifx#1\@empty\@empty
+ \else
+ \ifcat\noexpand\relax
+ \noexpand#1%
+ \string\string\string#1%
+ \else
+ \ifcase \catcode\expandafter`#1 %
+ \string\textbackslash\space% (kann nur mit Tricks vorkommen) - \
+ \or\string\{% dito - {
+ \or\string\}% dito - }
+ \or\string\$% math shift (3) - $
+ \or\string\&% alignment tab (4) - &
+ \or(Kategorie 5)% end of line
+ \or\string\#% parameter (6) - sollte nicht vorkommen
+ \or\string\^{ }% superscript (7)
+ \or\string\_% subscript (8)
+ \or(Kategorie 9 - ignored)% (9) - sollte nicht vorkommen
+ \or#1% space (10)
+ \or#1% letter (11)
+ \or#1% other (12)
+ \or\string\string\string#1% active -- sollte auch normalerweise
+ % nicht vorkommen.
+ \or\%% comment (14) (dafür muss man auch etwas tricksen)
+ \or(Kategorie 15 - invalid)% (15 - sollte nicht vorkommen)
+ \else(andere Kategorie)% (und da es eigentlich nur
+ % Kategorien 0-15 gibt, auch das nicht.)
+ \fi% (\ifcase)
+ \fi% (\ifcat)
+ \fi% (\ifx)
+}%
+\long\def\afterfi#1#2\fi{%
+ \fi#1%
+}
+\newcommand*\@@nil{\@@nil}%
+\newcommand*\@nil{\@nil}%
+\newcommand*\@@{\@@}%
\newcommand*\fileListPreamble{
Here is the list of all files used during the run of \LaTeX{}
which produced this document. \footnote{More precisely, it is
@@ -159,6 +302,7 @@
}
\newcommand*\fileListName{List of Files}
\newcommand*\fileNameName{file name}
+\newcommand*\pageName{page}
\newcommand*\dateName{release date}
\newcommand*\verName{version}
\newcommand*\descriptionName{description}
@@ -173,34 +317,37 @@
}
\renewcommand*\fileListName{List of Files}%
\renewcommand*\fileNameName{file name}
+ \renewcommand*\pageName{page}
\renewcommand*\dateName{release date}
\renewcommand*\verName{ver.}
\renewcommand*\descriptionName{description}
}%
\addto{\extrasgerman}{%
\renewcommand*\fileListPreamble{%
- Hier die Liste aller Dateien, die whrend des \LaTeX-Laufes,
+ Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
welcher dieses Dokument erzeugte, verwendet wurden.
\footnote{genauer: Es ist die Liste aller Dokumente, die
- einen \LaTeX-Lauf frher verwendet wurden. Aber nach
- einigen Lufen sollte sich die Liste stabilisieren.}
+ einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
+ einigen L\"aufen sollte sich die Liste stabilisieren.}
}
\renewcommand*\fileListName{Liste der Dateinamen}%
\renewcommand*\fileNameName{Dateiname}
+ \renewcommand*\pageName{\llap{Se}ite}
\renewcommand*\dateName{Datum}
\renewcommand*\verName{Ver.}
\renewcommand*\descriptionName{Beschreibung}
}%
\addto{\extrasngerman}{%
\renewcommand*\fileListPreamble{%
- Hier die Liste aller Dateien, die whrend des \LaTeX-Laufes,
+ Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
welcher dieses Dokument erzeugte, verwendet wurden.
\footnote{genauer: Es ist die Liste aller Dokumente, die
- einen \LaTeX-Lauf frher verwendet wurden. Aber nach
- einigen Lufen sollte sich die Liste stabilisieren.}
+ einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
+ einigen L\"aufen sollte sich die Liste stabilisieren.}
}
\renewcommand*\fileListName{Liste der Dateinamen}%
\renewcommand*\fileNameName{Dateiname}
+ \renewcommand*\pageName{Seite}
\renewcommand*\dateName{Datum}
\renewcommand*\verName{Ver.}
\renewcommand*\descriptionName{Beschreibung}
@@ -216,6 +363,7 @@
}
\renewcommand*\fileListName{Listo de dosieroj}%
\renewcommand*\fileNameName{dosiernomo}
+ \renewcommand*\pageName{pa\^go}
\renewcommand*\dateName{dato}
\renewcommand*\verName{versio}
\renewcommand*\descriptionName{priskribo}