diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2012-10-06 09:00:24 +0000 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2012-10-06 09:00:24 +0000 |
commit | d98d400320f231c02f03a9a64f95d0163404dedd (patch) | |
tree | 7915ceff5f2973cf94e6e6f68a639ca253b699d7 /Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty | |
parent | 3bb2d4a58ff5587b590190befef2752aa069c110 (diff) |
longnamefilelist update
git-svn-id: svn://tug.org/texlive/trunk@27889 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty b/Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty new file mode 100644 index 00000000000..e9615888f99 --- /dev/null +++ b/Master/texmf-dist/tex/latex/longnamefilelist/longnamefilelist.sty @@ -0,0 +1,188 @@ +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{longnamefilelist}[2012/09/30 v0.2 + list files with long names (UL)] +%% +%% Copyright (C) 2012 Uwe Lueck, +%% http://www.contact-ednotes.sty.de.vu +%% -- author-maintained in the sense of LPPL below -- +%% +%% This file can be redistributed and/or modified under +%% the terms of the LaTeX Project Public License; either +%% version 1.3c of the License, or any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% We did our best to help you, but there is NO WARRANTY. +%% +%% Please report bugs, problems, and suggestions via +%% +%% http://www.contact-ednotes.sty.de.vu +%% +%% == Usage with 'myfilist' == +%% \label{sec:myfilist} +%% === Basically === +%% \label{sec:basic} +%% In order to get a reduced and/or rearranged list of used files +%% with the \ctanpkgref{myfilist} package, +%% `longnamefilelist.sty' must be loaded earlier than +%% `myfilist.sty'. This is due to a kind of limitation of the latter, +%% it \emph{issues} `\listfiles' (TODO). +%% Therefore `\listfiles' must be modified earlier---or \emph{issued} earlier, +%% in this case the `\listfiles' in `myfilist.sty' does nothing. +%% The file `SrcFILEs.txt' accompanying the distribution of 'longnamefilelist', +%% e.g., can be generated by running the following file `srcfiles.tex' +%% with \LaTeX: +%% %% v0.1b 2012/03/14 avoid right-arrow substitution TODO: +%% \begin{quotation}\tt\small +%% \expandafter\def\expandafter\{\expandafter{\string{} +%% \expandafter\def\expandafter\}\expandafter{\string}} +%% \obeyspaces\obeylines +%% \cs{ProvidesFile}\{srcfiles.tex\}[2012/03/12 +%% ~ file infos -\empty> SrcFILEs.txt] +%% \cs{RequirePackage}\{longnamefilelist\} +%% \cs{listfiles}[16] +%% \cs{RequirePackage}\{myfilist\} +%% \%\% documentation: +%% \cs{ReadFileInfos}\{longnamefilelist\} +%% \%\% documentation settings and auxiliaries: +%% \cs{ReadPackageInfos}\{fifinddo,makedoc,niceverb\} +%% \cs{ReadFileInfos}\{makedoc.cfg,mdoccorr.cfg,srcfiles\} +%% \cs{ListInfos}[SrcFILEs.txt] +%% \end{quotation} +%% +%% === Shorthand === +%% \label{sec:short} +%% In the above example, the 'myfilist' command `\EmptyFileList' +%% is missing---it is not intended there. Usually however, +%% it \emph{is} intended, i.e., the following sequence of +%% lines is wanted: +%% \begin{quotation}\tt\small +%% \expandafter\def\expandafter\{\expandafter{\string{} +%% \expandafter\def\expandafter\}\expandafter{\string}} +%% \obeyspaces\obeylines +%% \cs{RequirePackage}\{longnamefilelist\} +%% \cs{listfiles}[<digit><digit>] +%% \cs{RequirePackage}\{myfilist\} +%% \cs{EmptyFileList}[<read-again-files>] +%% \end{quotation} +%% With v0.2, the last three lines can be replaced by +%% \[|\MaxLengthEmptyList{<digit><digit>}[<read-again-files>|]\] +%% ---``optionally" without \qtd{`[<read-again-files>]'}. +%% This may save the user from worrying about usage +%% with 'myfilist'. +%% +%% == \cs{listfiles} extended == +%% \label{sec:list} +%% |\listfiles[<number>]| ``orders" a final list of files +%% with infos and optimizes the list's alignment +%% (in plain text output) when the longest base filename +%% consists of <number> characters: +\renewcommand*{\listfiles}[1][\LNFL@chars@set]{% +%% The default parameter `\LNFL@chars@set' is defined in Sec.~\ref{sec:set}. + \let\listfiles\relax + \def\LNFL@chars{#1}% +%% This stores the actual parameter. It is used several times: +%% for preparing the alignment and the final line of stars here +%% and then for aligning each list entry by `\@listfiles' +%% from `\@dofilelist'. +%% +%% \LaTeX's `\@dofilelist' appends a list of ``dummy" tokens `\\' +%% to each filename before `\@listfiles' is run on the filename. +%% \LaTeX's `\@listfiles' is run 8 times, and there are 8 dummies. +%% Dummies not looked at by `\@listfiles' are removed by some +%% ``killing" macro using a token that delimits the dummy list. +%% We use `\relax' tokens as dummies instead. They need not to be removed. +%% And we append <number> dummies. They are stored in a macro `\LNFL@dummies': + \let\LNFL@dummies\@empty +%% `\LNFL@spaces' is used to align the list title ``*file list*" +%% flushleft with the filenames: + \def\LNFL@spaces{ }% +%% We also use more stars than \LaTeX\ below the list. %% space 2012/03/15 +%% (However, all of this can also be used for \emph{shorter} names +%% with \emph{less} stars below.) + \def\LNFL@stars{***}% + \count@\LNFL@chars\relax +%% This initializes the loop for adding dummies, title spaces, +%% and stars below the list. + \@whilenum\count@>\z@\do{% + \edef \LNFL@dummies{\LNFL@dummies\relax}% + \ifnum8<\count@ + \edef \LNFL@spaces { \LNFL@spaces}% + \fi + \edef \LNFL@stars {*\LNFL@stars}% + \advance\count@\m@ne + }% +%% Our version of `\@listfiles' takes one token ahead at a time +%% and counts the numbes of tokens that have been looked at so far. +%% For each \emph{dummy} found instead of a filename character, +%% (as with \LaTeX) a space is added to `\filename@area' +%% that is used to move the filenames right. +%% As opposed to the \LaTeX\ original version, `\@listfiles' stops +%% being applied after <number> times: + \def\@listfiles##1{% + \ifx##1\relax \edef\filename@area{ \filename@area}\fi + \advance\count@\m@ne + \ifnum\count@>\z@ \expandafter\@listfiles \fi }% + \def\@dofilelist{% +%% In \LaTeX's `\@dofilelist', we first replace the single space +%% starting the title line by `\LNFL@spaces': + \typeout{^^J\LNFL@spaces *File List*}% + \@for\@currname:=\@filelist\do{% +%% This is the loop body adding a list entry line, first like \LaTeX: + \filename@parse\@currname + \edef\reserved@a{% + \filename@base.% + \ifx\filename@ext\relax tex\else\filename@ext\fi}% + \expandafter\let\expandafter\reserved@b + \csname ver@\reserved@a\endcsname +%% We use `\@tempa' for expanding both the filename and the list of dummies +%% in time: + \edef\@tempa{\filename@base\LNFL@dummies}% + \count@\LNFL@chars\relax + \expandafter\expandafter\expandafter\@listfiles\expandafter + \filename@area\@tempa + \typeout{% + \filename@area\reserved@a + \ifx\reserved@b\relax\else +%% I prefer \emph{two} spaces between the columns to four of them: + \space\space %%% \@spaces + \reserved@b\fi}}% +%% The line of stars: + \typeout{ \LNFL@stars^^J}}% +} +%% %% moved up from end 2012/09/30: +%% TODO: 1.~keyval package option avoiding `\listfiles' +%% 2.~measuring longest filename? +%% == Setting Name Length \emph{before} \cs{listfiles} == +%% \label{sec:set} +%% I first used |\SetLongNameFileListChars{<number>}| +%% for combining the package with 'myfilist' right in place of +%% `\listfiles[<number>]'. Both commands have the same effect +%% on the following `\RequirePackage{myfilist}'. +%% Now that I have realized that I could issue `\listfiles' earlier, +%% `\SetLongNameFileListChars' is rather obsolete---but who knows\,...? +\newcommand*{\SetLongNameFileListChars}{\def\LNFL@chars@set} +%% This macro `\LNFL@chars@set' is used as the default for our new +%% optional parameter for `\listfiles' (Sec.~\ref{sec:list}). +\SetLongNameFileListChars{8} +%% This sets the default value for `\listfiles' to the maximum number +%% of characters in the base filename that +%% \LaTeX\ %% 2012/03/15 %%% `\LaTeX' +%% somewhat expects. +%% +%% == Shorthand for 'myfilist' == +%% |\MaxLengthEmptyList{<digit><digit>}[<read-again-files>]| +%% as described in Section~\ref{sec:short} (v0.2): +\newcommand*{\MaxLengthEmptyList}[1]{% + \listfiles[#1]\RequirePackage{myfilist}\EmptyFileList} +%% +%% == Leaving the Package File == +\endinput +%% +%% == VERSION HISTORY == + +v0.1 2012/03/11 very first + 2012/03/12 debugging; \LNFL@spaces, \LNFL@stars +v0.1b 2012/03/14 doc fixes: avoiding arrow substitution in listing, + space after "who knows" +v0.1c 2012/03/15 more typographical fixes concerning "\LaTeX" +v0.2 2012/09/30 \MaxLengthEmptyList |