texlive[74999] Master/texmf-dist: nicefilelist (22apr25)
commits+karl at tug.org
commits+karl at tug.org
Tue Apr 22 22:29:52 CEST 2025
Revision: 74999
https://tug.org/svn/texlive?view=revision&revision=74999
Author: karl
Date: 2025-04-22 22:29:52 +0200 (Tue, 22 Apr 2025)
Log Message:
-----------
nicefilelist (22apr25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/nicefilelist/README
trunk/Master/texmf-dist/doc/latex/nicefilelist/SrcFILEs.txt
trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.RLS
trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.pdf
trunk/Master/texmf-dist/source/latex/nicefilelist/SrcFILEs.txt
trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.RLS
trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.tex
trunk/Master/texmf-dist/source/latex/nicefilelist/provonly.fd
trunk/Master/texmf-dist/source/latex/nicefilelist/srcfiles.tex
trunk/Master/texmf-dist/source/latex/nicefilelist/wrong.prv
trunk/Master/texmf-dist/tex/latex/nicefilelist/nicefilelist.sty
Modified: trunk/Master/texmf-dist/doc/latex/nicefilelist/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/nicefilelist/README 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/doc/latex/nicefilelist/README 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,7 +1,7 @@
README for the `nicefilelist' package
\listfiles Alignment with Date and Version Columns
© Uwe Lück 2012/10/30 (deceased June 2020,
- 2023-02-13 v0.9b patched by H.-Martin Münch,
+ 2025-04-21 v0.9c patched by H.-Martin Münch,
original package version 0.7a has been archived at
https://web.archive.org/web/20221205210517/
https://mirror.mwt.me/ctan/install/macros/
@@ -11,18 +11,23 @@
respect to long base file-names only, the present `nicefilelist.sty'
can keep separate columns for
(i) date (ii) version, and (iii) "caption"
-(don't write caption text in date column),
+(do not write caption text in date column),
their alignment not being disturbed by short file-name extensions
such as `.fd'. This is achieved basing on the `monofill' package.
v0.7 offers a package option `[wrap]' for automatic word wrapping
within the caption column, using the `hardwrap' package,
-so file-names and captions can be quite long without disturbing
+so file names and captions can be quite long without disturbing
the alignment.
v0.9a offers a package option `[autolength]' for automatic sizing
of the columns, using the `xstring' package.
+v0.9c offers the options `[hashes]' and/or `[sizes]' to the
+`\listfiles' command, `\listfiles[hashes,sizes]', as provided
+by LaTeX release 2024-06-01, see LaTeX News Issue 39 at
+https://www.latex-project.org/news/latex2e-news/ltnews39.pdf
+
As opposed to the `dateiliste' package, this is about the plain
text output in the `.log' file or, with `myfilist', as a stand-
alone plain text file.
Modified: trunk/Master/texmf-dist/doc/latex/nicefilelist/SrcFILEs.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/nicefilelist/SrcFILEs.txt 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/doc/latex/nicefilelist/SrcFILEs.txt 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,29 +1,31 @@
+
*File List*
------RELEASE.--- -- -- -- -- --
-nicefilelist.RLS 2023/02/13 v0.9b bug-fix
------PACKAGE.--- -- -- -- -- --
-nicefilelist.sty 2023/02/13 v0.9b more file list alignment (UL)
-------DOCSRC.--- -- -- -- -- --
-nicefilelist.tex 2023/02/13 -- documenting nicefilelist.sty
- srcfiles.tex 2023/02/13 -- file infos -> SrcFILEs.txt
---------DEMO.--- -- -- -- -- --
+-----RELEASE.--- -- -- -- -- --
+nicefilelist.RLS 2025/04/21 v0.9c options sizes \& hashes for \listfiles
+-----PACKAGE.--- -- -- -- -- --
+nicefilelist.sty 2025/04/21 v0.9c More file list alignment (UL; HMM)
+------DOCSRC.--- -- -- -- -- --
+nicefilelist.tex 2025/04/21 -- documenting nicefilelist.sty
+ srcfiles.tex 2025/04/21 -- file infos -> SrcFILEs.txt
+--------DEMO.--- -- -- -- -- --
provonly.fd -- -- -- -- no date, no version, but a lot of info,
look how that is wrapped!
- wrong.prv * NOT FOUND *
- empty.f * NOT FOUND *
---------USED.--- -- -- -- -- --
+ wrong.prv * NOT FOUND *
+ empty.f * NOT FOUND *
+--------USED.--- -- -- -- -- --
hardwrap.sty 2011/02/12 v0.2 Hard wrap messages
myfilist.sty 2012/11/22 v0.71 \listfiles -- mine only (UL)
readprov.sty 2012/11/22 v0.5 file infos without loading (UL)
fifinddo.sty 2012/11/17 v0.61 filtering TeX(t) files by TeX (UL)
makedoc.sty 2012/08/28 v0.52 TeX input from *.sty (UL)
- niceverb.sty 2015/11/21 v0.62 minimize doc markup (UL)
- texlinks.sty 2015/07/20 v0.83 TeX-related links (UL)
- makedoc.cfg 2013/03/25 -- documentation settings
+ niceverb.sty 2012/11/27 v0.51 minimize doc markup (UL)
+ texlinks.sty 2013/01/22 v0.82 TeX-related links (UL)
+ makedoc.cfg 2012/11/30 -- documentation settings
mdoccorr.cfg 2012/11/13 -- `makedoc' local typographical corrections
--not-so-much.--- -- -- -- -- --
- kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
+-not-so-much.--- -- -- -- -- --
+ kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
***********
- List made at 2023/02/13, 15:39
- from script file srcfiles.tex
\ No newline at end of file
+ List made at 2025/04/21, 19:16
+ from script file srcfiles.tex
+
Modified: trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.RLS
===================================================================
--- trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.RLS 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.RLS 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,4 +1,5 @@
\ProvidesFile{nicefilelist.RLS}%% RELEASE INFO
+ [2025/04/21 v0.9c options sizes \& hashes for \string\listfiles]
[2023/02/13 v0.9b bug-fix]
[2023/01/08 v0.9a ver@@; option autolength]
[2022/12/05 v0.8a date: dashes OK]
Modified: trunk/Master/texmf-dist/doc/latex/nicefilelist/nicefilelist.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/SrcFILEs.txt
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/SrcFILEs.txt 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/SrcFILEs.txt 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,29 +1,31 @@
+
*File List*
------RELEASE.--- -- -- -- -- --
-nicefilelist.RLS 2023/02/13 v0.9b bug-fix
------PACKAGE.--- -- -- -- -- --
-nicefilelist.sty 2023/02/13 v0.9b more file list alignment (UL)
-------DOCSRC.--- -- -- -- -- --
-nicefilelist.tex 2023/02/13 -- documenting nicefilelist.sty
- srcfiles.tex 2023/02/13 -- file infos -> SrcFILEs.txt
---------DEMO.--- -- -- -- -- --
+-----RELEASE.--- -- -- -- -- --
+nicefilelist.RLS 2025/04/21 v0.9c options sizes \& hashes for \listfiles
+-----PACKAGE.--- -- -- -- -- --
+nicefilelist.sty 2025/04/21 v0.9c More file list alignment (UL; HMM)
+------DOCSRC.--- -- -- -- -- --
+nicefilelist.tex 2025/04/21 -- documenting nicefilelist.sty
+ srcfiles.tex 2025/04/21 -- file infos -> SrcFILEs.txt
+--------DEMO.--- -- -- -- -- --
provonly.fd -- -- -- -- no date, no version, but a lot of info,
look how that is wrapped!
- wrong.prv * NOT FOUND *
- empty.f * NOT FOUND *
---------USED.--- -- -- -- -- --
+ wrong.prv * NOT FOUND *
+ empty.f * NOT FOUND *
+--------USED.--- -- -- -- -- --
hardwrap.sty 2011/02/12 v0.2 Hard wrap messages
myfilist.sty 2012/11/22 v0.71 \listfiles -- mine only (UL)
readprov.sty 2012/11/22 v0.5 file infos without loading (UL)
fifinddo.sty 2012/11/17 v0.61 filtering TeX(t) files by TeX (UL)
makedoc.sty 2012/08/28 v0.52 TeX input from *.sty (UL)
- niceverb.sty 2015/11/21 v0.62 minimize doc markup (UL)
- texlinks.sty 2015/07/20 v0.83 TeX-related links (UL)
- makedoc.cfg 2013/03/25 -- documentation settings
+ niceverb.sty 2012/11/27 v0.51 minimize doc markup (UL)
+ texlinks.sty 2013/01/22 v0.82 TeX-related links (UL)
+ makedoc.cfg 2012/11/30 -- documentation settings
mdoccorr.cfg 2012/11/13 -- `makedoc' local typographical corrections
--not-so-much.--- -- -- -- -- --
- kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
+-not-so-much.--- -- -- -- -- --
+ kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
***********
- List made at 2023/02/13, 19:17
- from script file srcfiles.tex
\ No newline at end of file
+ List made at 2025/04/21, 19:16
+ from script file srcfiles.tex
+
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.RLS
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.RLS 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.RLS 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,4 +1,5 @@
\ProvidesFile{nicefilelist.RLS}%% RELEASE INFO
+ [2025/04/21 v0.9c options sizes \& hashes for \string\listfiles]
[2023/02/13 v0.9b bug-fix]
[2023/01/08 v0.9a ver@@; option autolength]
[2022/12/05 v0.8a date: dashes OK]
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.tex 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/nicefilelist.tex 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,6 +1,6 @@
-\ProvidesFile{nicefilelist.tex}[2023/02/13 documenting nicefilelist.sty]
+\ProvidesFile{nicefilelist.tex}[2025/04/21 documenting nicefilelist.sty]
\title{\pkg{\huge nicefilelist.sty
- }\\---\\\cs{listfiles} Alignment for Connoisseurs\thanks{This
+ }\\ -- \\\cs{listfiles} Alignment for Connoisseurs\thanks{This
document describes version
\textcolor{blue}{\UseVersionOf{\jobname.sty}}
of \pkg{\jobname.sty} as of \UseDateOf{\jobname.sty}.}}
@@ -20,7 +20,7 @@
improves \LaTeX's \cs{listfiles} with respect to long base filenames only,
'nicefilelist.sty' can keep separate columns for
(i)~date, (ii)~version, and (iii)~``caption" %% 1st, 2012/10/30
-(don't write caption text in date column),
+(do not write caption text in date column),
their alignment not being disturbed by short filename extensions such as `.fd'.
This is achieved basing on the \ctanpkgref{monofill} package.
@@ -29,19 +29,28 @@
% neither with respect to implementation nor with respect to user interface.
%% <- 2012/10/29 ->
-v0.7 offers a package option `[wrap]' for automatic word wrapping within
-the caption column (using the \ctanpkgref{hardwrap} package),
-so filenames and captions can be quite long without disturbing alignment.
+v0.7 offers a package option `[wrap]' for automatic word wrapping
+within the caption column, using the \ctanpkgref{hardwrap} package,
+so file names and captions can be quite long without disturbing
+the alignment.
+v0.9a offers a package option `[autolength]' for automatic sizing
+of the columns, using the \ctanpkgref{xstring} package.
+
+v0.9c offers the options `[hashes]' and/or `[sizes]' to the
+`\listfiles' command, `\listfiles[hashes,sizes]', as provided
+by \LaTeX{} release 2024-06-01, see \LaTeX{} News Issue~39 at
+\url{https://www.latex-project.org/news/latex2e-news/ltnews39.pdf}.
+
As opposed to the \ctanpkgref{dateiliste} package, this is about the
\meta{plain text} output in the `.log' file or, with \ctanpkgref{myfilist},
as a stand-alone plain text file.
-\MDaddtoabstract{Related packages:} Cf.~\ctanpkgref{latexfileinfo-pkgs}.
+\MDaddtoabstract{Related packages}Cf.~\ctanpkgref{latexfileinfo-pkgs}.
\end{MDabstract}
\tableofcontents
\section{Features and Usage}
-% We are describing relations to, ahm, related packages---rather brief{}ly.
+% We are describing relations to related packages - rather briefly.
% The \ctanpkgref{latexfileinfo-pkgs} package provides a more general overview.
% %% <- 2012/05/18
%% 2012/10/29:
@@ -48,7 +57,7 @@
Additionally or also ``complementarily" to the presentation given here,
the functionality of the package is summarized in the file
`latexfileinfo_pkgs.htm' from the \ctanpkgref{latexfileinfo-pkgs},
-in a comparison with packages resembling 'nicefilelist' in
+in a comparison with packages resembling `nicefilelist' in
certain respects.
\subsection{Relation to 'longnamefilelist.sty'}
@@ -84,16 +93,16 @@
\[`\usepackage{nicefilelist}'\]
or by
\[`\usepackage[<options>]{nicefilelist}'\]
-where <options> may be `r', `wrap', and/or `autolength'---see
+where <options> may be `r', `wrap', and/or `autolength' -- see
summaries in sections~\ref{sec:set} and \ref{sec:opt}
on the package options and an example in section~\ref{sec:short}.
-Alternatively---e.g., for use with \ctanpkgref{myfilist} from the
+Alternatively -- e.g., for use with \ctanpkgref{myfilist} from the
\ctanpkgref{fileinfo} bundle (in a ``\TeX~script"), see section~\ref{sec:myfilist},
-or in order to include the `.cls' file in the list---you may load it by
+or in order to include the `.cls' file in the list -- you may load it by
\[`\RequirePackage{nicefilelist}'\]
or by
\[`\RequirePackage[<options>]{nicefilelist}'\]
-before `\documentclass' or when you don't use `\documentclass'.
+before `\documentclass' or when you do not use `\documentclass'.
\subsection{Choosing Settings} %% new 2012/10/29
\label{sec:set}
@@ -117,7 +126,7 @@
The fixed usual format `YYYY/MM/DD'
or `YYYY-MM-DD' (accepted by \LaTeX\ since 2017-03-08)
for the date is assumed;
-in fact, when <f-info> doesn't start according to this format,
+in fact, when <f-info> does not start according to this format,
it is assumed that no date is given, and some ``missing''
text will appear in the ``date" column, determined by a macro
|\NFLnodate|.
@@ -174,16 +183,15 @@
The width of the caption column (unfortunately) is determined by
the stuff enumerated above and the width of the console output window or screen.
With long filenames and long captions, the result may look poor.
-the \emph{characters} that don't fit into the line may continue
+The \emph{characters} that do not fit into the line may continue
at left end of the window or screen, disturbing the appearance
-of a ``table"---unless you use package option |[wrap]|.
+of a ``table" -- unless you use package option |[wrap]|.
The latter requires the \ctanpkgref{hardwrap} package by
-Will Robertson and Kevin Godby
-(``\Wikienref{not invented here}"). This package tries to determine
+Will Robertson and Kevin Godby. This package tries to determine
the screen width by some subtle tests, and until it finds something
-better, it assumes a width of 80 characters (I suppose).
+better, it assumes a width of 80~characters (I~suppose).
'hardwrap' does \wikienref{Word wrap}{\emph{word wrapping}},
-i.e., it doesn't just put \emph{characters} not fitting into the
+i.e., it does not just put \emph{characters} not fitting into the
next line, but entire \emph{words}. Moreover, it allows inserting
some ``newline sequence" before the first word that is too much,
and we use this feature here to put the next word into the
@@ -205,7 +213,15 @@
(which happens at the end of the document or when
\ctanpkgref{myfilist}'s `\ListInfos' is issued, for instance).
-\subsection{Usage and Samples with 'myfilist.sty'}
+\subsubsection{Extended information in \texttt{listfiles}}
+Since \LaTeX{} release 2024-06-01 the |\listfiles| command
+takes the option `hashes' to give the MD5 hash and
+`sizes' to give the file size of each file in the `.log',
+printed after the end of the caption (in a new line);
+see \LaTeX{} News Issue~39 at
+\url{https://www.latex-project.org/news/latex2e-news/ltnews39.pdf}.
+
+\subsection{Usage and examples with 'myfilist.sty'}
\label{sec:myfilist}
\subsubsection{Basically}
In order to get a reduced and/or rearranged list of file infos
@@ -212,10 +228,10 @@
with the \ctanpkgref{myfilist} package,
`nicefilelist.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 \cs{listfiles} must be modified earlier---or \emph{issued} earlier,
+it \emph{issues} `\listfiles' (\TODO).
+Therefore \cs{listfiles} must be modified earlier -- or \emph{issued} earlier,
in this case the \cs{listfiles} in `myfilist.sty' does nothing.
-The file `SrcFILEs.txt' accompanying the---first---distribution of
+The file `SrcFILEs.txt' accompanying the -- first -- distribution of
'nicefilelist' %% corr., was `longname'; `first' etc. 2012/10/29
was generated by running the following file `srcfiles.tex' with \LaTeX:
\begin{quotation}\tt\small
@@ -259,33 +275,33 @@
\begin{small}
\begin{verbatim}
*File List*
------RELEASE.--- -- -- -- -- --
-nicefilelist.RLS 2023/02/13 v0.9b bug-fix
------PACKAGE.--- -- -- -- -- --
-nicefilelist.sty 2023/02/13 v0.9b more file list alignment (UL)
-------DOCSRC.--- -- -- -- -- --
-nicefilelist.tex 2023/02/13 -- documenting nicefilelist.sty
- srcfiles.tex 2023/02/13 -- file infos -> SrcFILEs.txt
---------DEMO.--- -- -- -- -- --
+-----RELEASE.--- -- -- -- -- --
+nicefilelist.RLS 2025/04/21 v0.9c options sizes \& hashes for \listfiles
+-----PACKAGE.--- -- -- -- -- --
+nicefilelist.sty 2025/04/21 v0.9c More file list alignment (UL; HMM)
+------DOCSRC.--- -- -- -- -- --
+nicefilelist.tex 2025/04/21 -- documenting nicefilelist.sty
+ srcfiles.tex 2025/04/21 -- file infos -> SrcFILEs.txt
+--------DEMO.--- -- -- -- -- --
provonly.fd -- -- -- -- no date, no version, but a lot of info,
look how that is wrapped!
- wrong.prv * NOT FOUND *
- empty.f * NOT FOUND *
---------USED.--- -- -- -- -- --
+ wrong.prv * NOT FOUND *
+ empty.f * NOT FOUND *
+--------USED.--- -- -- -- -- --
hardwrap.sty 2011/02/12 v0.2 Hard wrap messages
myfilist.sty 2012/11/22 v0.71 \listfiles -- mine only (UL)
readprov.sty 2012/11/22 v0.5 file infos without loading (UL)
fifinddo.sty 2012/11/17 v0.61 filtering TeX(t) files by TeX (UL)
makedoc.sty 2012/08/28 v0.52 TeX input from *.sty (UL)
- niceverb.sty 2015/11/21 v0.62 minimize doc markup (UL)
- texlinks.sty 2015/07/20 v0.83 TeX-related links (UL)
- makedoc.cfg 2013/03/25 -- documentation settings
+ niceverb.sty 2012/11/27 v0.51 minimize doc markup (UL)
+ texlinks.sty 2013/01/22 v0.82 TeX-related links (UL)
+ makedoc.cfg 2012/11/30 -- documentation settings
mdoccorr.cfg 2012/11/13 -- `makedoc' local typographical corrections
--not-so-much.--- -- -- -- -- --
- kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
+-not-so-much.--- -- -- -- -- --
+ kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
***********
- List made at 2023/02/13, 19:17
+ List made at 2025/04/21, 19:16
from script file srcfiles.tex
\end{verbatim}
\end{small}
@@ -296,7 +312,7 @@
\AddQuotes %% 2012/10/11
In the above example, the 'myfilist' command `\EmptyFileList'
-was missing---it was not intended there. Usually however, %% is -> was 2012/10/29
+was missing -- it was not intended there. Usually however, %% is -> was 2012/10/29
it \emph{is} intended, i.e., the following sequence of
lines is wanted:
\begin{quotation}\tt\small
@@ -316,7 +332,7 @@
With v0.5, the last three code lines in the snippet above
can be replaced by
\[|\MaxBaseEmptyList{<longest-name>}[<read-again-files>]|\]
----``optionally" without `[<read-again-files>]'.
+\ -- ``optionally" without `[<read-again-files>]'.
This may save the user from worrying about usage
with 'myfilist'.
@@ -328,7 +344,7 @@
v0.6 simplifies this case by a star version of `\MaxBaseEmptyList':
\pagebreak[2]
\[|\MaxBaseEmptyList*|\]
-works like `\MaxBaseEmptyList{nicefile}' (eight characters)---still,
+works like `\MaxBaseEmptyList{nicefile}' (eight characters) -- still,
optional `[<read-again-files>]' may follow. This feature is demonstrated
with \ctanpkgref{inputtrc} v/r0.3.
@@ -380,13 +396,14 @@
\subsection{Package File Header (Legalese)}
\input{nicefilelist.doc}
+\pagebreak
\section{Credits}
\begin{enumerate} %% 2012/05/20
- \item It was \ctanpkgauref{muench-hm}{\textsc{Martin M\"{u}nch}}
+ \item It was \ctanpkgauref{muench-hm}{\textsc{H.-Martin M\"{u}nch}}
who pointed out the shortcomings
- of 'longnamefilelist' that the present package addresses---thanks!
+ of 'longnamefilelist' that the present package addresses -- thanks!
%% 2012/05/20:
- \item For \textsc{Alois Kabelschacht}---whose idea in
+ \item For \textsc{Alois Kabelschacht} -- whose idea in
TUGboat~\textbf{8}~\#2\footnote{\tugbartref{tb08-2/tb18kabel}{%
``&\expandafter\ vs.\ %% .\ 2012/12/12
&\let\ and &\def\ in Conditionals
@@ -393,9 +410,10 @@
and a Generalization of PLAIN's &\loop,"}
TUGboat Vol.~8 (1987), No.~2, pp.~184f.
(\urlhttpref{tug.org/TUGboat/tb08-2/tb18kabel.pdf})}
- is used for v0.3---cf.\ the \ctanpkgref{dowith} documentation.
+ is used for v0.3 -- cf.\ the \ctanpkgref{dowith} documentation.
%% 2012/05/18:
- \item Another idea from \textsc{Martin M\"{u}nch}: wrapping inside caption column.
+ \item Another idea from \textsc{H.-Martin M\"{u}nch}:
+ wrapping inside caption column.
Implemented by UL with help of \ctanpkgref{hardwrap} as option |wrap|.
\end{enumerate}
@@ -405,6 +423,10 @@
The package once might provide \ctanpkgref{keyval}-style
optional arguments for \cs{listfiles} or even call \cs{listfiles}
automatically with 'keyval' package options.
+
+ Well, nicefilelist 2025/04/21 v0.9c \emph{does} introduce the options `sizes' and `hashes' for
+ |\listfiles|, because the recent kernel provides those!
+ (Works only for formats 2024-06-01 and newer.)
% \end{enumerate}
\end{document}
@@ -425,4 +447,5 @@
2012/12/12 for v0.7a vs.\
2022/12/05 for v0.8a accepts also the new date format with dashes
2023/01/06 for v0.9a regards |ver@@| for version; new option [autolength]
-2023/02/13 for v0.9b bug-fix: file extension missed when |\input|
\ No newline at end of file
+2023/02/13 for v0.9b bug-fix: file extension missed when |\input|
+2025/04/21 for v0.9c implement the |\listfiles| options hashes \& sizes from kernel
\ No newline at end of file
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/provonly.fd
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/provonly.fd 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/provonly.fd 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,4 +1,4 @@
-%\ProvidesFile{provonly.fd}[2023/02/13 v0.12a such]
+%\ProvidesFile{provonly.fd}[2025/04/21 v0.12b such]
%\ProvidesFile{provonly.fd}[such]
\ProvidesFile{provonly.fd}[no date, no version, but a lot of info,
look how that is wrapped!]
\ No newline at end of file
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/srcfiles.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/srcfiles.tex 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/srcfiles.tex 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,5 +1,5 @@
\ProvidesFile{srcfiles.tex}
- [2023/02/13 file infos -> SrcFILEs.txt]
+ [2025/04/21 file infos -> SrcFILEs.txt]
\RequirePackage[r,wrap]{nicefilelist}
\RequirePackage{filedate}
\MaxBaseEmptyList{nicefilelist}
Modified: trunk/Master/texmf-dist/source/latex/nicefilelist/wrong.prv
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicefilelist/wrong.prv 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/source/latex/nicefilelist/wrong.prv 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1 +1 @@
-\ProvidesFile{diffname.prv}[2023/02/13 v0.1 wrong]
\ No newline at end of file
+\ProvidesFile{diffname.prv}[2025/04/21 v0.2 wrong]
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/latex/nicefilelist/nicefilelist.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/nicefilelist/nicefilelist.sty 2025-04-22 20:29:44 UTC (rev 74998)
+++ trunk/Master/texmf-dist/tex/latex/nicefilelist/nicefilelist.sty 2025-04-22 20:29:52 UTC (rev 74999)
@@ -1,7 +1,7 @@
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]% Option autolength needs 2022-11-01!
-\ProvidesPackage{nicefilelist}[2023/02/13 v0.9b
- more file list alignment (UL)]
-%% Copyright (C) 2012 Uwe Lück (deceased June 2020)
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]% Option autolength needs 2022-11-01, parameters for \listfiles need 2024-06-01!
+\ProvidesPackage{nicefilelist}[2025/04/21 v0.9c
+ More file list alignment (UL; HMM)]
+%% Copyright (C) 2012 Uwe Lück (deceased June 2020), 2022-2025 H.-Martin Münch
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -19,11 +19,9 @@
%% === Alignment Settings ===
%% \label{sec:templates}
%% We use the \ctanpkgref{monofill} package for alignment of plain text:
-\RequirePackage{monofill}[2012/10/29]
+\RequirePackage{monofill}[2012/10/29]% v0.2 monospace alignment (UL)
%% See its documentation for details.
%% %% <- added 2012/10/29 ->
-%% The `[wrap]' option provided by 'nicefilelist' v0.7 requires
-%% 'monofill' v0.2 as of 2012-10-29.
%%
%% We support three alignment ``fields" according to the terminology of \pkg{monofill}.
%% Their ids are |f-base| for base file-names, |f-ext| for file-name extensions,
@@ -34,18 +32,27 @@
%% or `\ProvidesClass' command in the file.
%% Initial settings for them are following.
%% For modifying them, load 'nicefilelist.sty',
-%% then type your own settings, then issue `\listfiles'
+%% then type your own settings, and then issue `\listfiles'
%% or load 'myfilist.sty'.
\MFfieldtemplate{f-base}{nicefilelist}
\MFfieldtemplate{f-ext}{tex}
\MFfieldtemplate{f-version}{v0.11a}
%%
-%% |\NFLspaceI|, |\NFLspaceII|, and |\NFLspaceIII|
-%% determine the space between the four
-%% columns for names, dates, versions, and ``captions":
+%% |\NFLspaceI|, |\NFLspaceII|, |\NFLspaceIII|, and |NFLspaceIV|
+%% determine the space between the five columns for
+%% names, dates, versions, ``captions" and sizes/hashes
+%% (when sizes/hashes have been requested by option):
\newcommand*{\NFLspaceI} { \space}
\newcommand*{\NFLspaceII} { \space}
\newcommand*{\NFLspaceIII}{ }
+\newcommand*{\NFLspaceIV} {^^J% <- newline
+ \ifNFLwrap\else%
+ \MFrightinfield\space{f-base} %
+ \MFleftinfield \space{f-ext}%
+ \NFLspaceI\@spaces\space\@spaces\space\NFLspaceII%
+ \MFrightinfield\space{f-version}\NFLspaceIII%
+ \fi%
+}% original kernel: ^^J\@spaces
%%
%% === Failure Displays ===
%% \label{sec:fail} %% was failure 2012/10/29
@@ -52,15 +59,15 @@
%% |\NFLnodate| is displayed in place of a file date if it seems
%% not to be given (configurable):
\newcommand*{\NFLnodate}{ -- \space-- --}
-%% |\NFLnoversion| likewise---however, for alignment,
-%% each wanted space must be specified as `\space'
-%% (not just a code blank space).
-%% It may need adjustment (by `\renewcommand') when
-%% `\MFfieldtemplate{f-version}' is modified:
+%% |\NFLnoversion| likewise -- however, for alignment,
+%% each wanted space must be specified as `\space' (not just a code blank space).
+%% It may need adjustment (by `\renewcommand') when `\MFfieldtemplate{f-version}'
+%% is modified:
\newcommand*{\NFLnoversion}{\space--}
-%% |\NFLnotfound| is for files with wrong or no
-%% \cs{Provides.\empty..} command:
-\newcommand*{\NFLnotfound}{ * NOT FOUND *}
+%% |\NFLnotfound| is for files with wrong or no \cs{Provides.\empty..} command:
+\def\NFL at hashessizes{}
+\newcommand*{\NFLnotfound}{ * NOT FOUND * \NFLspaceII\NFLspaceIII\space\NFL at hashessizes}
+%% where |\NFL at hashessizes| is redefined later.
%%
%% === Package Options ===
%% \label{sec:opt}
@@ -88,10 +95,8 @@
%% %% 2012/10/30:
%% \emph{Without} it expands to `\typeout'
\newcommand*{\NFL at filerow}{\typeout}
-%% ---`\let' doesn't work with 'myfilist''s redefinition of
-%% `\typeout'.
-%% \emph{With} `[wrap]', `\NFL at filerow' applies 'hardwrap''s
-%% `\HardWrap':
+%% -- `\let' does not work with 'myfilist''s redefinition of `\typeout'.
+%% \emph{With} `[wrap]', `\NFL at filerow' applies 'hardwrap''s `\HardWrap':
\newif\ifNFLwrap%
\DeclareOption{wrap}{%
\NFLwraptrue%
@@ -99,7 +104,7 @@
\HardWrap\typeout\hw at maxprintline\relax{^^J%
\MFrightinfield\space{f-base} %
\MFleftinfield \space{f-ext}%
- \NFLspaceI\@spaces\space\@spaces\space \NFLspaceII
+ \NFLspaceI\@spaces\space\@spaces\space\NFLspaceII
\MFrightinfield\space{f-version}\NFLspaceIII}{%
#1}}%
%% Alignment of file-names with 'hardwrap' seems to need
@@ -109,16 +114,16 @@
%% The display width is controlled by 'hardwrap''s counter
%% `|\hw at maxprintline|'. Unless 'hardwrap' finds something special,
%% its content is 79, corresponding to a display width of
-%% 80~characters (I~believe---counting the leftmost character
+%% 80~characters (I~believe -- counting the leftmost character
%% as~\qtd{0}, as~editors like to~do). You can choose a different
%% content value <max-char-col> by 'hardwrap''s
%% \[|\setmaxprintline{<max-char-col>}|\]
%%
-%% \noindent v0.9a offers package option |[autolength]| %% |...| 2023-01-08
-%% for automatic setting of lengths of base file-name, extension, and version.
+%% \noindent Since v0.9a the package option |[autolength]| %% |...| 2023-01-08
+%% is provided for automatic setting of lengths of base file-name, extension, and version.
\newif\ifNFLautolength
-\DeclareOption{autolength}{% v0.9a 2023-01-08
+\DeclareOption{autolength}{%% v0.9a 2023-01-08
%% We just measure the respective length and write it into the .aux file
%% for use in the next compilation run.
%% The \ctanpkgref{xstring} package requires e-\TeX. |\AddToHook{enddocument/afterlastpage}|
@@ -133,7 +138,7 @@
}{\PackageError{nicefilelist}{%
Option autolength needs newer LaTeX format%
}{Needed LaTeX format version: 2022-11-01 or newer.\MessageBreak%
- Found LaTeX format version: \fmtversion.\MessageBreak%
+ Found \space LaTeX format version: \fmtversion.\MessageBreak%
To use option autolength update your TeX distribution.%
}
}
@@ -141,24 +146,23 @@
\ProcessOptions
-%% The next `\if' is to check whether `[wrap]' has been demanded
-%% and 'hardwrap' is needed:
-\ifNFLwrap\RequirePackage{hardwrap}\fi
+%% The next `\if' is to check whether `[wrap]' has been demanded and 'hardwrap' is needed:
+\ifNFLwrap\RequirePackage{hardwrap}[2011/02/12]% v0.2 Hard wrap messages (KG, WR)
+\fi
\ifNFLautolength
- \RequirePackage{xstring}[2023-01-14]% v1.85 String manipulations (CT); needs e-TeX
+ \RequirePackage{xstring}[2023-08-22]% v1.86 String manipulations (CT); requires e-TeX
\AddToHook{enddocument/afterlastpage}{%
\xdef\NFLbaselengthmax{nicefilelist}%
\xdef\NFLextlengthmax{sty}%
- \xdef\NFLversionlengthmax{v0.9b}%
- \xdef\NFLcaptionlengthmax{more file list alignment (UL)}%
+ \xdef\NFLversionlengthmax{v0.9c}%
+ \xdef\NFLcaptionlengthmax{More file list alignment (UL; HMM)}%
\xdef\NFLbaselengthtmp{0}%
\xdef\NFLextlengthtmp{0}%
\xdef\NFLversionlengthtmp{0}%
\xdef\NFLcaptionlengthtmp{0}%
\xdef\NFLtotallengthtmp{0}%
- \@for\@currname:=\@filelist\do{%
- % This starts the loop through the list of files.
+ \@for\@currname:=\@filelist\do{% This starts the loop through the list of files.
\filename at parse\@currname%
\edef\filename at ext{\ifx\filename at ext\relax tex\else\filename at ext\fi}%
\StrLen{\filename at base}[\NFLbaselengthcurrent]%
@@ -191,7 +195,7 @@
}%
}%
\StrLen{\filename at version}[\NFLversionlengthcurrent]%
- \ifnum \NFLversionlengthcurrent > \NFLversionlengthtmp \relax%
+ \ifnum\NFLversionlengthcurrent > \NFLversionlengthtmp\relax%
{\xdef\NFLversionlengthtmp{\NFLversionlengthcurrent}%
\xdef\NFLversionlengthmax{\filename at version}%
}%
@@ -202,7 +206,7 @@
\StrBehind[2]{\@NFLtempb}{ }[\@NFLtempc]%
\fi%
\StrLen{\@NFLtempc}[\NFLcaptionlengthcurrent]%
- \ifnum \NFLcaptionlengthcurrent > \NFLcaptionlengthtmp \relax%
+ \ifnum\NFLcaptionlengthcurrent > \NFLcaptionlengthtmp\relax%
{\xdef\NFLcaptionlengthtmp{\NFLcaptionlengthcurrent}%
\xdef\NFLcaptionlengthmax{\@NFLtempc}%
}%
@@ -309,17 +313,241 @@
%% Similarly to original \LaTeX, |\listfiles| carries almost everything
%% that is needed for the file list only. 2012-10-29: little point
%% in this, perhaps, in that the package should be loaded when
-%% running `\listfiles' is intended---TO-DO. Or maybe it is loaded
+%% running `\listfiles' is intended -- TO-DO. Or maybe it is loaded
%% \emph{just in case?}
-\renewcommand*{\listfiles}{%
- \let\listfiles\relax
-%% ---this clears memory. Now \LaTeX\ doesn't collect file names for
+\providecommand\IfFormatAtLeastTF{\@ifl at t@r\fmtversion}
+
+\IfFormatAtLeastTF{2024/06/01}{% new format:
+ \RenewDocumentCommand\listfiles{O{}}{%
+ \SetKeys[__kernel/listfiles]{#1}%
+ \let\listfiles\relax%
+%% -- this clears memory. Now \LaTeX\ does not collect file names for
%% &\listfiles when &\@listfiles is undefined, therefore
-% \let\@listfiles\relax
+ \def\NFL at listfiles##1##2##3##4##5##6##7##8##9\@@{%
+ \def\reserved at d{\\}%
+ \@tfor\reserved at c:=##1##2##3##4##5##6##7##8\do{%
+ \ifx\reserved at c\reserved at d
+ \edef\filename at area{ \filename at area}%
+ \fi}}%
%% % although we don't use it.
-%% % (TO-DO use it in place of some `\NFL@'...?)
+%% |\@dofilelist| is executed by the standard \LaTeX\ `\enddocument'
+%% macro or by `\ListInfos' from the \ctanpkgref{myfilist} package.
+ \def\@dofilelist{%
+%% ``Title:"
+ \typeout{^^J %% trick 2012/03/29
+ \MFrightinfield{*File Lis}{f-base}t*}%
+ \@for\@currname:=\@filelist\do{%
+%% This starts the loop through the list of files
+ \filename at parse\@currname
+ \edef\filename at ext{%
+ \ifx\filename at ext\relax tex\else\filename at ext\fi}%
+%% Like \LaTeX's &\reserved at b:
+ \expandafter\let\expandafter\@tempb
+ \csname ver@\filename at base.\filename at ext\endcsname
+%% Packages that |\relax| their |\ver@|... (e.g., fontenc) %% v0.9a 2023-01-08
+%% can use |\ver@@|... to store the version information instead:
+ \ifx\@tempb\relax%
+ \expandafter\let\expandafter\@tempb
+ \csname ver@@\filename at base.\filename at ext\endcsname
+ \fi%
+%% According to `source2e.pdf', &\filename at area may be a directory.
+%% Trying support of this, it seems to be a new feature with v0.2
+%% -- not tested, TO-DO!
+ \edef\@tempa{\filename at area\filename at base}%
+%% Actually I would like to be able to do even the file-name parsing
+%% in an expandable way -- for all systems, `texsys.cfg'?! TO-DO
+ \NFL at filerow{%
+%% Now all parsing and checking must be expandable.
+ \NFL at make@macro at arg\MFrightinfield\@tempa {f-base}.%
+ \NFL at make@macro at arg\MFleftinfield \filename at ext{f-ext}%
+ \NFLspaceI
+ \NFL at ifx@kbl\@tempb\relax\NFLnotfound{%
+ \NFL at make@macro at arg\NFL at space@split\@tempb
+ \NFL at maybe@three
+ \NFL at date@or at rest
+ }%
+ }%
+ }%
+%% The line of stars:
+ \typeout{ %% trick v 2012/03/29
+ \MFrightinfield{********}{f-base}***^^J}%
+%% TO-DO or more stars as with 'longnamefilelist'?
+ }%
+%% This finishes the definition of `\@dofilelist'.
+%% % The definitions of macros called from `\@dofilelist' are following.
+%% \[|\NFL at make@macro at arg<cmd-1><cmd-2>|\] results in
+%% `<cmd-1>{<t-list>}' where <t-list> is the one-step expansion of
+%% <cmd-2>:
+ \def\NFL at make@macro at arg##1##2{\expandafter##1\expandafter{##2}}%
+%% |\NFL at space@split{<token-list>}{<spaced>}{<unspaced>}|
+%% passes prefix and suffix as arguments to <spaced>
+%% if a space token is within <token-list>, otherwise
+%% <unspaced> gets the original <token-list> as single
+%% argument. The latter is useful here where <token-list>
+%% becomes visible only by an &\expandafter.
+%% The following construction is discussed more generally
+%% in the \ctanpkgref{bitelist} package.
+ \def\NFL at space@split##1{%
+ \NFL at return@space at split##1\@nil: \NFL at criterion\@nil\@nil@{##1}}%
+%% `\NFL at return@spaces at split' essentially has \emph{three} parameters
+%% delimited by ` ', `\@nil', and `\@nil' again.
+ \def\NFL at return@space at split##1 ##2\@nil##3\@nil@##4##5##6{%
+ \NFL at ifx@kbl\NFL at criterion{##2}%
+%% If #2 is empty, `\NFL at ifx@kbl' (as of v0.3) compares
+%% `\NFL at criterion' (criterion indicating ``unspaced") with
+%% `\expandafter'. This only happens when the space is the last thing
+%% in <token-list>, and `<spaced>' is chosen correctly.
+ {##6{##4}}{##5{##1}{##2}}}%
+%% |\NFL at ifx@kbl{<token>}{<maybe-token>}{<ifx>}{<unlessx>}|
+%% as of v0.3 should save some tokens, in some longer run,
+%% especially if we want to add nestings -- %
+%% cf.~\file{source2e.pdf} for ``Kabelschacht".
+ \def\NFL at ifx@kbl##1##2{%
+ \ifx##1##2\expandafter \@firstoftwo
+ \else \expandafter \@secondoftwo \fi}%
+%% Dealing with |\NFL at date@or at rest{<token-list>}| before `\NFL at maybe@three':
+ \def\NFL at date@or at rest##1{%
+ \NFL at if@dateS{##1}{##1}{%
+ \NFL at if@dateD{##1}{##1}{\NFL at no@date at version##1}%
+ }%
+ }%
+%% |\NFL at if@dateS{<token-list>}{<yes>}{<no>}| ... slashes
+ \def\NFL at if@dateS##1{\NFL at slashes##1\NFL at xi xyzxyzxyzx\@nil}%
+%% |\NFL at slashes| checks that there are slashes at the expected places:
+ \def\NFL at slashes##1##2##3##4##5##6##7##8{%
+ \NFL at ifx@kbl##5/%
+ {\NFL at ifx@kbl##8/\NFL at ten@only\NFL at false}%
+ \NFL at false
+%% This especially happens when <token-list> is empty.
+%% Digit candidates back:
+ {##1##2##3##4##6##7}}%
+%% Since 2017-03-08 \LaTeX\ accepts dates formatted as
+%% yyyy-mm-dd instead of yyyy/mm/dd.
+%% Currently both formats are valid.
+%% Therefore the nicefilelist package needs to
+%% also accept ``-" (dash) instead of ``/" (slash) as separator.
+ \def\NFL at if@dateD##1{\NFL at dashes##1\NFL at xi xyzxyzxyzx\@nil}%
+ \def\NFL at dashes##1##2##3##4##5##6##7##8{%
+ \NFL at ifx@kbl##5-%
+ {\NFL at ifx@kbl##8-\NFL at ten@only\NFL at false}%
+ \NFL at false
+ {##1##2##3##4##6##7}}%
+%% If the word is a date, we now have taken 6 of the 8 digits.
+%% \[|\NFL at ten@only{<digits>}<digit><digit>Q|\]
+%% takes the two remaining and then a thing that should be `Q'
+%% in the funny sense of Sec.~\ref{sec:safe}.
+ \def\NFL at ten@only##1##2##3##4{%
+ \NFL at ifx@kbl\NFL at xi##4\NFL at digits\NFL at false
+%% Finally checking digits:
+ ##1##2##3\@nnil}%
+%% |\NFL at digits<token>| is a loop through single tokens:
+ \def\NFL at digits##1{%
+ \NFL at ifx@kbl##1\@nnil\NFL at true{%
+ \NFL at if@digit at code##1<0\NFL at false{%
+ \NFL at if@digit at code##1>9\NFL at false\NFL at digits
+ }%
+ }%
+ }%
+%% |\NFL at if@digit at code<char-1><relation><char-2><fits><bad>|:
+ \def\NFL at if@digit at code##1##2##3{%
+ \ifnum`##1##2`##3 \expandafter \@firstoftwo
+ \else \expandafter \@secondoftwo \fi}%
+%% |\NFL at false| skips further candidates and dummies and chooses <no>:
+ \def\NFL at false##1\@nil{\@secondoftwo}%
+%% |\NFL at true| skips further candidates and dummies and chooses <yes>:
+ \def\NFL at true##1\@nil{\@firstoftwo}%
+%% We do not support version without date, therefore run
+%% |\NFL at no@date at version| as soon as we find that the file info
+%% does not start with a date:
+ \def\NFL at no@date at version{%
+ \NFLnodate\NFLspaceII\NFLnoversion@\NFLspaceIII}%
+%% |\NFLnoversion@| adds filler to &\NFLnoversion:
+ \def\NFLnoversion@{%
+ \NFL at make@macro at arg\NFL at place@version\NFLnoversion}%
+%% |\NFL at maybe@three{<word-1>}{<rest>}| looks whether <word-1>
+%% is a date. If it is, it is written to screen, and then we look
+%% if <rest> contains a version id. Otherwise ```<word-1>_<rest>'"
+%% is considered a ``caption" only.
+ \def\NFL at maybe@three##1##2{%
+ \NFL at if@dateS{##1}%
+ {##1\NFLspaceII
+ \NFL at space@split{##2}%
+ \NFL at maybe@version at rest
+ \NFL at version@or at rest}%
+ {\NFL at if@dateD{##1}%
+ {##1\NFLspaceII
+ \NFL at space@split{##2}%
+ \NFL at maybe@version at rest
+ \NFL at version@or at rest}%
+ {\NFL at no@date at version##1 ##2\NFL at hashessizes}}}%
+%% |\NFL at version@or at rest{<token-list>}|:
+ \def\NFL at version@or at rest##1{%
+ \NFL at if@version{##1}%
+ {\NFL at place@version{##1}}%
+ {\begingroup%
+ \toks0={##1}%
+ \edef\NFLcap{\the\toks0}%
+ \expandafter\endgroup%
+ \ifx\NFLcap\empty%
+ \else%
+ \NFLnoversion@\NFLspaceIII##1%
+ \fi%
+ }}%
+%% |\NFL at if@version{<token-list>}{<yes>}{<no>}|:
+ \def\NFL at if@version##1{\NFL at v@digit##1xy\@nil}%
+%% TO-DO: At applications you see how some tokens could be saved.
+%% On the other hand, the macros are more transparent in the present way.
+%% \vskip\smallskipamount\noindent
+%% |\NFL at v@digit{<t1>}{<t2>}{<rest>}| checks whether the first thing
+%% is a `v' and the second a digit -- unless package option `[r]'
+%% was chosen. v0.4 uses `\edef' for choosing:
+ \edef\NFL at v@digit##1##2##3\@nil{%
+ \noexpand\NFL at ifx@kbl##1v%
+ {\noexpand\NFL at digits##2\noexpand\@nnil}%
+%% |\@listfiles| will either expand to the original `\NFL at false'
+%% or to a test on `r':
+ \@listfiles
+ \noexpand\@nil}%
+ \let\@listfiles\relax
+%% |\NFL at place@version{<token-list>}| adds filler to version id:
+ \def\NFL at place@version##1{\MFleftinfield{##1}{f-version}}%
+%% |\NFL at hashessizes| adds the sizes and/or hashes, when the respective optional option
+%% to |\listfiles| has been used, e.g. |\listfiles[sizes,hashes]|:
+ \def\NFL at hashessizes{%
+ \ifnum0%
+ \if at listfiles@hashes1\fi%
+ \if at listfiles@sizes1\fi%
+ >0 %
+ \NFLspaceIV(%
+ \if at listfiles@sizes%
+ size \@dofilelist at size\@currname%
+ \if at listfiles@hashes%
+ , %
+ \fi%
+ \fi%
+ \if at listfiles@hashes%
+ hash \@dofilelist at hash\@currname%
+ \fi%
+ )%
+ \fi%
+ }
+%% |\NFL at maybe@version at rest{<list-1>}{<list-2>}|:
+ \def\NFL at maybe@version at rest##1##2{%
+ \NFL at if@version{##1}%
+ {\NFL at place@version{##1}\NFLspaceIII}%
+ {\NFLnoversion@\NFLspaceIII##1 }%
+ ##2\NFL at hashessizes}%
+ }%
+}{% older format:
+ \renewcommand*{\listfiles}{%
+%
+ \let\listfiles\relax%
+%% -- this clears memory. Now \LaTeX\ does not collect file names for
+%% &\listfiles when &\@listfiles is undefined, therefore
+% \let\@listfiles\relax%
+%% % although we do not use it.
+%% % (TO-DO use it in place of some other `\NFL@'...?)
%% ... postponed for future version...
-%% \vskip\smallskipamount\noindent
%% |\@dofilelist| is executed by the standard \LaTeX\ `\enddocument'
%% macro or by `\ListInfos' from the \ctanpkgref{myfilist} package.
\def\@dofilelist{%
@@ -342,10 +570,10 @@
\fi%
%% According to `source2e.pdf', &\filename at area may be a directory.
%% Trying support of this, it seems to be a new feature with v0.2
-%% --- not tested, TO-DO!
+%% -- not tested, TO-DO!
\edef\@tempa{\filename at area\filename at base}%
%% Actually I would like to be able to do even the file-name parsing
-%% in an expandable way --- for all systems, `texsys.cfg'?! TO-DO
+%% in an expandable way -- for all systems, `texsys.cfg'?! TO-DO
\NFL at filerow{%
%% Now all parsing and checking must be expandable.
\NFL at make@macro at arg\MFrightinfield\@tempa {f-base}.%
@@ -390,7 +618,7 @@
{##6{##4}}{##5{##1}{##2}}}%
%% |\NFL at ifx@kbl{<token>}{<maybe-token>}{<ifx>}{<unlessx>}|
%% as of v0.3 should save some tokens, in some longer run,
-%% especially if we want to add nestings---{}%
+%% especially if we want to add nestings -- %
%% cf.~\file{source2e.pdf} for ``Kabelschacht".
\def\NFL at ifx@kbl##1##2{%
\ifx##1##2\expandafter \@firstoftwo
@@ -446,7 +674,7 @@
\def\NFL at false##1\@nil{\@secondoftwo}%
%% |\NFL at true| skips further candidates and dummies and chooses <yes>:
\def\NFL at true##1\@nil{\@firstoftwo}%
-%% We don't support version without date, therefore run
+%% We do not support version without date, therefore run
%% |\NFL at no@date at version| as soon as we find that the file info
%% does not start with a date:
\def\NFL at no@date at version{%
@@ -469,20 +697,27 @@
\NFL at space@split{##2}%
\NFL at maybe@version at rest
\NFL at version@or at rest}%
- {\NFL at no@date at version##1 ##2}}}%
+ {\NFL at no@date at version##1 ##2\NFL at hashessizes}}}%
%% |\NFL at version@or at rest{<token-list>}|:
\def\NFL at version@or at rest##1{%
\NFL at if@version{##1}%
{\NFL at place@version{##1}}%
- {\NFLnoversion@\NFLspaceIII##1}}%
+ {\begingroup%
+ \toks0={##1}%
+ \edef\NFLcap{\the\toks0}%
+ \expandafter\endgroup%
+ \ifx\NFLcap\empty%
+ \else%
+ \NFLnoversion@\NFLspaceIII##1%
+ \fi%
+ }}%
%% |\NFL at if@version{<token-list>}{<yes>}{<no>}|:
\def\NFL at if@version##1{\NFL at v@digit##1xy\@nil}%
%% TO-DO: At applications you see how some tokens could be saved.
-%% On the other hand, the macros are more transparent in the
-%% present way.
+%% On the other hand, the macros are more transparent in the present way.
%% \vskip\smallskipamount\noindent
%% |\NFL at v@digit{<t1>}{<t2>}{<rest>}| checks whether the first thing
-%% is a `v' and the second a digit---unless package option `[r]'
+%% is a `v' and the second a digit -- unless package option `[r]'
%% was chosen. v0.4 uses `\edef' for choosing:
\edef\NFL at v@digit##1##2##3\@nil{%
\noexpand\NFL at ifx@kbl##1v%
@@ -494,12 +729,18 @@
\let\@listfiles\relax
%% |\NFL at place@version{<token-list>}| adds filler to version id:
\def\NFL at place@version##1{\MFleftinfield{##1}{f-version}}%
+%% |\NFL at hashessizes| adds the sizes and/or hashes, when the respective optional option
+%% to |\listfiles| has been used, e.g. |\listfiles[sizes,hashes]|:
+ \def\NFL at hashessizes{%
+ % is not implemented for old formats
+ }
%% |\NFL at maybe@version at rest{<list-1>}{<list-2>}|:
\def\NFL at maybe@version at rest##1##2{%
\NFL at if@version{##1}%
- {\NFL at place@version{##1}\NFLspaceIII##2}%
- {\NFLnoversion@\NFLspaceIII##1 ##2}}%
-}
+ {\NFL at place@version{##1}\NFLspaceIII}%
+ {\NFLnoversion@\NFLspaceIII##1 }%
+ ##2\NFL at hashessizes}%
+}}
%% === Shorthand for 'myfilist' ===
%% \[|\MaxBaseEmptyList{<longest-name>}[<read-again-files>]|\]
%% (v0.5) or
@@ -511,7 +752,7 @@
\MFfieldtemplate{f-base}{#1}%
\RequirePackage{myfilist}\EmptyFileList}
%% So |\maxBaseEmptyList| is like former `\MaxBaseEmptyList'
-%% without expecting a star---available to users.
+%% without expecting a star -- available to users.
%%
%% === Leaving the Package File ===
\endinput
@@ -520,21 +761,19 @@
v0.1 2012/03/20 started
2012/03/22 almost ready
- 2012/03/23 debugging; \NFLspaceI etc.;
- documentation completed
+ 2012/03/23 debugging; \NFLspaceI etc.; documentation completed
v0.2 2012/03/24 file info processed by \typeout - start
2012/03/25 trying, debugging
2012/03/26 continued; \NFL at place@version, \NFLnoversion@;
works, reordered; another fix about Q -> \@empty
- 2012/03/27 undone the latter, explained; improved remarks on
- \@listfiles
+ 2012/03/27 undone the latter, explained; improved remarks on \@listfiles
2012/03/29 alignment of title/stars with base<11
v0.30 2012/05/18f. \NFL at ifx@kbl in \NFL at return@space at split
2012/05/20 all \ifx reimplemented, old code kept
STORED INTERNALLY
v0.31 2012/05/20 removing old code - STORED INTERNALLY
-v0.32 2012/05/20 removing \NFL at xpxpxp; replacing \NFL at after@false
- by \NFL at ifnum@kbl, keeping old code
+v0.32 2012/05/20 removing \NFL at xpxpxp;
+ replacing \NFL at after@false by \NFL at ifnum@kbl, keeping old code
STORED INTERNALLY
v0.33 2012/05/20 removing old code; added 3 %s
STORED INTERNALLY
@@ -546,19 +785,22 @@
2012/10/28 \HardWrap first try
2012/10/29 \HardWrap newline material -> [wrap]
sec:test below sec:opt, mentioning `url'
- 2012/10/30 correcting \NFL at filerow without wrapping,
- doc.: |...| in sec:opt
+ 2012/10/30 correcting \NFL at filerow without wrapping, doc.: |...| in sec:opt
v0.7a 2012/12/12 doc. monospace -> monofill; archived at:
https://web.archive.org/web/20221205210517/
https://mirror.mwt.me/ctan/install/macros/
latex/contrib/nicefilelist.tds.zip
v0.8a 2022/12/05 Accepting also dashes instead of slashes in date
- (one-time fix by H.-Martin Münch); archived at:
+ (one-time fix by H.-Martin M\"{u}nch); archived at:
https://web.archive.org/web/20230106193203/
https://mirror.mwt.me/ctan/install/macros/
latex/contrib/nicefilelist.tds.zip
v0.9a 2023/01/08 now also regarding |ver@@| for version;
new option [autolength] (using .aux file)
- (one-time fix by H.-Martin Münch)
+ (one-time fix by H.-Martin M\"{u}nch)
v0.9b 2023/02/13 bug-fix: file extension missed when |\input|
- (one-time fix by H.-Martin Münch)
\ No newline at end of file
+ (one-time fix by H.-Martin M\"{u}nch)
+v0.9c 2025/04/21 kernel's |\listfiles| now accepts options "sizes" and "hashes"
+ and displays file size and md5 hash -
+ now also implemented for nicefilelist
+ (one-time fix by H.-Martin M\"{u}nch)
More information about the tex-live-commits
mailing list.