summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/dateiliste
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-11-16 19:52:58 +0000
committerKarl Berry <karl@freefriends.org>2009-11-16 19:52:58 +0000
commitc3c4375bcba41f1430e538b13b1a11300a1a1a5f (patch)
tree0586f51014ca10377271c341fb22ae7ace4034de /Master/texmf-dist/tex/latex/dateiliste
parent97a64664af52df12bf2780903c3357ad8d29a94a (diff)
dateiliste 0.5 (7nov09)
git-svn-id: svn://tug.org/texlive/trunk@16032 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/dateiliste')
-rw-r--r--Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty198
1 files changed, 173 insertions, 25 deletions
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 dazugehörige
+%% 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
-%% später (nach Wahl des Verwenders).
+%% später (nach Wahl des Verwenders).
%%
%% Der 'maintenance-status' ist (zur Zeit) 'maintained'.
%%
-%% 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.
+%% 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 während 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 früher verwendet wurden. Aber nach
- einigen Läufen 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 während 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 früher verwendet wurden. Aber nach
- einigen Läufen 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}