From c3c4375bcba41f1430e538b13b1a11300a1a1a5f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 Nov 2009 19:52:58 +0000 Subject: dateiliste 0.5 (7nov09) git-svn-id: svn://tug.org/texlive/trunk@16032 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/dateiliste/README | 119 +- Master/texmf-dist/doc/latex/dateiliste/README-de | 13 +- Master/texmf-dist/doc/latex/dateiliste/README-en | 22 +- Master/texmf-dist/doc/latex/dateiliste/README-eo | 88 +- .../texmf-dist/doc/latex/dateiliste/dateiliste.pdf | Bin 275453 -> 268252 bytes .../source/latex/dateiliste/dateiliste.dtx | 1243 +++++++++++++++----- .../source/latex/dateiliste/dateiliste.ins | 27 +- .../texmf-dist/tex/latex/dateiliste/dateiliste.sty | 198 +++- Master/tlpkg/libexec/ctan2tds | 11 +- 9 files changed, 1300 insertions(+), 421 deletions(-) (limited to 'Master') 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 (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 + 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 (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 + 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 Binary files a/Master/texmf-dist/doc/latex/dateiliste/dateiliste.pdf 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 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. % % \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} % % %This README is for version: %Tiu README (legumin) estas por versio: -%Dieses README ist fr Version: +%Dieses README ist für Version: %\NeedsTeXFormat{LaTeX2e}[2003/12/01] %\ProvidesPackage{dateiliste}[% % % -% 2006/07/27 v0.3 % +% 2009/11/04 v0.5 % % % % 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 (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. % %<*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. % %<*readme> ---------------- -[eo-h] +[eo] % %<*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 + 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 +}% +% +% \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: -% +% 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} diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 7b70edf1f4a..7ffba6864a5 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1216,6 +1216,7 @@ $standardins='\.ins'; %specialinsrunner = ( 'bullcntr' => 'latex', # requires interaction 'ctable' => 'latex', # requires interaction + 'dateiliste' => 'latex', # requires interaction 'geometry' => 'tex', 'pauldoc' => 'latex', # requires interaction 'polski' => 'latex', # requires interaction @@ -1492,12 +1493,13 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot' %specialclean = ( 'a2ping' => 'README', # not worth whole separate doc subdir 'accfonts' => $standardclean . '|dvips.enc', # dup enc - 'achemso' => "$standardclean|jawltxdoc.sty", # temp file for doc - 'acmconf' => "$standardclean|flushend.sty", # dup with sttools + 'achemso' => $standardclean . '|jawltxdoc.sty', # temp file for doc + 'acmconf' => $standardclean . '|flushend.sty', # dup with sttools 'apalike' => "apalike2.bst", # does not belong 'bbm-macros' => $standardclean . '|^bbm$', # symlink - 'chemscheme' => "$standardclean|jawltxdoc.sty", # temp file for doc - 'chemstyle' => "$standardclean|jawltxdoc.sty", # temp file for doc + 'chemscheme' => $standardclean . '|jawltxdoc.sty', # temp file for doc + 'chemstyle' => $standardclean . '|jawltxdoc.sty', # temp file for doc + 'dateiliste' => $standardclean . '|dateiliste.README*', # already in dist 'elvish' => '\.pk3', # no pk files 'epstopdf' => 'epstopdf\.pdf', # we will generate 'findhyph' => 'findhyph.pdf', # we will generate from man ourselves @@ -1522,7 +1524,6 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot' 'bbcard' => 'bbcard.tpm', 'chessboard' => 'chessboard.pdf', 'chessfss' => 'chessfonts_gallery.pdf|chessfss.pdf', - 'dateiliste' => 'dateiliste.README*', # already in dist 'dcpic' => '.*\.pdf', # no source 'din1505' => 'leitbild3.pdf|normpatsoft.pdf', # no source 'ecclesiastic' => 'ecclesiastic-sample.pdf', # no source -- cgit v1.2.3