From e6fe5410448082a7cb0017c5bf8eceee71112b86 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 9 Jul 2006 22:21:50 +0000 Subject: new package dateiliste git-svn-id: svn://tug.org/texlive/trunk@1790 c570f23f-e606-0410-a88d-b1316a301751 --- Build/cdbuild/ctan2tds.pl | 12 +- Build/tools/tpm-ctan-check | 2 +- Master/texmf-dist/doc/latex/dateiliste/README | 240 ++++ Master/texmf-dist/doc/latex/dateiliste/README-de | 25 + Master/texmf-dist/doc/latex/dateiliste/README-en | 105 ++ Master/texmf-dist/doc/latex/dateiliste/README-eo | 109 ++ .../texmf-dist/doc/latex/dateiliste/dateiliste.pdf | Bin 0 -> 189194 bytes .../source/latex/dateiliste/dateiliste.dtx | 1197 ++++++++++++++++++++ .../source/latex/dateiliste/dateiliste.ins | 70 ++ .../texmf-dist/tex/latex/dateiliste/dateiliste.sty | 293 +++++ Master/texmf-dist/tpm/dateiliste.tpm | 32 + Master/texmf/lists/dateiliste | 11 + Master/texmf/tpm/collection-latexextra.tpm | 1 + 13 files changed, 2093 insertions(+), 4 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/dateiliste/README create mode 100644 Master/texmf-dist/doc/latex/dateiliste/README-de create mode 100644 Master/texmf-dist/doc/latex/dateiliste/README-en create mode 100644 Master/texmf-dist/doc/latex/dateiliste/README-eo create mode 100644 Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf create mode 100644 Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx create mode 100644 Master/texmf-dist/source/latex/dateiliste/dateiliste.ins create mode 100644 Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty create mode 100644 Master/texmf-dist/tpm/dateiliste.tpm create mode 100644 Master/texmf/lists/dateiliste diff --git a/Build/cdbuild/ctan2tds.pl b/Build/cdbuild/ctan2tds.pl index 6996f151bd5..4c0b33a3a2e 100755 --- a/Build/cdbuild/ctan2tds.pl +++ b/Build/cdbuild/ctan2tds.pl @@ -523,6 +523,10 @@ $standardins='\.ins'; ); $standardinsrunner="latex"; +%specialins_postdelete = ( + 'dateiliste', 'dateiliste.README*', # already in dist +); + %specialmakeindex= ( ); $standardmakeindex='\.ist'; @@ -1066,19 +1070,21 @@ sub donormal { # how to deal with that? # sub runins { - local($thispatt) = @_; + my ($thispatt) = @_; print "\t RUNINS $thispatt\n"; for (grep(/$thispatt/,@filenames)) { print "\t RUN $_\n" ; &runjob("yes | $insrunner $_"); - } + } + + my $postdelete = $specialins_postdelete{$package}; + &SYSTEM ("rm -f $postdelete") if $postdelete; } sub install { local($destdir,$thispatt) = @_; print "\t INSTALL $thispatt to $destdir\n"; for (grep(/$thispatt/,@filenames)) { if (! -d $destdir) { &SYSTEM("mkdir -p $destdir") } - #print "\t\t Move $_ to $destdir\n"; &SYSTEM("$MV $_ $destdir"); } } diff --git a/Build/tools/tpm-ctan-check b/Build/tools/tpm-ctan-check index bfb48bf6f3c..033412abade 100755 --- a/Build/tools/tpm-ctan-check +++ b/Build/tools/tpm-ctan-check @@ -36,7 +36,7 @@ sub main "chemcompounds", "circ", "cjhebrew", "clock", "colortbl", "commath", "complexity", "comprehensive", "computational-complexity", "csquotes", "cursolatex", "curve", "curves", - "datetime", "devanagr", "dk-bib", "doipubmed", "dottex", + "dateiliste", "datetime", "devanagr", "dk-bib", "doipubmed", "dottex", "draftwatermark", "dtxtut", "ednotes", "elpres", "endheads", "emulateapj", "enumitem", "etaremune", "esint", diff --git a/Master/texmf-dist/doc/latex/dateiliste/README b/Master/texmf-dist/doc/latex/dateiliste/README new file mode 100644 index 00000000000..4879757e352 --- /dev/null +++ b/Master/texmf-dist/doc/latex/dateiliste/README @@ -0,0 +1,240 @@ +This README is for version: + 2006/04/19 v0.2 % +---------------- +([de] unten - [eo] sube) +---------------- +[en] +LaTeX-package 'dateiliste' - include list of used files +(like \listfiles) in the document, and related features. + +Author: Paul Ebermann +License: LPPL 1.3b or later, author-maintained + (see http://www.latex-project.org/lppl/). + +All Documentation (other than this file) is in german. + +The typesetting of the documentation needs 'pauldoc' (from the +same author). +Additionally you'll need the packages 'ltxtable', 'tabularx', +'longtable' and 'rcsinfo'. + +The package comes as .dtx + .ins. +Run "latex dateiliste.ins" to create the style file and the +README-files (and maybe put them to texmf/tex/latex/paul/, if +your docstrip is configured accordingly), (after that and +maybe updating your TeX hash) run "latex dateiliste.dtx" +(some times) to create the documentation. + + Usage +------- +The package has three main features, which can +be used independently, but together are specially +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. + Use + + \ProvideFileInfos{$Id: $} + {short description} + + in your file, and do a CVS commit. + +(2) include main file: + + Normally the "main" file (given on the command + line to LaTeX) does not appear in the list given + by \listfiles. This is changed by the package for + the case that the file has the name \jobname.tex. + + (More precisely, the package adds \jobname.tex + iff this file exists and it not can be determinded[1] + to be already in the file list [2].) + + This is enabled by default and may be disabled + using the package option 'noaddmain'. + The macro + \mainFileToList + may also be invoked manually to add the main file. + +(3) include file list also in the (dvi) result + + You can use the command + + \printFileList[
] + + to include a pretty-printed version of the + file list as a section (by default \section*, + any sectioning command may be given as an + optional argument). + + You also have to use \listfiles in the + document preamble (otherwise you'll only get + an error message). + + The table only appears from the second LaTeX-run, + from the third one is complete, and may need some + more runs to align correctly. + + The title, preamble and table headers may be localized + with babel - translations for 'english', 'german', + 'ngerman' and 'esperanto' are included. + If you need something else or don't use babel, you have + to redefine the following macros: + + \fileListName - title ("List of Files") + \fileListPreamble - preamble (typeset before the table) + \fileNameName - table header "file name" + \dateName - table header "date" + \verName - table header "version" + \descriptionName - table header "description" + +----- +[1] this determination can be configured with + the package options + nocat12 - does only work with eTeX, else + may give double entry + cat12 - works also without eTeX, but may + have some side effects to other macro + packages, since it converts \@filelist + to cat 12. + The default setting works like cat12 on non-eTeX + and like nocat12 on eTeX. + +[2] this may occur when you invoke + LaTeX with "\input{mainfile.tex}". +---------------- +[de] +LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument + +Autor: Paul Ebermann (Paul-Ebermann@gmx.de). +Lizenz: LPPL 1.3b oder später, mit Maintenance-Status + "author-maintained". Siehe http://www.latex-project.org/lppl/. + +Geschrieben für den eigenen Gebrauch +(-> http://www.math.hu-berlin.de/~ebermann/alg-script/), +aber vielleicht ist es auch für andere von Nutzen. + +Zum Setzen der Dokumentation wird das Paket 'pauldoc' +(vom selben Autor) benötigt. + +Das Paket kommt als .dtx + .ins. +Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und +eventuell gleich nach texmf/tex/latex/paul/ installiert, +wenn docstrip entsprechend eingerichtet ist), mit +latex dateiliste.dtx kann (danach und eventuell nach einer +Aktualisierung der TeX-Dateidatenbank) die Dokumentation neu +erstellt werden. + +Zur Verwendung siehe dateiliste.pdf. +---------------- +[eo-h] +LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand, +kiu antaue elprovas, chu la nomo jam ekzistas. + +Autoro: Paulo 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 +uzeblas por aliaj. + +La dokumentaro (escepte tiu chi dosiero) estas nur en la germana +lingvo. + +La pakajho bezonas la pakajhojn 'ltxtable', 'longtable', +'tabularx' kaj 'rcsinfo'. +Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro). + +La pakajho 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 +la dokumentaron. + + Uzado +------- + +La pakajho konsistas el tri chefaj bonajhoj, kiujn +oni povas uzi sendepende, sed kune ili estas speciale +utile. + +(1) automataj 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 + (kaj la listo de (3).) + Uzu + + \ProvideFileInfos{$Id: dateiliste.dtx,v 1.7 2006/04/19 14:57:24 ebermann Exp $} + {mallonga priskribo} + + en via dosiero, kaj faru 'cvs commit'. (CVS enmetos + informojn, kiun \ProvideFileInfos uzas.) + +(2) aldono de chefa dosiero + + Kutime la chefa 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 + + (Pli precize, la pakajho 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 + \mainFileToList + por fari tion. + +(3) enmetu la dosierliston en la rezulton + + Vi povas uzi la komandon + + \printFileList[
] + + por enmeti bele formatitan version de la + dosierlisto kiel sekcio (kutime '\section*', + sed vi povas uzi iun ajn sekci-komandon kiel + 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. + + La tabelo nur aperos ekde la dua LaTeX-voko, kaj + eble bezonos kelkajn pliajn por aspekti ghuste. + + 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', + redifinu la sekvajn makroojn: + + \fileListName - titolo ("Listo de dosieroj") + \fileListPreamble - antauteksto (printita inter titolo + kaj tabelo) + \fileNameName - table header "dosiernomo" + \dateName - table header "dato" + \verName - table header "versio" + \descriptionName - table header "priskribo" + +----- +[1] Tiun determinadon vi povas konfiguri per la + pakajh-opcioj: + nocat12 - nur funkcias se vi uzas eTeX, alikaze + eble la cxef-dosiero aperos dufoje. + cat12 - funkcias kun aux sen eTeX, koncertante + la enhavon de \@filelist al kategorio 12. + Se vi neniun de tiuj opcioj donas, gxi laboras + kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX. + +[2] Tio povas okazi ekzemple, se vi invokas + LaTeX kun "\input{mainfile.tex}". diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-de b/Master/texmf-dist/doc/latex/dateiliste/README-de new file mode 100644 index 00000000000..dcb7d1410b6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/dateiliste/README-de @@ -0,0 +1,25 @@ +Dieses README ist für Version: + 2006/04/19 v0.2 % +---------------- +LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument + +Autor: Paul Ebermann (Paul-Ebermann@gmx.de). +Lizenz: LPPL 1.3b oder später, mit Maintenance-Status + "author-maintained". Siehe http://www.latex-project.org/lppl/. + +Geschrieben für den eigenen Gebrauch +(-> http://www.math.hu-berlin.de/~ebermann/alg-script/), +aber vielleicht ist es auch für andere von Nutzen. + +Zum Setzen der Dokumentation wird das Paket 'pauldoc' +(vom selben Autor) benötigt. + +Das Paket kommt als .dtx + .ins. +Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und +eventuell gleich nach texmf/tex/latex/paul/ installiert, +wenn docstrip entsprechend eingerichtet ist), mit +latex dateiliste.dtx kann (danach und eventuell nach einer +Aktualisierung der TeX-Dateidatenbank) die Dokumentation neu +erstellt werden. + +Zur Verwendung siehe dateiliste.pdf. diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-en b/Master/texmf-dist/doc/latex/dateiliste/README-en new file mode 100644 index 00000000000..dab41ef9ef4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/dateiliste/README-en @@ -0,0 +1,105 @@ +This README is for version: + 2006/04/19 v0.2 % +---------------- +LaTeX-package 'dateiliste' - include list of used files +(like \listfiles) in the document, and related features. + +Author: Paul Ebermann +License: LPPL 1.3b or later, author-maintained + (see http://www.latex-project.org/lppl/). + +All Documentation (other than this file) is in german. + +The typesetting of the documentation needs 'pauldoc' (from the +same author). +Additionally you'll need the packages 'ltxtable', 'tabularx', +'longtable' and 'rcsinfo'. + +The package comes as .dtx + .ins. +Run "latex dateiliste.ins" to create the style file and the +README-files (and maybe put them to texmf/tex/latex/paul/, if +your docstrip is configured accordingly), (after that and +maybe updating your TeX hash) run "latex dateiliste.dtx" +(some times) to create the documentation. + + Usage +------- +The package has three main features, which can +be used independently, but together are specially +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. + Use + + \ProvideFileInfos{$Id: $} + {short description} + + in your file, and do a CVS commit. + +(2) include main file: + + Normally the "main" file (given on the command + line to LaTeX) does not appear in the list given + by \listfiles. This is changed by the package for + the case that the file has the name \jobname.tex. + + (More precisely, the package adds \jobname.tex + iff this file exists and it not can be determinded[1] + to be already in the file list [2].) + + This is enabled by default and may be disabled + using the package option 'noaddmain'. + The macro + \mainFileToList + may also be invoked manually to add the main file. + +(3) include file list also in the (dvi) result + + You can use the command + + \printFileList[
] + + to include a pretty-printed version of the + file list as a section (by default \section*, + any sectioning command may be given as an + optional argument). + + You also have to use \listfiles in the + document preamble (otherwise you'll only get + an error message). + + The table only appears from the second LaTeX-run, + from the third one is complete, and may need some + more runs to align correctly. + + The title, preamble and table headers may be localized + with babel - translations for 'english', 'german', + 'ngerman' and 'esperanto' are included. + If you need something else or don't use babel, you have + to redefine the following macros: + + \fileListName - title ("List of Files") + \fileListPreamble - preamble (typeset before the table) + \fileNameName - table header "file name" + \dateName - table header "date" + \verName - table header "version" + \descriptionName - table header "description" + +----- +[1] this determination can be configured with + the package options + nocat12 - does only work with eTeX, else + may give double entry + cat12 - works also without eTeX, but may + have some side effects to other macro + packages, since it converts \@filelist + to cat 12. + The default setting works like cat12 on non-eTeX + and like nocat12 on eTeX. + +[2] this may occur when you invoke + LaTeX with "\input{mainfile.tex}". diff --git a/Master/texmf-dist/doc/latex/dateiliste/README-eo b/Master/texmf-dist/doc/latex/dateiliste/README-eo new file mode 100644 index 00000000000..6227f0c98c3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/dateiliste/README-eo @@ -0,0 +1,109 @@ +Tiu README (legumin) estas por versio: + 2006/04/19 v0.2 % +---------------- +LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand, +kiu antaue elprovas, chu la nomo jam ekzistas. + +Autoro: Paulo 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 +uzeblas por aliaj. + +La dokumentaro (escepte tiu chi dosiero) estas nur en la germana +lingvo. + +La pakajho bezonas la pakajhojn 'ltxtable', 'longtable', +'tabularx' kaj 'rcsinfo'. +Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro). + +La pakajho 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 +la dokumentaron. + + Uzado +------- + +La pakajho konsistas el tri chefaj bonajhoj, kiujn +oni povas uzi sendepende, sed kune ili estas speciale +utile. + +(1) automataj 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 + (kaj la listo de (3).) + Uzu + + \ProvideFileInfos{$Id: dateiliste.dtx,v 1.7 2006/04/19 14:57:24 ebermann Exp $} + {mallonga priskribo} + + en via dosiero, kaj faru 'cvs commit'. (CVS enmetos + informojn, kiun \ProvideFileInfos uzas.) + +(2) aldono de chefa dosiero + + Kutime la chefa 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 + + (Pli precize, la pakajho 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 + \mainFileToList + por fari tion. + +(3) enmetu la dosierliston en la rezulton + + Vi povas uzi la komandon + + \printFileList[
] + + por enmeti bele formatitan version de la + dosierlisto kiel sekcio (kutime '\section*', + sed vi povas uzi iun ajn sekci-komandon kiel + 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. + + La tabelo nur aperos ekde la dua LaTeX-voko, kaj + eble bezonos kelkajn pliajn por aspekti ghuste. + + 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', + redifinu la sekvajn makroojn: + + \fileListName - titolo ("Listo de dosieroj") + \fileListPreamble - antauteksto (printita inter titolo + kaj tabelo) + \fileNameName - table header "dosiernomo" + \dateName - table header "dato" + \verName - table header "versio" + \descriptionName - table header "priskribo" + +----- +[1] Tiun determinadon vi povas konfiguri per la + pakajh-opcioj: + nocat12 - nur funkcias se vi uzas eTeX, alikaze + eble la cxef-dosiero aperos dufoje. + cat12 - funkcias kun aux sen eTeX, koncertante + la enhavon de \@filelist al kategorio 12. + Se vi neniun de tiuj opcioj donas, gxi laboras + kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX. + +[2] Tio povas okazi ekzemple, se vi invokas + LaTeX kun "\input{mainfile.tex}". diff --git a/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf b/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf new file mode 100644 index 00000000000..b44f77b7c7d Binary files /dev/null and b/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf differ diff --git a/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx b/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx new file mode 100644 index 00000000000..615146f2ef1 --- /dev/null +++ b/Master/texmf-dist/source/latex/dateiliste/dateiliste.dtx @@ -0,0 +1,1197 @@ +% \iffalse meta-comment +%<*package|driver> +%% (C) 2006 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 +%% 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). +%% +%% 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. +% +% \fi +% +% \iffalse +%<*driver> +\documentclass[draft% + ] + {ltxdoc} +\usepackage{pauldoc}[2006/04/03] +\usepackage{dateiliste} +\usepackage{enumerate} +\listfiles +\begin{document} + \DocInput{dateiliste.dtx} +\end{document} +% +% +%This README is for version: +%Tiu README (legumin) estas por versio: +%Dieses README ist für Version: +%\NeedsTeXFormat{LaTeX2e}[2003/12/01] +%\ProvidesPackage{dateiliste}[% +% +% +% 2006/04/19 v0.2 % +% +% +% Ausgabe der Dateiliste (PE)] +%---------------- +% +% Hier noch der Inhalt der Readme-Datei. +%<*readme> +([de] unten - [eo] sube) +---------------- +[en] +% +%<*en|readme> +LaTeX-package 'dateiliste' - include list of used files +(like \listfiles) in the document, and related features. + +Author: Paul Ebermann +License: LPPL 1.3b or later, author-maintained + (see http://www.latex-project.org/lppl/). + +All Documentation (other than this file) is in german. + +The typesetting of the documentation needs 'pauldoc' (from the +same author). +Additionally you'll need the packages 'ltxtable', 'tabularx', +'longtable' and 'rcsinfo'. + +The package comes as .dtx + .ins. +Run "latex dateiliste.ins" to create the style file and the +README-files (and maybe put them to texmf/tex/latex/paul/, if +your docstrip is configured accordingly), (after that and +maybe updating your TeX hash) run "latex dateiliste.dtx" +(some times) to create the documentation. + + Usage +------- +The package has three main features, which can +be used independently, but together are specially +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. + Use + + \ProvideFileInfos{$Id: $} + {short description} + + in your file, and do a CVS commit. + +(2) include main file: + + Normally the "main" file (given on the command + line to LaTeX) does not appear in the list given + by \listfiles. This is changed by the package for + the case that the file has the name \jobname.tex. + + (More precisely, the package adds \jobname.tex + iff this file exists and it not can be determinded[1] + to be already in the file list [2].) + + This is enabled by default and may be disabled + using the package option 'noaddmain'. + The macro + \mainFileToList + may also be invoked manually to add the main file. + +(3) include file list also in the (dvi) result + + You can use the command + + \printFileList[
] + + to include a pretty-printed version of the + file list as a section (by default \section*, + any sectioning command may be given as an + optional argument). + + You also have to use \listfiles in the + document preamble (otherwise you'll only get + an error message). + + The table only appears from the second LaTeX-run, + from the third one is complete, and may need some + more runs to align correctly. + + The title, preamble and table headers may be localized + with babel - translations for 'english', 'german', + 'ngerman' and 'esperanto' are included. + If you need something else or don't use babel, you have + to redefine the following macros: + + \fileListName - title ("List of Files") + \fileListPreamble - preamble (typeset before the table) + \fileNameName - table header "file name" + \dateName - table header "date" + \verName - table header "version" + \descriptionName - table header "description" + +----- +[1] this determination can be configured with + the package options + nocat12 - does only work with eTeX, else + may give double entry + cat12 - works also without eTeX, but may + have some side effects to other macro + packages, since it converts \@filelist + to cat 12. + The default setting works like cat12 on non-eTeX + and like nocat12 on eTeX. + +[2] this may occur when you invoke + LaTeX with "\input{mainfile.tex}". +% +%<*readme> +---------------- +[de] +% +%<*de|readme> +LaTeX-Paket 'dateiliste' - Liste der verwendeten Dateien im Dokument + +Autor: Paul Ebermann (Paul-Ebermann@gmx.de). +Lizenz: LPPL 1.3b oder später, mit Maintenance-Status + "author-maintained". Siehe http://www.latex-project.org/lppl/. + +Geschrieben für den eigenen Gebrauch +(-> http://www.math.hu-berlin.de/~ebermann/alg-script/), +aber vielleicht ist es auch für andere von Nutzen. + +Zum Setzen der Dokumentation wird das Paket 'pauldoc' +(vom selben Autor) benötigt. + +Das Paket kommt als .dtx + .ins. +Mit "latex dateiliste.ins" wird die .sty-Datei erstellt (und +eventuell gleich nach texmf/tex/latex/paul/ installiert, +wenn docstrip entsprechend eingerichtet ist), mit +latex dateiliste.dtx kann (danach und eventuell nach einer +Aktualisierung der TeX-Dateidatenbank) die Dokumentation neu +erstellt werden. + +Zur Verwendung siehe dateiliste.pdf. +% +%<*readme> +---------------- +[eo-h] +% +%<*eo|readme> +LaTeX-pakajho 'dateiliste' - Variajho de \DeclareRobustCommand, +kiu antaue elprovas, chu la nomo jam ekzistas. + +Autoro: Paulo 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 +uzeblas por aliaj. + +La dokumentaro (escepte tiu chi dosiero) estas nur en la germana +lingvo. + +La pakajho bezonas la pakajhojn 'ltxtable', 'longtable', +'tabularx' kaj 'rcsinfo'. +Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro). + +La pakajho 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 +la dokumentaron. + + Uzado +------- + +La pakajho konsistas el tri chefaj bonajhoj, kiujn +oni povas uzi sendepende, sed kune ili estas speciale +utile. + + +(1) automataj 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 + (kaj la listo de (3).) + Uzu + + \ProvideFileInfos{$Id: dateiliste.dtx,v 1.7 2006/04/19 14:57:24 ebermann Exp $} + {mallonga priskribo} + + en via dosiero, kaj faru 'cvs commit'. (CVS enmetos + informojn, kiun \ProvideFileInfos uzas.) + +(2) aldono de chefa dosiero + + Kutime la chefa 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 + + (Pli precize, la pakajho 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 + \mainFileToList + por fari tion. + +(3) enmetu la dosierliston en la rezulton + + Vi povas uzi la komandon + + \printFileList[
] + + por enmeti bele formatitan version de la + dosierlisto kiel sekcio (kutime '\section*', + sed vi povas uzi iun ajn sekci-komandon kiel + 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. + + La tabelo nur aperos ekde la dua LaTeX-voko, kaj + eble bezonos kelkajn pliajn por aspekti ghuste. + + 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', + redifinu la sekvajn makroojn: + + \fileListName - titolo ("Listo de dosieroj") + \fileListPreamble - antauteksto (printita inter titolo + kaj tabelo) + \fileNameName - table header "dosiernomo" + \dateName - table header "dato" + \verName - table header "versio" + \descriptionName - table header "priskribo" + +----- +[1] Tiun determinadon vi povas konfiguri per la + pakajh-opcioj: + nocat12 - nur funkcias se vi uzas eTeX, alikaze + eble la cxef-dosiero aperos dufoje. + cat12 - funkcias kun aux sen eTeX, koncertante + la enhavon de \@filelist al kategorio 12. + Se vi neniun de tiuj opcioj donas, gxi laboras + kiel 'nocat12' en eTeX kaj kiel 'cat12' en ne-eTeX. + +[2] Tio povas okazi ekzemple, se vi invokas + LaTeX kun "\input{mainfile.tex}". +% +% +% \fi +% \CheckSum{0} +% +% \changes{v0.0}{2006/03/23}{Erste Fassung} +% \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.} +% +% \GetFileInfo{dateiliste.sty} +% +% +% \title{Das \pack{dateiliste}-Package -- Liste der verwendeten Dateien im Dokument\thanks{% +% 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 +% 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. +% \end{abstract} +% +% \tableofcontents +% +% +% \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 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 Kurzübersicht des Paketes auf +% Englisch, Deutsch und Esperanto kann ebenfalls mit 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 für die Datei, in der es aufgerufen wurde. +% \meta{id-string} sollte ein String sein, der wie +%\begin{verbatim} +% $Id: dateiliste.dtx,v 1.7 2006/04/19 14:57:24 ebermann Exp $ +%\end{verbatim} +% (Beispiel für diese Datei) aussieht. +% Diesen lässt 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 eingefüllt. +% +% \meta{kurzbeschreibung} sollte eine kurze Beschreibung der Funktion/des +% Inhaltes der Datei sein, optimalerweise nur ASCII-Zeichen. +% +% 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. +% +% \subsection{Hauptdatei in der Dateiliste, Package-Optionen} +% \DescribeMacro{\mainFileToList} +% 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.) +% +% Die interne Funktionsweise (und damit etwaige Nebenwirkungen) \DescribeMacro{cat12} +% hängt davon ab, ob eine der +% Package-Optionen 'cat12' oder 'nocat12' \DescribeMacro{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 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 ausgeführt, falls nicht die Package-Option 'noaddmain' +% \DescribeMacro{noaddmain} gesetzt wurde. +% Mit 'addmain' \DescribeMacro{addmain} kann das Vorgabe-Verhalten erzwungen werden. +% +% \subsection{Dateilisten-Ausgabe}\label{describe:printfilelist} +% \noindent\DescribeMacro{\printFileList}\oarg{gliederung} +% +% 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*' (für einen +% unnummerierten Abschnitt). +% +% 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 enthält ab dem dritten Lauf dann auch die Dateilisten-Datei). +% +% Die Liste wird als 4-spaltige Tabelle gesetzt. +% +% +% Falls das Paket \pack{babel} vor oder nach diesem Paket geladen wird, +% 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. +% +% 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 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} +% \printFileList[\subsubsection] +%\end{verbatim} +% +% \printFileList[\subsubsection] +% +% \subsection{Abhängigkeiten} +% +% Für die Funktion des Paketes sind die Pakete \pack{rcsinfo} (Jürgen Vollmer) 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. +% +% 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. +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \DoNotIndex{\',\@currname,\^,\begin,\end,\begingroup,\endgroup, +% \csname,\endcsname,\day,\def,\DeclareOption,\do, +% \edef,\else,\endinput,\expandafter,\fi,\footnote, +% \IfFileExists,\ifx,\immediate,\LaTeX,\let,\makeatletter, +% \makeatother,\month,\newcommand,\newif,\newwrite, +% \protect,\relax,\renewcommand,\space,\string,\textbf, +% \the,\two@digits,\u,\write,\xdef,\year} +% +% \section{Implementation} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Optionen} +% \changes{v0.1}{2006/04/02}{Optionen \texttt{addmain} und \texttt{noaddmain} hinzugefügt.} +% Wir merken uns die ausgewählte Option in einem '\if'. +% \begin{macrocode} +\newif\if@dateiliste@addMain +\DeclareOption{addmain} {% + \@dateiliste@addMaintrue +} +\DeclareOption{noaddmain} {% + \@dateiliste@addMainfalse +} +% \end{macrocode} +% +% \changes{v0.2}{2006/04/19}{Optionen 'cat12' und 'nocat12' hinzugefügt.} +% Das gleiche gilt für 'cat12'/'nocat12'. +% \begin{macrocode} +\newif\if@dateiliste@catxii \@dateiliste@catxiifalse +\newif\if@dateiliste@nocatxii \@dateiliste@nocatxiifalse +\DeclareOption{cat12} {% + \@dateiliste@catxiitrue +} +\DeclareOption{nocat12} {% + \@dateiliste@nocatxiitrue +} +% \end{macrocode} +% Die Standard-Option ist 'addmain'. +% \begin{macrocode} +\ExecuteOptions{addmain} +\ProcessOptions +% \end{macrocode} +% +% +% \subsection{Aktuelle Versionsnummern in der Dateiliste} +% +% Zunächst wollen wir in der durch '\listfiles' +% provozierten Ausgabe automatisch sinnvolle Infos haben. Dafür +% 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} +% \end{macrocode} +% +% \begin{macro}{\ProvideFileInfos}\noindent\marg{id-string}\marg{kurzbeschreibung} +% +% +% \begin{macrocode} +\newcommand*{\ProvideFileInfos}[2] {% +% \end{macrocode} +% 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} aufhört - in der Definition steht da nämlich ein Leerzeichen +% am Ende der Parameterliste. +% \begin{macrocode} + \rcsInfo #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 '\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 würde, dass die Information der +% richtigen Datei zugeschrieben wird). +% \begin{macrocode} + {\expandafter\@firstofone\rcsInfoFile}% +% \end{macrocode} +% 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 später von '\@dofilelist' (und +% unserem '\@writefilelist') verwendet wird. +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Dateiliste} +% +% \changes{v0.1}{2006/03/31}{\pack{ltxtable} verwendet.} +% 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 (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 lädt). +% +% \begin{macrocode} +\RequirePackage{ltxtable} +% \end{macrocode} +% +% +% \begin{macro}{\dateiliste@preInclude} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\dateiliste@postInclude} +% \changes{v0.1}{2006/03/31}{Neu} +% Diese beiden Macros werden vor bzw. nach dem +% Laden (und setzen) der Dateiliste aufgerufen. +% 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 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.) +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{pauldoc}{% + \newcommand*{\dateiliste@preInclude}{\DeleteShortVerb{\'}}% + \newcommand*{\dateiliste@postInclude}{\MakeShortVerb{\'}}% + }{% + \newcommand*{\dateiliste@preInclude}{\relax}% + \newcommand*{\dateiliste@postInclude}{\relax}% + }% +}% +% \end{macrocode} +% Die beiden Makros kann man sich auch selbst umdefinieren, +% falls andere Pakete Inkompatibilitäten ergeben. +% \end{macro} +% \end{macro} +% +% \subsubsection{Ausgabe der Liste} +% +% \begin{macro}{\printFileList}\noindent\oarg{gliederung} +% \changes{v0.1}{2006/04/02}{Fast komplett neue Implementation, +% entsprechend auch anderes Ergebnis.} +% +% Der Vorgabewert für \meta{gliederung} ist '\section*', +% also ein unnummerierter Abschnitt. +% \begin{macrocode} +\newcommand*{\printFileList}[1][\section*] {% \printFileList +% \end{macrocode} +% 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. +% \begin{macrocode} + \@ifundefined{@dofilelist} + {% + \PackageWarning{dateiliste} + { + \protect\printFileList\space works only if + \protect\listfiles\space is given in the preamble. + } + }% + {% else (\@ifundefined{@dofilelist}) +% \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 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 überprüfen zunächst, +% ob die Datei schon existiert. +% \begin{macrocode} + \IfFileExists{\jobname.filelist}{% +% \end{macrocode} +% \begin{macro}{\dateiliste@addtofilelist} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\@addtofilelist} +% \changes{v0.1}{2006/03/31}{neu: Umdefinition.} +% 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 Nichtübereinstimmung das Original-'\@addtofilelist' auf.) +% \begin{macrocode} + \let \dateiliste@addtofilelist = \@addtofilelist + \def\@addtofilelist####1{% + \edef\dateiliste@tempa{####1}% + \edef\dateiliste@tempb{\jobname.filelist}\relax% + \ifx\dateiliste@tempa\dateiliste@tempb + \relax + \else + \dateiliste@addtofilelist{####1} + \fi + }% +% \end{macrocode} +% \end{macro} +% \end{macro} +% '\dateiliste@preInclude' schaltet \verb+'+ als verbatim-Char ab (und +% das Makro '\dateiliste@postInclude' schaltet es nachher wieder an), +% falls \pack{pauldoc} geladen wurde (ansonsten tun sie nichts, falls +% nicht von jemand anders neudefiniert). Die +% Datei selbst wird mittels '\LTXtable' geladen. +% \begin{macrocode} + \dateiliste@preInclude + \LTXtable{\linewidth}{\jobname.filelist}% + \dateiliste@postInclude +% \end{macrocode} +% Danach stellen wir '\@addtofilelist' wieder her und +% fügen unsere Dateilisten-Datei auch hinzu. +% \begin{macrocode} + \let \@addtofilelist = \dateiliste@addtofilelist + \@addtofilelist{\jobname.filelist}% + } +% \end{macrocode} +% Falls \meta{jobname}'.filelist' nicht vorhanden war, geben +% wir einen Hinweistext aus, dass man \LaTeX\ noch einmal +% laufen lassen soll. +% \begin{macrocode} + {% + \PackageWarning{dateiliste}{ + Run LaTeX again to include the File list. + }% + }% +% \end{macrocode} +% +% +% \subsubsection{Erstellen der Liste} +% +% Jetzt noch ein paar Befehle, um die Listen-Datei zu generieren \ldots +% (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 vollständig gesammelt +% wurde -- schreiben wir sie -- mit den passenden Formatierungsanweisungen -- +% in eine Datei. +% (Das ganze in einer Gruppe, damit nichts kaputtgeht, und temporäre Makros +% nachher wieder freigegeben werden.) +% \begin{macrocode} + \AtEndDocument{% + \begingroup + \@writefilelist + \endgroup + }% +% \end{macrocode} +% \begin{macro}{\@writefilelist} +% Eine Variante von '\@dofilelist', die den Inhalt -- als Tabellenzeilen -- in +% die Datei \meta{jobname}'.filelist' schreibt. +% \begin{macrocode} + \newcommand*{\@writefilelist}{% \@writefilelist + \newwrite\dateiliste@file + \immediate\openout\dateiliste@file = \jobname.filelist +% \end{macrocode} +% 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} + \edef\dateiliste@today{% + \the\year/\two@digits{\the\month}/\two@digits{\the\day}}% + \immediate\write\dateiliste@file{% + \string\ProvidesFile{\jobname.filelist}% + [\dateiliste@today\space --- automatically % + generated filelist]% + }% +% \end{macrocode} +% Die eigentliche Liste wird in einer 'longtable' gesetzt. +% Diese soll drei linksbündig gesetzte Spalten ('l') und dann +% eine mit Blocksatz ('X' -- mittels \pack{ltxtable} aus \pack{tabularx} +% importiert), welche den restlichen Platz ausfüllt, enthalten. +% (Linksbündig wäre mir zwar auch für die letzte Spalte lieber, +% aber das geht mit \pack{ltxtable} nicht, dafür bräuchte man +% \pack{tabulary}.) +% \begin{macrocode} + \immediate\write\dateiliste@file{% + \string\LTleft=0pt% + \string\LTright=0pt% + \string\begin{longtable}{lllX}% +% \end{macrocode} +% Die Überschrift -- aus übersetzbaren Textteilen, siehe unten, bestehend -- +% wiederholt sich auf jeder Seite (deswegen '\endhead' anstatt '\\'). +% \begin{macrocode} + \string\textbf{\fileNameName} & + \string\textbf{\dateName} & + \string\textbf{\verName} & + \string\textbf{\descriptionName} + \string\endhead% + }% +% \end{macrocode} +% Jetzt kommt die Schleife mit den einzelnen Dateien. +% 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} +% 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 + \edef\dateiliste@filename{% + \filename@base.% + \ifx\filename@ext\relax tex\else\filename@ext\fi}% + \expandafter\let\expandafter\dateiliste@fileversion + \csname ver@\dateiliste@filename\endcsname +% \end{macrocode} +% Jetzt schreiben wir, durch '&' getrennt, die einzelnen Felder raus. +% Zunächst der Dateiname, \ldots +% \begin{macrocode} + \immediate\write\dateiliste@file{% + \dateiliste@filename\space& % +% \end{macrocode} +% \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. Dafür verfüttern wir das expandierte '\dateiliste@fileversion' +% 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 +% am Ende ja nicht ausgegeben.) +% \begin{macrocode} + \expandafter\dateiliste@parse@ver + \dateiliste@fileversion{} {} {} \relax + \fi +% \end{macrocode} +% Und jetzt noch ein '\\', um die Tabellenzeile zu beenden. +% \begin{macrocode} + \string\\}% + }% \@for +% \end{macrocode} +% Nach der Schleife beenden wir die Tabelle und schließen +% dann die Datei wieder. +% \begin{macrocode} + \immediate\write\dateiliste@file{\string\end{longtable}} + \immediate\closeout\dateiliste@file + }% +% \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 zusätzlichen '&', wieder zurück. +% \begin{macrocode} + \def\dateiliste@parse@ver##1 ##2 {##1 & ##2 & }% +% \end{macrocode} +% \end{macro} +% Damit ist der else-Teil und auch das ganze Makro '\printFileList' zu Ende. +% \begin{macrocode} + }% +}% +% \end{macrocode} +% \end{macro} +% \subsubsection{Anpassbare Texte und Übersetzungen} +% \begin{macro}{\fileListPreamble} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\fileListName} +% \begin{macro}{\fileNameName} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\dateName} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\verName} +% \changes{v0.1}{2006/03/31}{Neu} +% \begin{macro}{\descriptionName} +% \changes{v0.1}{2006/03/31}{Neu} +% 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{} + which produced this document. \footnote{More precisely, it is + the list of files used one \LaTeX-run before the one which + produced this document, but after some runs the list should + stabilize.} +} +\newcommand*\fileListName{List of Files} +\newcommand*\fileNameName{file name} +\newcommand*\dateName{release date} +\newcommand*\verName{version} +\newcommand*\descriptionName{description} +% \end{macrocode} +% \begin{macro}{\dateiliste@babel} +% Hier noch gleich ein paar Übersetzungen. +% Wir definieren hier ein einmal-Makro, welches +% 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} +% Zunächst Englisch - das sollte das gleiche wie die Standard-Einstellungen sein. +% \begin{macrocode} + \addto{\extrasenglish}{% + \renewcommand*\fileListPreamble{% + Here is the list of all files used during the run of \LaTeX{} + which produced this document.\footnote{More precisely, it is + the list of files used one \LaTeX-run before the one which + produced this document, but after some runs the list + should stabilize.} + } + \renewcommand*\fileListName{List of Files}% + \renewcommand*\fileNameName{file name} + \renewcommand*\dateName{release date} + \renewcommand*\verName{ver.} + \renewcommand*\descriptionName{description} + }% +% \end{macrocode} +% Deutsch mit neuer Rechtschreibung. +% \begin{macrocode} + \addto{\extrasgerman}{% + \renewcommand*\fileListPreamble{% + Hier die Liste aller Dateien, die während 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.} + } + \renewcommand*\fileListName{Liste der Dateinamen}% + \renewcommand*\fileNameName{Dateiname} + \renewcommand*\dateName{Datum} + \renewcommand*\verName{Ver.} + \renewcommand*\descriptionName{Beschreibung} + }% +% \end{macrocode} +% Deutsch mit alter Rechtschreibung: ist das gleiche (hier tauchen +% keine Fälle mit Änderungen auf.) +% \begin{macrocode} + \addto{\extrasngerman}{% + \renewcommand*\fileListPreamble{% + Hier die Liste aller Dateien, die während 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.} + } + \renewcommand*\fileListName{Liste der Dateinamen}% + \renewcommand*\fileNameName{Dateiname} + \renewcommand*\dateName{Datum} + \renewcommand*\verName{Ver.} + \renewcommand*\descriptionName{Beschreibung} + }% +% \end{macrocode} +% Für die Verwender der Internationalen Sprache (siehe 'www.esperanto.de'): +% \begin{macrocode} + \addto{\extrasesperanto}{% + \renewcommand*\fileListPreamble{% + Jen listo de \^ciuj dosieroj, kiuj estis uzitaj dum + la \LaTeX-rulo, kiu produktis tiun \^ci dokumenton. + \footnote{Pli precize: estas la listo de dosieroj uzitaj + unu rulon anta\u{u} tiu, kiu produktis tiun \^ci + dokumenton. Sed kutime post kelkaj ruloj la listo + devus stabili\^gi.} + } + \renewcommand*\fileListName{Listo de dosieroj}% + \renewcommand*\fileNameName{dosiernomo} + \renewcommand*\dateName{dato} + \renewcommand*\verName{versio} + \renewcommand*\descriptionName{priskribo} + }% +% \end{macrocode} +% 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% +}% +% \end{macrocode} +% \end{macro} +% Wir untersuchen jetzt, ob \pack{babel} schon geladen wurde. +% Diese Fallunterscheidung ist notwendig, weil der Code von +% '\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 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 +% Sprachwechsel bitte angepasst werden sollten. +% \begin{macrocode} + \dateiliste@babel% +}% +% \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 überflüssig, und '\addto' gibt es auch +% nicht, also können wir dann '\dateiliste@babel' vernichten). +% \begin{macrocode} +{% + \AtBeginDocument{% + \@ifpackageloaded{babel}{% + \dateiliste@babel% + }{% + \let \dateiliste@babel = \relax + }% + }% +}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Hauptdatei in die Dateiliste} +% \begin{macro}{\mainFileToList} +% \changes{v0.1}{2006/04/02}{Neu} +% \changes{v0.2}{2006/04/19}{Mögliche Erkennung des Dateinamens jetzt auch ohne \eTeX} +% 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 höchstwahrscheinlich die Haupt-Datei des +% Dokumentes, 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 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 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 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 anschließend '\@filelist' komplett aus +% Kategorie-12-Zeichen besteht, was eventuell zu Problemen mit anderen +% Paketen führt, welche ebenfalls diese Liste verarbeiten und auf deren +% Catcodes angewiesen sind. +% +% Daher haben ich zwei Paket-Optionen hinzugefügt, welche eine entsprechende +% Auswahl ermöglichen: +% \begin{description} +% \item[Standardvorgehen:] Falls \eTeX\ verwendet wurde, nimm (2), +% für \TeX\ nimm (1). +% \item[Mit Option \texttt{nocat12}:] Falls \eTeX\ verwendet wurde, nimm (2), +% sonst (3). +% \item[Mit Option \texttt{cat12}:] Nimm immer (1). +% \end{description} +% +% (Vor Version 0.2 gab es nur das Verhalten, welches jetzt 'nocat12' entspricht.) +% +% \begin{macro}{\dateiliste@catxii@transform} +% 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} + \newcommand*{\dateiliste@catxii@transform} + { + \edef\dateiliste@mainfile{\jobname.tex}% + \edef\dateiliste@mainfile{% + \expandafter\strip@prefix\meaning\dateiliste@mainfile + }% +% \end{macrocode} +% 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 für (2) mit '\scantokens': +% In \eTeX\ gibt es dagegen den '\scantokens'-Befehl, welcher +% 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'-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 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' +% ausgeführt wird, sind ja die Dokumenten-Catcodes in Kraft, nicht die einer +% Package-Datei.) +% \begin{macrocode} + \newcommand*{\dateiliste@scantoken@tr} + {% + \scantokens + \expandafter{% + \expandafter\makeatletter + \expandafter\edef + \expandafter\dateiliste@mainfile + \expandafter{% + \jobname + .tex}% + \makeatother + }% + }% +% \end{macrocode} +% \end{macro} +% Hier jetzt die große Fallunterscheidung: +% \begin{macrocode} + \if@dateiliste@catxii + \dateiliste@catxii@transform + \else + \@ifundefined{scantokens} + {% + \if@dateiliste@nocatxii +% \end{macrocode} +% 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 können \meta{jobname}'.tex' nicht aus der +% Liste entfernen. +% \begin{macrocode} + \edef\dateiliste@mainfile{\jobname.tex}% + \else + \dateiliste@catxii@transform + \fi + } + {% + \dateiliste@scantoken@tr + }% + \fi +% \end{macrocode} +% Jetzt haben wir in '\dateiliste@mainfile' den Namen der Hauptdatei, +% auch (je nach Optionen und \eTeX-Verfügbarkeit) '@filelist' vorbereitet. +% +% 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} +% Anschließend fügen wir den Dateinamen an den \emph{Anfang} der Liste an. +% \begin{macrocode} + \xdef\@filelist{% + \dateiliste@mainfile,\@filelist + }% + \endgroup +% \end{macrocode} +% Falls \meta{jobname}'.tex' nicht existiert, ist dies sicher nicht +% die Hauptdatei. Dann haben wir es entweder mit einer '.dtx'-Datei +% zu tun (die sowieso durch das doppelte Einlesen noch einmal auftaucht), +% oder irgendeinen anderen Fall, den ich nicht vorhersehen kann. Also +% machen wir dann nichts. +% \begin{macrocode} + }{% + \relax + }% +}% +% \end{macrocode} +% \end{macro} +% +% Am Ende des Dokumentes (aber noch vor dem Aufruf von '\@writefilelist', der von +% '\printFileList' hinzugefügt wird) rufen wir, sofern die passende +% Option gesetzt war, das eben definierte Makro auf. +% \begin{macrocode} +\if@dateiliste@addMain + \AtEndDocument{\mainFileToList} +\fi +% \end{macrocode} +% +% \subsection{Schluss} +% \begin{macrocode} +\endinput % +% +% \end{macrocode} +% +% \Finale +%\endinput +% +%<*müll> + + +%%% Folgendes ist nur für meinen Editor. +%%% +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: +% diff --git a/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins b/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins new file mode 100644 index 00000000000..8684643f521 --- /dev/null +++ b/Master/texmf-dist/source/latex/dateiliste/dateiliste.ins @@ -0,0 +1,70 @@ +%% +%% (C) 2002-2006 Paul Ebermann - Installationsdatei zu dateiliste.dtx +%% +%% Der vollständige Urheberrechtshinweis befindet sich +%% am Begin von dateiliste.dtx. +%% +%% Ich gebe keine Garantie irgendeiner Art. +%% + +\input docstrip.tex +\usedir{tex/latex/paul} + +\Msg{**********************************************************} +\Msg{* Ich werde Dateien in \showdirectory{tex/latex/paul} } +\Msg{* installieren. Bitte stellen Sie sicher, } +\Msg{* dass dieses Verzeichnis vorhanden ist. } +\Msg{* } + +%% der folgende Text wird in jeder generierten +%% Datei am Anfang eingefügt. +\preamble + + ,--------------------------------------------------. + | Das ist eine generierte Datei. | + | | + | (c) 2006 Paul Ebermann. | + '--------------------------------------------------' +\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{# } +\Msg{# Um die Installation zu beenden, } +\Msg{# müssen Sie die folgenden Dateien } +\Msg{# in Ihrem TeX-Suchbaum unterbringen: } +\Msg{# } +\Msg{# dateiliste.sty } +\Msg{# } +\Msg{# Um eine Dokumentation zu erzeugen, } +\Msg{# benutzen Sie } +\Msg{# } +\Msg{# latex dateiliste.dtx } +\Msg{# } +\Msg{# Viel Spaß } +\Msg{# Paul Ebermann } +\Msg{# } +\Msg{#######################} + +\endbatchfile + + +%%% Folgendes ist nur für meinen Editor. +%%% +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty b/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty new file mode 100644 index 00000000000..861b948227d --- /dev/null +++ b/Master/texmf-dist/tex/latex/dateiliste/dateiliste.sty @@ -0,0 +1,293 @@ +%% +%% This is file `dateiliste.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dateiliste.dtx (with options: `package') +%% +%% ,--------------------------------------------------. +%% | Das ist eine generierte Datei. | +%% | | +%% | (c) 2006 Paul Ebermann. | +%% '--------------------------------------------------' +%% (C) 2006 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 +%% 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). +%% +%% 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. +\NeedsTeXFormat{LaTeX2e}[2003/12/01] +\ProvidesPackage{dateiliste}[% + 2006/04/19 v0.2 % + Ausgabe der Dateiliste (PE)] +\newif\if@dateiliste@addMain +\DeclareOption{addmain} {% + \@dateiliste@addMaintrue +} +\DeclareOption{noaddmain} {% + \@dateiliste@addMainfalse +} +\newif\if@dateiliste@catxii \@dateiliste@catxiifalse +\newif\if@dateiliste@nocatxii \@dateiliste@nocatxiifalse +\DeclareOption{cat12} {% + \@dateiliste@catxiitrue +} +\DeclareOption{nocat12} {% + \@dateiliste@nocatxiitrue +} +\ExecuteOptions{addmain} +\ProcessOptions +\RequirePackage[nofancy, notoday]{rcsinfo} +\newcommand*{\ProvideFileInfos}[2] {% + \rcsInfo #1 % + \ProvidesFile% + {\expandafter\@firstofone\rcsInfoFile}% + [\rcsInfoDate\space v\rcsInfoRevision\space #2]% +} +\RequirePackage{ltxtable} +\AtBeginDocument{% + \@ifpackageloaded{pauldoc}{% + \newcommand*{\dateiliste@preInclude}{\DeleteShortVerb{\'}}% + \newcommand*{\dateiliste@postInclude}{\MakeShortVerb{\'}}% + }{% + \newcommand*{\dateiliste@preInclude}{\relax}% + \newcommand*{\dateiliste@postInclude}{\relax}% + }% +}% +\newcommand*{\printFileList}[1][\section*] {% \printFileList + \@ifundefined{@dofilelist} + {% + \PackageWarning{dateiliste} + { + \protect\printFileList\space works only if + \protect\listfiles\space is given in the preamble. + } + }% + {% else (\@ifundefined{@dofilelist}) + #1{\fileListName}\label{sec:filelist}% + \fileListPreamble + \IfFileExists{\jobname.filelist}{% + \let \dateiliste@addtofilelist = \@addtofilelist + \def\@addtofilelist####1{% + \edef\dateiliste@tempa{####1}% + \edef\dateiliste@tempb{\jobname.filelist}\relax% + \ifx\dateiliste@tempa\dateiliste@tempb + \relax + \else + \dateiliste@addtofilelist{####1} + \fi + }% + \dateiliste@preInclude + \LTXtable{\linewidth}{\jobname.filelist}% + \dateiliste@postInclude + \let \@addtofilelist = \dateiliste@addtofilelist + \@addtofilelist{\jobname.filelist}% + } + {% + \PackageWarning{dateiliste}{ + Run LaTeX again to include the File list. + }% + }% + \AtEndDocument{% + \begingroup + \@writefilelist + \endgroup + }% + \newcommand*{\@writefilelist}{% \@writefilelist + \newwrite\dateiliste@file + \immediate\openout\dateiliste@file = \jobname.filelist + \edef\dateiliste@today{% + \the\year/\two@digits{\the\month}/\two@digits{\the\day}}% + \immediate\write\dateiliste@file{% + \string\ProvidesFile{\jobname.filelist}% + [\dateiliste@today\space --- automatically % + generated filelist]% + }% + \immediate\write\dateiliste@file{% + \string\LTleft=0pt% + \string\LTright=0pt% + \string\begin{longtable}{lllX}% + \string\textbf{\fileNameName} & + \string\textbf{\dateName} & + \string\textbf{\verName} & + \string\textbf{\descriptionName} + \string\endhead% + }% + \@for\@currname:=\@filelist\do{% \@for + \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& % + \ifx\dateiliste@fileversion\relax + --- + \else + \expandafter\dateiliste@parse@ver + \dateiliste@fileversion{} {} {} \relax + \fi + \string\\}% + }% \@for + \immediate\write\dateiliste@file{\string\end{longtable}} + \immediate\closeout\dateiliste@file + }% + \def\dateiliste@parse@ver##1 ##2 {##1 & ##2 & }% + }% +}% +\newcommand*\fileListPreamble{ + Here is the list of all files used during the run of \LaTeX{} + which produced this document. \footnote{More precisely, it is + the list of files used one \LaTeX-run before the one which + produced this document, but after some runs the list should + stabilize.} +} +\newcommand*\fileListName{List of Files} +\newcommand*\fileNameName{file name} +\newcommand*\dateName{release date} +\newcommand*\verName{version} +\newcommand*\descriptionName{description} +\newcommand*{\dateiliste@babel}{ + \addto{\extrasenglish}{% + \renewcommand*\fileListPreamble{% + Here is the list of all files used during the run of \LaTeX{} + which produced this document.\footnote{More precisely, it is + the list of files used one \LaTeX-run before the one which + produced this document, but after some runs the list + should stabilize.} + } + \renewcommand*\fileListName{List of Files}% + \renewcommand*\fileNameName{file name} + \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, + 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.} + } + \renewcommand*\fileListName{Liste der Dateinamen}% + \renewcommand*\fileNameName{Dateiname} + \renewcommand*\dateName{Datum} + \renewcommand*\verName{Ver.} + \renewcommand*\descriptionName{Beschreibung} + }% + \addto{\extrasngerman}{% + \renewcommand*\fileListPreamble{% + Hier die Liste aller Dateien, die während 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.} + } + \renewcommand*\fileListName{Liste der Dateinamen}% + \renewcommand*\fileNameName{Dateiname} + \renewcommand*\dateName{Datum} + \renewcommand*\verName{Ver.} + \renewcommand*\descriptionName{Beschreibung} + }% + \addto{\extrasesperanto}{% + \renewcommand*\fileListPreamble{% + Jen listo de \^ciuj dosieroj, kiuj estis uzitaj dum + la \LaTeX-rulo, kiu produktis tiun \^ci dokumenton. + \footnote{Pli precize: estas la listo de dosieroj uzitaj + unu rulon anta\u{u} tiu, kiu produktis tiun \^ci + dokumenton. Sed kutime post kelkaj ruloj la listo + devus stabili\^gi.} + } + \renewcommand*\fileListName{Listo de dosieroj}% + \renewcommand*\fileNameName{dosiernomo} + \renewcommand*\dateName{dato} + \renewcommand*\verName{versio} + \renewcommand*\descriptionName{priskribo} + }% + \let \dateiliste@babel = \relax% +}% +\@ifpackageloaded{babel} +{% + \dateiliste@babel% +}% +{% + \AtBeginDocument{% + \@ifpackageloaded{babel}{% + \dateiliste@babel% + }{% + \let \dateiliste@babel = \relax + }% + }% +}% +\newcommand*{\mainFileToList}{% \mainFileToList + \IfFileExists{\jobname.tex} {% + \begingroup + \newcommand*{\dateiliste@catxii@transform} + { + \edef\dateiliste@mainfile{\jobname.tex}% + \edef\dateiliste@mainfile{% + \expandafter\strip@prefix\meaning\dateiliste@mainfile + }% + \edef\@filelist{\expandafter\strip@prefix\meaning\@filelist}% + }% + \newcommand*{\dateiliste@scantoken@tr} + {% + \scantokens + \expandafter{% + \expandafter\makeatletter + \expandafter\edef + \expandafter\dateiliste@mainfile + \expandafter{% + \jobname + .tex}% + \makeatother + }% + }% + \if@dateiliste@catxii + \dateiliste@catxii@transform + \else + \@ifundefined{scantokens} + {% + \if@dateiliste@nocatxii + \edef\dateiliste@mainfile{\jobname.tex}% + \else + \dateiliste@catxii@transform + \fi + } + {% + \dateiliste@scantoken@tr + }% + \fi + \@expandtwoargs\@removeelement{\dateiliste@mainfile}% + \@filelist\@filelist + \xdef\@filelist{% + \dateiliste@mainfile,\@filelist + }% + \endgroup + }{% + \relax + }% +}% +\if@dateiliste@addMain + \AtEndDocument{\mainFileToList} +\fi +\endinput % +\endinput +%% +%% End of file `dateiliste.sty'. diff --git a/Master/texmf-dist/tpm/dateiliste.tpm b/Master/texmf-dist/tpm/dateiliste.tpm new file mode 100644 index 00000000000..27485164d5c --- /dev/null +++ b/Master/texmf-dist/tpm/dateiliste.tpm @@ -0,0 +1,32 @@ + + + + dateiliste + Package + 2006/04/19 15:15:00 + + karl + The dateiliste package. + + + 262780 + + +texmf-dist/tex/latex/dateiliste/dateiliste.sty +texmf-dist/tpm/dateiliste.tpm + + +texmf-dist/doc/latex/dateiliste/README +texmf-dist/doc/latex/dateiliste/README-de +texmf-dist/doc/latex/dateiliste/README-en +texmf-dist/doc/latex/dateiliste/README-eo +texmf-dist/doc/latex/dateiliste/dateiliste.pdf + + +texmf-dist/source/latex/dateiliste/dateiliste.dtx +texmf-dist/source/latex/dateiliste/dateiliste.ins + + Package/dateiliste + + + diff --git a/Master/texmf/lists/dateiliste b/Master/texmf/lists/dateiliste new file mode 100644 index 00000000000..063978fc7ad --- /dev/null +++ b/Master/texmf/lists/dateiliste @@ -0,0 +1,11 @@ +texmf-dist/doc/latex/dateiliste/README +texmf-dist/doc/latex/dateiliste/README-de +texmf-dist/doc/latex/dateiliste/README-en +texmf-dist/doc/latex/dateiliste/README-eo +texmf-dist/doc/latex/dateiliste/dateiliste.pdf +texmf-dist/source/latex/dateiliste/dateiliste.dtx +texmf-dist/source/latex/dateiliste/dateiliste.ins +texmf-dist/tex/latex/dateiliste/dateiliste.sty +texmf-dist/tpm/dateiliste.tpm + +texmf/lists/dateiliste diff --git a/Master/texmf/tpm/collection-latexextra.tpm b/Master/texmf/tpm/collection-latexextra.tpm index 964cb8c3fae..be5518a01f7 100644 --- a/Master/texmf/tpm/collection-latexextra.tpm +++ b/Master/texmf/tpm/collection-latexextra.tpm @@ -99,6 +99,7 @@ A large collection of add-on packages for LaTeX. + -- cgit v1.2.3