summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/support
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-11-22 00:51:36 +0000
committerKarl Berry <karl@freefriends.org>2012-11-22 00:51:36 +0000
commit7091f02f114d34ab2164074d16106b9e9b4e8bb4 (patch)
treeb7015b4d037854b112819fafcd5679d8d5cc68c9 /Master/texmf-dist/source/support
parentac225c92964fc1f94322e26a4edc729528882bcb (diff)
adhocfilelist (21nov12)
git-svn-id: svn://tug.org/texlive/trunk@28326 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/support')
-rw-r--r--Master/texmf-dist/source/support/adhocfilelist/adhocfilelist.tex517
-rw-r--r--Master/texmf-dist/source/support/adhocfilelist/fdatechk.tex13
-rw-r--r--Master/texmf-dist/source/support/adhocfilelist/makehtml.tex24
-rw-r--r--Master/texmf-dist/source/support/adhocfilelist/srcfiles.tex19
-rw-r--r--Master/texmf-dist/source/support/adhocfilelist/texblog.fdf744
5 files changed, 1317 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/support/adhocfilelist/adhocfilelist.tex b/Master/texmf-dist/source/support/adhocfilelist/adhocfilelist.tex
new file mode 100644
index 00000000000..4cee4cc8f80
--- /dev/null
+++ b/Master/texmf-dist/source/support/adhocfilelist/adhocfilelist.tex
@@ -0,0 +1,517 @@
+\ProvidesFile{adhocfilelist.tex}[2012/11/19 documenting adhocfilelist (UL)]
+\head \charset{ISO-8859-1} %%% {utf-8}
+ \texrobots
+ \title{List LaTeX file infos according to command line}
+% \stylesheet{all}{plain} %% tried 2012/05/06
+ \simplebody
+ \lineanc{top-of-page} %%% \textopofpage
+\EXECUTE{\UseBlogLigs}
+\EXECUTE{\BlogInterceptHash}
+\EXECUTE{\def\bodytitle{\heading1}
+ % \def\section{\heading2}
+% \def\labelsection#1{\nextview{#1}\endgraf\lineanc{#1}\heading2}
+% \def\labelsection#1{\lineanc{#1}\heading2}
+ \def\labelsection#1#2{\heading2{\lineanc{#1}#2\ancref{#1}{.}}}
+ \def\subsection{\heading3}
+ \def\fakeitem{\bullet\enspace}
+% \def\strongcs#1{\strong{\cs{#1}}}
+ \def\strongcode#1{\strong{\code{#1}}}
+ \def\strongmetaopt#1#2{\strong{\code{-#1}~\metacode{#2}}}
+ \def\metamandarg#1{\code\{\metacode{#1}\code\}}
+ \def\metaoptarg#1{\code[\metacode{#1}\code]}
+ \def\optitem#1{\ditem{\code{-#1}}}
+ \def\optmetaitem#1#2{\ditem{\optmeta{#1}{#2}}}
+ \def\optmeta#1#2{\code{-#1}~\metacode{#2}}
+ \def\metacode#1{\code{\metavar{#1}}}
+% \let\CPR\ctanpkgref
+% \def\pkgnamefmt{\spanstyle{font-family:monospace}}
+ \let\pkgnamefmt\textsf
+ \let\pkg\pkgnamefmt
+ \let\file\pkgnamefmt
+ \def\Find{\pkgnamefmt{\Wikienref{find}}}
+ \def\find{\pkgnamefmt{find}}
+ \def\ext#1{\code{.#1}}
+}
+% \EXECUTE{\BlogInterceptHash} %% upfinfo.sh instead
+% \EXECUTE{\RequirePackage{monofill}} %% upfinfo.sh instead
+% \EXECUTE{\let\pkgnamefmt\code}
+\bodytitle{\code{adhocfilelist} ---\vspace{6} Listing \LaTeX\ Source File Infos\\
+ According to Command Line}
+
+% \small[\,\UseVersionOf{finfinfo.tex}~as~of~\UseDateOf{finfinfo.tex}\,]\endsmall
+%% <- TODO \relax 2012/04/09
+ <p> %%% \vspace{24}
+\begin{small}
+[\,\ancrefslist{{{abstract}{abstract}}
+ {{over}{overview}}
+ {{required}{requirements}}
+ {{install}{installing}}
+ {{related}{related}}
+ {{back}{background}}
+ {{custom}{customize}}
+ {{idea}{idea/thanks}}}\,]\quad
+[\,\textit{\fileref{\htmljob}{reload}}\,]
+\end{small}
+
+\labelsection{abstract}{Abstract}
+\file{adhocfilelist.sh} is a shell script with command line options
+and parameters that displays \metavar{info} for files \metavar{file}
+on screen that (i)~are indicated on the command line and
+(ii)~contain \cs{ProvidesFile}\metamandarg{file}\metaoptarg{info},
+\cs{ProvidesPackage}\metamandarg{file}\metaoptarg{info},
+or \cs{ProvidesClass}\metamandarg{file}\metaoptarg{info}.
+There is one line for each file, formatted about as with \LaTeX's
+\cs{listfiles}. This formatting can be varied, and the output may
+additionally be saved in a plain text file. The files \metavar{file}
+are either (a)~listed explicitly, separated by commas, or
+(b)~they are gathered by the Unix \Find\ utility.
+For the latter, \pkg{adhocfilelist} provides a somewhat simplified
+interface, especially for restricting the list of files
+to those that have been modified "today" or a few days ago.
+So you/I can check whether version info was updated correctly,
+and it may allow \ctanpkgref{filedate} \dqtd{consistency checks}
+even with \CtanPkgRef{xetex}{\XeTeX} (where \cs{pdffilemoddate}
+is unavailable).
+ <p>
+The package may thus be considered an extension of the
+\ctanpkgref{latexfileversion} (Harald \ctanpkgauref{harders}{Harders})
+and \ctanpkgref{typeoutfileinfo} packages
+that display \metavar{info} for a \emph{single} file \metavar{file}.
+Moreover, it is a somewhat simplified interface to the packages
+\ctanpkgref{myfilist}, \ctanpkgref{longnamefilelist},
+\ctanpkgref{nicefilelist}, and \ctanpkgref{filedate}.
+
+\labelsection{over}{Overview of command line contents}
+The general structure of a command line using \pkg{adhocfilelist} is
+\begin{quote}
+ \ancref{call}{\metavar{call}}
+ \ancref{opts}{\metavar{options}}
+ \ancref{files}{\metavar{files}}
+\end{quote}
+The three parts are as follows:
+\begin{description}
+ \ditem{\metavar{call}\lineanc{call}}
+ This is either
+ \begin{itemize} %% 2012/10/17
+ \item \metavar{path}\file{adhocfilelist.sh}
+ where \metavar{path} is "./" or something,
+ depending on where you place the file \file{adhocfilelist.sh},
+ or on your use of \Wikienref{symbolic link}s,
+ the environment variable \code{\Wikiendisambref{PATH}{variable}},
+ or
+ \item an \code{\Wikiendisambref{alias}{command}} for
+ \metavar{path}\file{adhocfilelist.sh}. %% was <path> 2012/10/17
+ \end{itemize}
+ \ditem{\metavar{options}\lineanc{opts}}
+ \EXECUTE{\newcommand*{\fmode}{\strong{(f)}}}
+ Some options "switch into \strong{\Find\ mode}",
+ affecting the interpretation of \strong{\metavar{files}}, marked by "\fmode".
+ Their description may be inaccurate here,
+ understanding the details may require some knowledge of \find\
+ (see "\ancref{back}{background}" below).
+ Some options have one parameter, some have none.
+ \begin{description}
+ \optitem{0} \fmode\
+ List files modified "\strong{today}" only (unless ...)
+ \optmetaitem{a}{integer} \fmode\
+ List files modified \metavar{integer} days \strong{ago} only
+ (unless \metavar{integer} starts with "\code{-}" or "\code{+}" ...)
+ \optitem{c} \fmode\
+ Compare date according to \cs{Provides...} content with modification
+ date using \ctanpkgref{filedate} additionally.
+ <p>
+ \TODO: The restriction to \find\ (v0.7) is temporary, removing it is
+ straightforward, but I may have to postpone this for a while.
+ \optitem{f} \fmode\
+ Add \metavar{files} to other \strong{\find} criteria,
+ \strong{replacing} internal default settings
+ (as opposed to \code{-g}).
+ For allowing certain file name extensions such as \ext{tex},
+ the star must be escaped and \metavar{files} best
+ has outer single quotes, such as
+ \begin{quote}
+ \EXECUTE{\MakeOther\'}
+ \code{'-L ( -name \cs{*}.tex -o -name \cs{*}.sty )'}
+ %% <- follow -> L 2012/11/19
+ \end{quote}
+ \optmetaitem{F}{find-file} \fmode\
+ Add content of the \strong{file} \metavar{find-file} to other \strong{\find} criteria.
+ As compared with \code{-f}, stars must be escaped,
+ while other quoting seems not to be needed in \metavar{files}.
+ \optitem{g} \fmode\
+ Add \metavar{files} to other \strong{\find} criteria,
+ among which some hopefully "\strong{generally useful}"
+ are added from within \file{adhocfilelist.sh}.
+ As to quoting/escaping in \metavar{files},
+ this is as with \code{-f}.
+ \optitem{h}
+ Display an overview (brief version of present one, "\strong{help}"),
+ and ignore everything else of the command line.
+ \optmetaitem{i}{tex-file}
+ Prepend ("\strong{input}") contents of the file \metavar{tex-file}
+ to the temporary \ext{tex} file that \file{adhocfilelist.sh}
+ generates internally\pardash to get more individual settings
+ than \file{adhocfilelist.sh}'s internal defaults
+ (which are \strong{replaced} by the content of \metavar{tex-file})
+ and than the options \code{-l} and \code{-n} provide.
+ \optmetaitem{l}{integer}
+ Format list by the \strong{\ctanpkgref{longnamefilelist}} package
+ where \metavar{integer} is the maximum length of base
+ \Wikienref{filename}s in the list (about as ...)
+ \optmetaitem{n}{filename}
+ Format list by the \strong{\ctanpkgref{nicefilelist}} package
+ where \metavar{filename} is the longest base \Wikienref{filename} (or a template).
+ %% 2012/10/15:
+ If base filenames do \emph{not} have more than eight characters,
+ you can use "\strongcode{-n~.}" as a shorthand for
+ "\optmeta{n}{filename}" with a \metavar{filename} of eight characters.
+ \optmetaitem{o}{txt-file}
+ Save the displayed file info list ("\strong{output}")
+ as plain text file \metavar{txt-file} also.
+ \optitem{x}
+ Use \code{xelatex} rather than \code{latex} (v0.7).\enpardash The
+ idea for this has been that the script should provide
+ "date consistency" checks (\strong{option~\code{-c}})
+ \endqtd{even with \CtanPkgRef{xetex}{\XeTeX} where \cs{pdffilemoddate}
+ is not available.} However, the script has used \code{latex}
+ before v0.7 which will run \CtanPkgRef{pdftex}{\pdfTeX} usually,
+ even when the user prefers \emph{typesetting} with \XeTeX,
+ and anyway it does not rely on \cs{pdffilemoddate}.
+ The real problem with \ctanpkgref{filedate} and \XeTeX\ is that
+ a reliable consistency check does not work
+ \emph{while typesetting with \XeTeX}. But \pkg{filedate} can be
+ used for "\TeX\ scripts" too, i.e., \emph{without} typesetting,
+ and that is what the present package does.
+ The present package does \emph{not} provide consistency checks
+ \emph{while typesetting with \XeTeX}.
+ It should not be make a difference whether the "\TeX\ script"
+ that \pkg{adhocfilelist} generates is run with \XeTeX\ or with \pdfTeX.
+ So the only "special \XeTeX\ support" from here probably
+ will be the present \strongcode{-x} in case \code{latex}
+ \emph{does not work}, maybe because \pdfTeX\ or anything implementing
+ the \code{latex} command is missing on the user's (unusual) installation.
+ \end{description}
+ Options can \emph{not} be "contracted" like "\code{-0f}"
+ (too difficult with processing [parts of] \find\
+ expressions\pardash\code{-name} ...).
+ \ditem{\metavar{files}\lineanc{files}}
+ Whenever an option "switches into \Find\ mode",
+ \metavar{files} is interpreted as part of a command line for the
+ \find\ utility. Otherwise, \metavar{files} is expected to be a
+ comma-separated list of filenames (for \LaTeX\ source files),
+ whose extension \ext{tex} (if so) may be omitted\pardash unless \code{-h}~...
+\end{description}
+
+\labelsection{required}{Requirements}
+\begin{description}
+ \ditem{System}
+ The package will work on a \Wikienref{Unix-like} system only,
+ but I am not expert enough to judge what additional restrictions hold.
+ As I could not make work everything that should work according to
+ documentation, I expect the other way round that what works on
+ my installation may not work at other Unix-like installations.
+ If something doesn't work at your installation, please tell me via
+ \urlref{contact-ednotes.sty.de.vu}.
+ <p>
+ Actually the package was developed with the \Wikienref{GNU bash}
+ shell and the
+ \wikienref{GNU Find Utilities}{\acro{GNU} \find\ utility} on
+ \Wikiendisambref{Ubuntu}{operating system}~10.04.
+ <p>
+ My impression is in fact
+ (looking at \Wikienref{The Open Group}'s
+ \httpref{pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html}{man page}
+ for \find)
+ that in order to use the \strong{\find} options
+ \strongcode{-0}, \strongcode{-a}, \strongcode{-f}, \strongcode{-F},
+ and \strongcode{-g}, the \strong{\acro{GNU}} version of \find\ is required,
+ because action \strong{-printf} is used and essential (difficult without).
+ \ditem{\LaTeX}
+ The package requires that the \ctanpkgref{fileinfo} bundle is installed.
+ In order to use the \strong{\code{-l}} option,
+ \ctanpkgref{longnamefilelist} must be installed additionally.
+ In order to use the \strong{\code{-n}} option,
+ \ctanpkgref{nicefilelist} must be installed additionally.
+ In order to use the \strong{\code{-c}} option,
+ \ctanpkgref{filedate} must be installed additionally.
+\end{description}
+
+\labelsection{install}{Installing}
+No more advice than implied by the section on "\ancref{call}{\metavar{call}}"
+can be given right now.
+
+\labelsection{related}{Related packages}
+The file
+\mirrorctanref{info/latexfileinfo-pkgs/latexfileinfo_pkgs.htm}{%
+ \file{latexfileinfo_pkgs.htm}}
+describes related packages available on
+% \httpref{tug.ctan.org}{\acro{CTAN}}
+\acro{\Wikiref{CTAN}}
+in some detail.
+The most obvious ones have been mentioned above already.
+% It might be added that Martin \ctanpkgref{scharrer}{Scharrer}'s
+% \ctanpkgref{filemod} probably could be used as an alternative to
+% \code{\Wikiref{find}} in the future\pardash I have not studied
+% it sufficiently yet (and may not be able soon).
+ <p>
+The \ancref{back}{next section} indicates details that may be
+improve understanding the \LaTeX-related command line options
+\code{-i}, \code{-l}, and \code{-n}.
+
+\labelsection{back}{Background}
+For understanding the options \strongcode{-0}, \strongcode{-a},
+\strongcode{-f}, \strongcode{-F}, and \strongcode{-g},
+knowing something about the \Find\ utility %% was The 2012/10/17
+and the present \ancref{back-find}{interface} to it may be helpful.
+The options \strongcode{-i}, \strongcode{-l}, \strongcode{-n},
+and \strongcode{-o} refer to the \ctanpkgref{myfilist} package
+and its enhancements by the packages \ctanpkgref{longnamefilelist}
+and \ctanpkgref{nicefilelist}, and it may be helpful to know
+what a "\ancref{my-script}{\pkg{myfilist} script}" is.
+\begin{description}
+ \ditem{\find\lineanc{back-find}}
+ We are describing the \strong{interface} to \Find.
+ To learn about the contents of a \find\ command line,
+ the \wikienref{find}{Wikipedia article} may be a good start,
+ next enter "\code{man find}" in the terminal, finally see the
+ \httpref{gnu.org/software/findutils/manual/find.html}{\acro{GNU} manual}.
+ <p>
+ \file{adhocfilelist.sh} forms the following \find\ command line
+ in order to get a comma-separated list of files:
+ \begin{quote}
+ \code{find}
+ \ancref{back-f-prefix}{\metacode{prefix}}
+ \ancref{back-f-files} {\metacode{files}}
+ \ancref{back-f-day} {\metacode{day}}
+ \code{-printf ,\%f}
+ \end{quote}
+ These parts are as follows:
+ \begin{description}
+ \ditem{\metavar{prefix}\lineanc{back-f-prefix}}
+ is
+ \begin{quote}
+ \code{-L -maxdepth 1 ( -name \cs{*}.tex -o }\metacode{more}\code{ )}
+ %% <- follow -> L 2012/11/19
+ \end{quote}
+ where \metavar{more} in addition to files with extension \ext{tex} allows
+ those with extensions \ext{sty}, \ext{cfg}, \ext{cls}, \ext{dtx},
+ \ext{def}, and \ext{fd}\pardash \strong{unless} with \strong{options}
+ \begin{description}
+ \optitem{f}
+ where \metavar{prefix} is empty
+ \optmetaitem{F}{find-file}
+ where \metavar{prefix} is the content of the file \metavar{find-file}.
+ \end{description}
+ Option \strongcode{-g} is not required with options
+ \strongcode{-0} and \strong{-a} that switch into "\strong{\find\ mode}"
+ too without deleting \metavar{prefix}, it is just a way to switch
+ into \find\ mode otherwise without deleting \metavar{prefix}.
+ \ditem{\metavar{files}\lineanc{back-f-files}}
+ is as in the \ancref{files}{overview}.
+ \ditem{\metavar{day}\lineanc{back-f-day}}
+ is empty, unless \strongcode{-0} sets it to
+ \begin{quote}
+ \code{-daystart~-mtime 0}
+ \end{quote}
+ or \strongmetaopt{a}{integer} sets it to
+ \begin{quote}
+ \code{-daystart~-mtime~}\metacode{integer}
+ \end{quote}
+ It follows that
+ \begin{itemize}
+ \item \strongcode{-0} has the same effect as
+ (is just a shorthand for) \strongcode{-a~0}
+ \item if \metavar{integer} is "\code{-\metavar{digits}}",
+ files modified \emph{since} \metavar{digits} days ago
+ are allowed
+ \end{itemize}
+ \emdash cf.~\acro{GNU} documentation on
+ \httpref{gnu.org/software/findutils/manual/html_node/%
+ find_html/Age-Ranges.html}{age ranges.}
+ <p>
+ A \strong{tricky} little thing here is that \metavar{day}
+ may be \emph{expected} to be a \emph{restriction},
+ an \emph{additional} criterion that a \LaTeX\ source file
+ must meet to be listed. However, if \metavar{files} ends on
+ \strongcode{-o} for "or", \metavar{day} becomes an
+ "additional possibility" for being listed ...
+ <p>
+ \TODO: This is different with \strong{option \code{-c}}
+ (v0.7) whose functionality also may change soon.
+ \end{description}
+ \ditem{\pkg{myfilist}\lineanc{my-script}}
+ The \LaTeX\ package \ctanpkgref{myfilist} provides some commands
+ to control the input of \LaTeX's \cs{listfiles} so that its
+ output is not a list of files used for typesetting,
+ but a list of arbitrary files that is determined by commands
+ like
+ \begin{quote}
+ \cs{ReadFileInfos}\metamandarg{comma-separated-list-of-filenames}
+ \end{quote}
+ Essentially this is the command which the list of filenames that
+ was \metavar{files} or that is produced by \find\ is passed to.
+ The list is generated by running a \ext{tex} file that contains
+ these commands. Such a file has been called a
+ "\strong{\pkg{myfilist} script}" here.
+ More precisely, such a script is (mostly) structured as follows:
+ \begin{quote}
+ \ancref{back-load-set}{\metavar{loading-settings}}\\
+ \ancref{back-coll-infos}{\metavar{collecting-infos}}\\
+ \ancref{back-write}{\metavar{writing-to-screen+file}}
+ \end{quote}
+ These parts are as follows:
+ \begin{description}
+ \ditem{\metavar{loading-settings}\lineanc{back-load-set}}
+ at least issues \cs{RequirePackage}\metamandarg{myfilist}.
+ By default, \pkg{adhocfilelist.sh} produces (roughly)
+ \begin{quote}
+ \cs{RequirePackage}\cb{myfilist}\cs{EmptyFileList}
+ \metacode{adhoc-adjust}
+ \end{quote}
+ for \metavar{loading-settings} where \metavar{adhoc-adjust}
+ adds technical details needed for use with \pkg{adhocfilelist}.
+ (Final warnings are suppressed by a command \cs{NoBottomLines},
+ this might be changed in the future.)
+ <p>
+ It has been a disadvantage of \LaTeX's \cs{listfiles} functionality
+ that the resulting plain text file list looked good with base filenames
+ only that had up to eight characters. \ctanpkgref{longnamefilelist}
+ made up for this disadvantage, and \ctanpkgref{nicefilelist}
+ has additional refinements of aligning the list, proposed by
+ Martin \ctanpkgauref{muench-hm}{Mnch}. To use them with
+ \pkg{myfilist}, they are loaded in \metavar{loading-settings}
+ as well, and additional settings for column widths may be added there too.
+ This is what \strong{options} \strongcode{-l} and \strongcode{-n} do.
+ Besides in their own \acro{PDF} documentation (that you find by following the
+ links), the packages are also briefly described in that file
+ \mirrorctanref{info/latexfileinfo-pkgs/latexfileinfo_pkgs.htm}{%
+ \file{latexfileinfo_pkgs.htm}}
+ to be read by a web browser.
+ <p>
+ However, more refined settings may be needed that cannot
+ be controlled by \pkg{adhocfilelist}'s interface so far.
+ The \strong{option} \strongmetaopt{i}{tex-file}
+ has the effect that \metavar{loading-settings} becomes
+ \begin{quote}
+ \metavar{tex-file-content}
+ \metavar{adhoc-adjust}
+ \end{quote}
+ where \metavar{tex-file-content} is the content of the
+ (\ext{tex} file) \metavar{tex-file} (before \cs{endinput}).
+ \ditem{\metavar{collecting-infos}\lineanc{back-coll-infos}}
+ essentially is that
+ \begin{quote}
+ \cs{ReadFileInfos}\metamandarg{comma-separated-list-of-filenames}
+ \end{quote}
+ mentioned above.
+ \ditem{\metavar{writing-to-screen+file}\lineanc{back-write}}
+ essentially is \cs{ListFileInfos} or
+ \begin{quote}
+ \cs{ListFileInfos}\metaoptarg{txt-file}
+ \end{quote}
+ With \pkg{adhocfilelist}, that "\metaoptarg{txt-file}"
+ is inserted on \strong{option} \strongmetaopt{o}{txt-file}.
+ \end{description}
+ However, \pkg{myfilist} has been extended at the occasion
+ of preparing \pkg{adhocfilelist} so that the sections
+ \metavar{collecting-infos} and \metavar{writing-to-screen+file}
+ may "collapse" into a single command starting with
+ \cs{ReadListFileInfos}.
+\end{description}
+
+\labelsection{custom}{General customization}
+In general, options \strongmetaopt{F}{find-file} and
+\strongmetaopt{i}{tex-file} will be needed
+to deal with certain directories \metavar{dir}.
+Two ways come to my mind how to simplify this situation.
+\begin{enumerate}
+ \item \metavar{find-file} and \metavar{tex-file} may be
+ in the same directory \metavar{dir}, and the latter may es well
+ contain an executable (\code{\Wikienref{chmod}})
+ script file \metavar{script-file}
+ with the following content:
+ \begin{quote}
+ \ancref{call}{\metacode{call}}
+ \code{-F~}\metacode{find-file}
+ \code{-i~}\metacode{tex-file}
+ \metacode{more}
+ \code{\string$@}
+ \end{quote}
+ Here \metavar{call} is as in the \ancref{call}{overview},
+ and \metavar{more} may be empty or something else that you
+ want to have fixed, such as \strongmetaopt{o}{txt-file}.
+ <p>
+ \strong{Then} you can \strong{vary} additional options/parameters
+ \metavar{add} by
+ \begin{quote}
+ \code{./}\metacode{script-file} \metacode{add}
+ \end{quote}
+ \item If you have \strong{several directories} \metavar{dir} as before
+ of a certain "type", %%% \metavar{type}, %% rm. 2012/10/17
+ such that they can \strong{share} the settings in
+ \metavar{find-file} and \metavar{tex-file},
+ you can place the latter in some separate ("central")
+ directory \metavar{center} and define an \code{\Wikienref{alias}}
+ as follows:
+ \begin{quote}
+ \EXECUTE{\MakeOther\'}
+ \code{alias~}\metacode{name}\code{='}\ancref{call}{\metacode{call}}
+ \code{-F~}\metacode{center}\code/\metacode{find-file}
+ \code{-i~}\metacode{center}\code/\metacode{tex-file}
+ \metacode{more}\code{'}
+ \end{quote}
+ (Note that there is no "\code{\string$@}".
+ "\metacode{dir}\code/\metacode{tex-file}" could be replaced by
+ mere "\metacode{tex-file}" if that \metavar{tex-file}
+ is installed like a \TeX~package.)
+ <p>
+ \strong{Then} you can \strong{vary} additional options/parameters
+ \metavar{add} by
+ \begin{quote}
+ \metacode{name} \metacode{add}
+ \end{quote}
+\end{enumerate}
+
+\labelsection{idea}{The idea/motivation; acknowledgements}
+One day (most probably 2012-09-27),
+I wanted to check the \cs{ProvideFile} contents of \emph{two}
+files I knew I had edited that day.
+On 2012-09-26, I had thought about simplifying \ctanpkgref{typeoutfileinfo}
+by using a single command line without any piping.
+I realized that \LaTeX~s \cs{typeout} could be replaced by
+\cs{ReadFileInfos} from \ctanpkgref{myfilist}.
+Therefore "\Wikienref{ad hoc}".
+ <p>
+Maybe the same day later,
+I realized that I could no longer remember which files I changed that day.
+In July I had discovered \code{\string$(find ...)}. Now I thought that this
+could be used here. "Ad hoc" is less appropriate here, and first I thought
+that there will be different script files for explicitly specified files
+than for applying \find.
+ <p>
+Only then I learnt real shell programming by googling, kind of chance,
+and most helpfully from Chapter~3 of Jrgen Wolfs
+\httpref{openbook.galileocomputing.de/shell_programmierung}{OpenBook}
+from \Wikideref{Galileo Press}
+(\code{\Wikienref{getopts}}\pardash bad here, however)
+and Prof. Jrgen Plates
+\httpref{netzmafia.de/skripten/unix/unix8.html}{lecture notes}
+("Optionen ermitteln"\pardash "by hand").
+ <p>
+Then quoting/escaping for filename extensions with \Find\ became difficult ...
+Quotation marks and "positional parameters" with the shell are very
+difficult/\strong{painful}\pardash\TeX\ is more straightforward ...
+On the other hand it is nice that the entire command line with \emph{all} the
+"parameters" is gobbled.
+
+\hrule
+\rightpar{\textit{%
+ Last~revised~\isotoday\ \copyright~\webdesignref{contact.html}{Uwe Lck}\\
+% \vspace{6}
+ (using \CtanPkgRef{morehype}{blog.sty})\\ %% ) 2012/10/17
+% \vspace{6}
+ License: \httpref{www.latex-project.org/lppl/}{LPPL~1.3c} or later, author-maintained.}}
+\entotopofpage
+\vspace{240}
+\finish
+
diff --git a/Master/texmf-dist/source/support/adhocfilelist/fdatechk.tex b/Master/texmf-dist/source/support/adhocfilelist/fdatechk.tex
new file mode 100644
index 00000000000..75841ba67d1
--- /dev/null
+++ b/Master/texmf-dist/source/support/adhocfilelist/fdatechk.tex
@@ -0,0 +1,13 @@
+\ProvidesFile{fdatechk.tex}[2012/11/20 `filedate' checks]
+{\catcode`\#=9 \catcode`\!=14 %% { for plainpkg
+ \ReadFileInfos{adhocfilelist.sh,herelist.sh}}
+\RequirePackage{filedate}
+\ModDates
+\UseReferenceDate{\thepdfmoddate}
+\DoWithAllOf{\CheckDateOfGiven}{%
+ {adhocfilelist.RLS}
+ {adhocfilelist.sh}{herelist.sh}
+ {adhocfilelist.tex}
+ {makehtml.tex}{fdatechk.tex}{srcfiles.tex}}
+\CheckDateOfToday{adhocfilelist.RLS}
+
diff --git a/Master/texmf-dist/source/support/adhocfilelist/makehtml.tex b/Master/texmf-dist/source/support/adhocfilelist/makehtml.tex
new file mode 100644
index 00000000000..7b527d4e997
--- /dev/null
+++ b/Master/texmf-dist/source/support/adhocfilelist/makehtml.tex
@@ -0,0 +1,24 @@
+\ProvidesFile{makehtml.tex}[2012/11/20 HTML driver]
+\RequirePackage[r]{nicefilelist} %% [r] 2012/11/19
+\MFfieldtemplate{f-base}{adhocfilelist} %% 2012/10/19
+\RequirePackage{myfilist}
+\RequirePackage{blog}[2012/09/17]
+\BlogInterceptEnvironments
+\RequirePackage{texlinks}
+\RequirePackage{catchdq,langcode}
+\input{atari_ht.fdf}
+\input{texblog.fdf}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\htmljob{adhocfilelist}
+\ResultFile{adhocfilelist.htm}
+\BlogProcessFinalFile[\TextCodes\catchdqs]
+ {\htmljob.tex}
+%% 2012/10/19:
+\ReadFileInfos{makehtml}
+\ReadFileInfos{\htmljob.tex} %% TODO blogexec 2012/10/19
+{\CatCode\#=9 \CatCode\!=14
+ \ReadFileInfos{\htmljob.sh}}
+\ReadFileInfos{srcfiles,\htmljob.RLS}
+\input{fdatechk}
+\ListInfos[AllSRCes.txt] %% [...] 2012/11/20
+\stop
diff --git a/Master/texmf-dist/source/support/adhocfilelist/srcfiles.tex b/Master/texmf-dist/source/support/adhocfilelist/srcfiles.tex
new file mode 100644
index 00000000000..334244f8d8a
--- /dev/null
+++ b/Master/texmf-dist/source/support/adhocfilelist/srcfiles.tex
@@ -0,0 +1,19 @@
+\ProvidesFile{srcfiles.tex}[2012/11/20 file infos -> SrcFILEs.txt]
+\RequirePackage{dowith}
+\RequirePackage[r]{nicefilelist}
+\MaxBaseEmptyList{adhocfilelist}
+%% shell scripts:
+{\catcode`\#=9 \catcode`\!=14 %% { for plainpkg
+ \ReadFileInfos{adhocfilelist.sh,herelist.sh}}
+%% documentation:
+\ReadFileInfos{adhocfilelist}
+%% TeX scripts:
+\ReadFileInfos{makehtml,fdatechk,srcfiles}
+\FileListRemark[ ---- ]{----RELEASE.---}
+\ReadFileInfos{adhocfilelist.RLS}
+\FileListRemark[ ---- ]{HTML_packages.---}
+\ReadPackageInfos{blog,blogexec,domore,fifinddo}
+\ReadFileInfos{texblog.fdf}
+\NoStopListInfos[SrcFILEs.txt]
+\input{fdatechk}
+\stop
diff --git a/Master/texmf-dist/source/support/adhocfilelist/texblog.fdf b/Master/texmf-dist/source/support/adhocfilelist/texblog.fdf
new file mode 100644
index 00000000000..ed3c2ae907a
--- /dev/null
+++ b/Master/texmf-dist/source/support/adhocfilelist/texblog.fdf
@@ -0,0 +1,744 @@
+\ProvidesFile{texblog.fdf}[2012/11/20 (11/15) extra blog settings]
+%%
+%% macros I use for my note pages
+%% -- Uwe Lueck, www.contact-ednotes.sty.de.vu
+%%
+%% page head:
+\newcommand*{\texrobots}{\robots{index,follow,noarchive}}
+%% TODO: all
+\newcommand*{\texstylesheet}{\stylesheet{all}{plain}}
+%% 2012/09/06:
+\newcommand*{\texmetadata}{%
+ \metanamecontent{author}{Uwe L\"uck}\CLBrk
+ \metanamecontent{date}{\isotoday}\CLBrk
+ \texrobots}
+%% 2011/04/24:
+\newcommand*{\TeXtopofpage}{%% 2011/06/19, \gt 2012/09/08:
+ \topofpageline{\code{uwe_lueck} \code{\gt} }{\texmapName}}
+\newcommand*{\texmapName}{texmap}
+%% 2011/05/17, \pubfilename 2012/09/19:
+\newcommand*{\pubfilename}{\htmljob}
+\newcommand*{\reloadTeXtopofpage}[2]{%
+ \TeXtopofpage{\pardash\fileref\pubfilename{\meta{#1}}%
+ \pardash#2}} %% mv. brace here 2011/12/20
+\newcommand*{\deTeXtopofpage}{\reloadTeXtopofpage{neu~laden}}
+\newcommand*{\enTeXtopofpage}{\reloadTeXtopofpage{reload}}
+\newcommand*{\textopofpage}{\TeXtopofpage{}}
+% \newcommand*{\enreloadthis}{% %% 2011/05/14
+% \pardash\fileref{\htmljob}{reload}}
+%% 2011/06/19:
+\newcommand*{\topofpageline}[3]{%
+% \hanc{top-of-page}{%
+ \CLBrk\indenti %% 2011/10/12
+ \begin{small}%
+ \hanc{top-of-page}{% %% 2012/09/08
+ #1%
+ }% %% 2012/09/08
+ \ifx\htmljob#2\else
+ \CLBrk\indenti
+ \Fileref{#2} \code{\gt} \fi %% \gt 2012/09/08
+ \file\htmljob#3%
+ \end{small}%
+% \CLBrk}% %% 2011/10/12
+ \CLBrk %% 2012/09/08
+}
+\newcommand*{\privtopofpage}[1]{%
+ \topofpageline{}{\privmapName}%
+ {\depardash\fileref{\htmljob}{\textit{neu~laden}}%
+ \depardash#1}}
+\newcommand*{\privmapName}{privmap}
+%%
+\makeatletter %% 2011/10/12
+\@ifpackageloaded{blogexec}{% %% 2012/03/14
+\newenvironment*{noblog}{}{} %% 2012/03/04 from ...
+\MakeBlogBeginRun{noblog}{%
+ \BlogInterceptEnvironments %% 2012/06/22
+ \let\WriteResult\@gobble}
+}{}
+%% body colors (started 2010/09/15):
+\let\simplebody\body
+\renewcommand*{\body}{%
+% </head><body \@bgcolor{\bodybgcolor}>} %% \@bgcolor 2011/10/03
+ </head>%
+ <body\@style{background-color:\bodybgcolor}>} %% 2011/11/09
+ %% <- no space 2012/09/08
+\newcommand*{\bodybgcolor}{\#fffff0} %% CSS ivory 2011/08/03
+% \newcommand*{\bodybgcolor}{\#ffffe7} %% 2010/11/23 2011/06/29
+% \newcommand*{\bodybgcolor}{\#f5f5dc} %% CSS beige 2011/07/31
+% \newcommand*{\bodybgcolor}{\#f8f8ff} %% CSS ghostwhite 2011/07/31
+% \newcommand*{\bodybgcolor}{\#f0ffff} %% CSS azure 2011/08/01
+% \newcommand*{\bodybgcolor}{\#fdf5e6} %% CSS oldlace 2011/08/01
+% \newcommand*{\bodybgcolor}{\#fffafa} %% CSS snow 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fafad2} %% CSS lightgol... 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fffaf0} %% CSS floralwhite 2011/07/31
+% \newcommand*{\bodybgcolor}{\#ffffe0} %% CSS lightyellow 2011/07/31
+ %% erneut probiert 2011/12/12
+% \newcommand*{\bodybgcolor}{\#fbfff0} %% 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fdffee} %% 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fefedd} %% 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fcfffc} %% 2011/07/31
+% \newcommand*{\bodybgcolor}{\#fbffff} %% 2011/07/30
+% \newcommand*{\bodybgcolor}{\#fffded} %% 2011/06/29
+% \newcommand*{\bodybgcolor}{\#fcffef} %% 2011/06/28
+% \newcommand*{\bodybgcolor}{\#ffffef} %% 2011/06/27
+% \newcommand*{\bodybgcolor}{\#ffffff}
+% \newcommand*{\bodybgcolor}{\#ffffdd} %% 2010/11/17
+% \newcommand*{\bodybgcolor}{\#faffe7} %% 2010/11/17
+% \newcommand*{\bodybgcolor}{\#fcffe7} %% 2010/11/23
+% \newcommand*{\bodybgcolor}{\#fbfff0} %% 2010/11/23
+% \newcommand*{\bodybgcolor}{\#fbfffe} %% 2010/11/23
+%%
+%% dark body, aus ultrado.tex, gekuerzt, abgewandelt 2012/05/08:
+\newcommand*{\darkbody}{%
+ \begin{style}{all}\CLBrk
+ b, h1, h2, h3, h4, div, p, td, th, body, span, table, ol, li, a, ul {\CLBrk
+ \lightplaincolor
+ \darkfonts\CLBrk %% light -> dark 2012/05/09
+ \CLBrk}\CLBrk
+ body { \darkbackgroundcolor }\CLBrk
+ \CLBrk
+ a:link { \lightlinkcolor \lightfonts }\CLBrk
+% a:visited { color:\#cc33cc; }\CLBrk
+ a:visited { \lightlinkcolor \lightfonts }\CLBrk
+ a:hover { \lightlinkcolor \lightfonts }\CLBrk
+ a:active { \lightlinkcolor \lightfonts }\CLBrk
+ \end{style}\CLBrk
+ </head><body>\CLBrk
+}
+%% requires:
+% \newcommand*{\plainbody}{</head><body>}
+\newcommand*{\lightlinkcolor}{color:%
+% \#9999ff; }
+ \#ccffff; } %% 2012/05/10
+% \#99ccff; } %% 2012/05/10
+\newcommand*{\lightplaincolor}{color:%
+% white; }
+% \#fff8cc; }
+ \#ffffcc; }
+% \#cccccc; }
+\newcommand*{\boldcss}{font-weight:bold; }
+% \newcommand*{\lightfonts}{\boldcss}
+\newcommand*{\lightfonts}{}
+% \newcommand*{\darkfonts}{\lightfonts}
+\newcommand*{\darkfonts}{}
+\newcommand*{\darkbackgroundcolor}{background-color:%
+% \#333300; }
+% black; }
+% \#221100; }
+% \#222200; }
+ \#001100; } %% 2012/05/10
+% \#110011; } %% 2012/05/10
+% \#111111; } %% 2012/05/10
+%%
+%% table cell colors: %% 2011/11/08
+\newcommand*{\mylightblue}{\#eeeeff} %% Wiki TCP/IP
+% \newcommand*{\mylightblue}{\#ddddff} %% auch nicht schlecht 2011/11/10
+% \newcommand*{\mylightblue}{\#ddeeff} %% auch nicht schlecht 2011/11/10
+% \newcommand*{\mylightblue}{\#eeefff} %% dantev45
+\newcommand*{\mylightyellow}{\#fff8cc} %% yellow 2011/11/09
+% \newcommand*{\mylightyellow}{\#ffeebb}
+
+%% internal navigation:
+\renewcommand*{\autref}[1]{\ancref{#1}{\code{#1}}} %% 2011/05/16
+% \renewcommand*{\autref}[1]{\ancref{#1}{\code{#1}}} %% 2011/05/16
+% \renewcommand*{\autref}[1]{\ancref{\lowercase{#1}}{#1}}
+ %% <- does not expand 2011/05/10
+\newcommand*{\Autref}[1]{\ancref{#1}{#1}} %% 2011/08/16
+\newcommand*{\ancandref}[1]{\hancref{#1}{\##1}} %% 2011/07/04
+% \newcommand*{\lineanc}[1]{\TagSurr a{\@name{#1}}}
+\newcommand*{\lineanc} [1]{\hanc{#1}{}} %% 2011/07/20
+%% TODO: one anchor element with more
+%% than one name!? %% 2011/08/31
+\newcommand*{\sieheuref}[1]{\ancref{#1}{s.\,u.}} %% 2011/12/23
+
+%% click to move to top of window: %% 2011/07/25 hier 2012/02/07
+\newcommand*{\entotopofpage}{%
+ \rightpar{\ancref{top-of-page}{[\textit{\to~top~of~page}~]}}}
+\newcommand*{\detotopofpage}{%
+ \rightpar{\ancref{top-of-page}{[\textit{\to Seitenanfang}\,]}}}
+\newcommand*{\nextview}[1]{% %% corr. 2010/09/15
+ \rightpar{\ancref{#1}{[\to}|%
+ \ancref{top-of-page}{~\uparrow~]}}}
+\newcommand*{\Nextview}[1]{% %% 2011/05/12
+ \nextview{#1}\hanc{#1}{}}
+\newcommand*{\nextruleview}[1]{% %% 2010/09/15
+ \nextview{#1}\hrule\hanc{#1}{}}
+\newcommand*{\NRV}{\nextruleview} %% 2011/03/15
+%% Diary date sections:
+% \newcommand*{\datepar}[1]{%
+%% <- 2012/10/24 ->
+\newcommand*{\Datepar}[2]{%
+% \endgraf\hanc{#1}{\latexdatepar#1\latexdatepar}}%% 2011/08/12:
+% \vspace{3} %%% 2011/08/16 \\%
+ \vspace{12} %% 2012/09/13
+ %% TODO CSS!? <- 2012/09/13 ->
+% \heading4{%
+ \lineanc{\isodateplus#1\isodateplus}%
+ \lineanc{#1}%
+ %% mod. 2012/10/24:
+ \heading4{\noligs{\isodateplus#1\isodateplus
+ \ifx\@nnil#2\@nnil\else
+ \pardash\ParseLigs{#2}\fi}}}
+% \isodateplus#1\isodateplus}}
+\newcommand*{\datepar}[1]{\Datepar{#1}{}}
+%% #5 allows modifications like time, `b', `f.':
+% \def\latexdatepar#1/#2/#3#4#5\latexdatepar{%
+% \endgraf\heading4{#1-#2-#3#4#5}}
+\def\isodateplus#1/#2/#3#4#5\isodateplus{% %% 2011/08/15
+ #1-#2-#3#4#5}
+\def\isodate#1/#2/#3#4{#1-#2-#3#4}
+\newcommand*{\Isodate}{\expandafter\isodate} %% 2011/08/21
+\newcommand*{\isodateref}[1]{% %% 2011/08/19
+ \ancref{#1}{\isodateplus#1\isodateplus}}
+%% "kw" is "Kalenderwoche" (English term?)
+\newcommand*{\kwsec}[1]{% %% 2011/08/24
+% \heading4{%
+ \endgraf
+ \vspace{9}\endgraf
+ \strong{%
+ \hanc{kw#1}%
+ {KW#1\quad\ancref{kw#1}{\gets}}}%
+% \endgraf
+}
+\newcommand*{\kwrule}[1]{% %% 2011/08/27
+ \nextview{kw#1}\hrule
+ \hanc{kw#1}{\SimpleTagSurr{big}{KW#1}}%
+}
+%% 2012/10/26:
+\newcommand*{\zeitref}[2]{\ancref{#1-#2}{#2}}
+\newcommand*{\zeitanc}[2]{\hanc{#1-#2}{#2}}
+%% 2011/08/18 [private - 2011/08/26]:
+\newcommand*{\geldpref}{\ancref{geld}{\euro}}
+\newcommand*{\jobspref}{\autref{jobs}}
+
+%% offline links: %% 2012/09/18
+\newcommand*{\Offlineref}[1]{%
+ \hnewref{}{../../www-Kopien/#1}{\offlinetext}}
+\newcommand*{\offlinetext}{\small~[0]\endsmall} %% 2012/09/22
+%% bar of internal links %% 2011/12/23 / 2012/02/07
+\newcommand*{\internallinksbar}[1]{%
+% \samehtmlline{% %% irrelevant 2011/12/25
+ [\,\DoSeparateWithMore\ancref
+ \BlogVertNoBreakSep %% 2011/12/25
+ #1\StopDoing\,]}%
+% }
+% \newcommand{\DoSeparateWith}[3]{#1{#3}\do@separate@with#1#2}
+% \def\do@separate@with#1#2#3{%
+% \ifx\StopDoing#3%
+% \else#2#1{#3}%
+% \expandafter\do@separate@with\expandafter
+% #1\expandafter#2\fi}
+%% More 2012/01/17 [`\Do...' moved to `domore.sty' 2012/08/07]:
+% \newcommand*{\make@ancref}[1]{\ancref#1}
+\newcommand*{\BlogVertNoBreakSep}{~|~} %% 2011/12/25
+\newcommand*{\BlogVertSep} {~| } %% 2011/12/25
+\newcommand*{\BlogVertLine} {~|\CLBrk} %% 2012/09/06
+\newcommand*{\ancrefs}[1]{% %% 2011/12/28
+% \DoSeparateWithMore\ancref\BlogVertSep %% 2012/01/17
+ \DoSeparateWithMore\ancref\BlogVertLine %% 2012/01/17
+ #1\StopDoing}
+\newcommand*{\ancrefslist}{} \let\ancrefslist\ancrefs %% 2012/08/02 TODO
+\newcommand*{\varancrefs}[2]{% %% 2012/06/19 /08/07
+ \DoSeparateWithMore\ancref{#1}#2\StopDoing}
+\newcommand*{\autrefs}[1]{% %% 2011/12/28
+ \DoSeparateWith\autref\BlogVertSep #1\StopDoing}
+%% 2012/01/17 later [moved to `domore.sty' 2012/08/07]:
+\RequirePackage{domore}
+%% 2012/01/18:
+%% accesses all possibilities:
+%% 2012/08/07 moved to `domodes.sty'
+ \iffalse %% TEST doowith 2012/06/03
+\let\DoWith\DoWithZ %% !!!
+% \renewcommand*{\DoSeparateWithMore}[2]{% %% !!?
+% \DoSeparateWithSetsPresentedAs{#1}{#2}{M}{Z}}
+\renewcommand*{\DoSeparateWithMore}{\DoWithModes{Z}{M}} %% !!?
+% \show\DoSeparateWithMore
+%% ... including shorthand for `\do', 48 macros in mind.
+% \newcommand*{\StripEsc}{\expandafter\@gobble\string}
+%% ... lists of things capable of being an undelimited macro
+%% argument.
+% \newcommand*{\AddAncRef}[1]{\ancref#1~| } %% 2011/12/28
+% \newcommand*{\AddAutRef}[1]{\autref{#1}~| } %% 2011/12/28
+ \fi
+\newcommand*{\topfilesbar}[1]{% %% 2011/12/26
+ |~%
+ \DoSeparateWith \Fileref
+ \BlogVertNoBreakSep
+ #1\StopDoing
+}
+%%
+%% internal/external 2011/08/17f.:
+% \newcommand*{\emailpref}{\ancref{email}{E-M@il}}
+% \newcommand*{\emailpref}{%
+% \ancref{email}{@\,}|\httpref{web.de/fm}{\,fm}}
+\newcommand*{\ausflwpref}{%
+ \autref{ausfl-w}\pardash\wetterwpref
+%% 2011/08/22:
+ \pardash\vrnpref}
+\newcommand*{\vrnpref}{%
+% \httpref{www.vrn.de/vrn/einfach-ankommen/fahrplanauskunft/}%
+ \httpref{www.vrn.de}% %% 2011/09/08
+ {VRN}}
+%% 2012/01/15:
+\newcommand*{\webdefmref}{\httpref{web.de/fm}}
+\newcommand*{\emailpref}{\ancref{email}{@\,}|\webdefmref{\,fm}}
+%% TODO mit \EXECUTE auslagern?
+
+%% link in new code line TODO!? bad in parentheses: %% 2012/09/06
+% \renewcommand*{\href}[1]{\CLBrk\TagSurr a{\@href{#1}}}
+% \renewcommand*{\hnewref}[2]{%
+% \CLBrk\TagSurr a{\@href{#1#2" target="_blank}}}
+%% 2012/09/08:
+\newcommand*{\LinkLinesBroken}{%
+ \def\@href##1{\CLBrk\indenti href="##1"}}
+\newcommand*{\LinkLinesNormal}{%
+ \def\@href##1{ href="##1"}}
+%%
+%% page bottom:
+%% `\isotoday' moves to `blog.sty' 2011/11/20
+\newcommand*{\genlastrev}[2]{% %% 2011/11/02
+ \rightpar{\textit{#1~%
+% \Isodate\GenDate
+ \isotoday %% 2011/11/02
+ \ \copyright~\href{#2.html}{Uwe~L\"uck}}}}
+\newcommand*{\enlastrev}{\genlastrev{%
+% Last~revised%
+ Last~generated%
+ }{contact}}
+\newcommand*{\delastrev}{\genlastrev{%
+ Zuletzt neu erzeugt}{kontakt}}
+\newcommand*{\Hrule}{\totopofpage\hrule}
+\newcommand*{\fivebreaks}{\\\\\\\\\\} %% TODO \vspace
+
+%% external navigation:
+\renewcommand*{\htmakeext}{.htm} %% 2011/10/05
+\newcommand*{\Fileref}[1]{\fileref{#1}{\file{#1}}} %% 2010/09/10
+\newcommand*{\Fileancref}[2]{% %% 2012/09/11
+ \fileancref{#1}{#2}{\file{#1\##2}}} %% 2012/09/11
+\newcommand*{\urlhref}[1]{\href{#1}{\urlfmt{#1}}} %% 2011/08/19
+\newcommand*{\domainref}[2]{% %% 2012/06/08
+ \httpref{#1/#2}{\urlfmt{#1}}}
+\newcommand*{\localfilenewref}{\hnewref{}} %% 2011/10/12
+%% Ubuntu-Wiki 2012/09/13:
+\newcommand*{\ubuntuurl}{wiki.ubuntuusers.de}
+\newcommand*{\ubunturef}{\httpbaseref\ubuntuurl}
+\newcommand*{\ubuntucmd}[1]{\ubunturef{#1}{\code{#1}}}
+\newcommand*{\Ubunturef}[1]{\ubunturef{#1}{#1}}
+\newcommand*{\siehewiki}[1]{% %% 2011/05/06
+ \to\wikideref{#1}{\textit{Wikipedia}}}
+\newcommand*{\Wref}[1]{\wikiref{#1}{Wikipedia}} %% 2012/01/19
+\renewcommand*{\Wikilangref}[2]{% %% 2012/10/26f.
+ \@wikilpref{#1}#2\BiteSep|\@nnil\BiteSep\@nil{#2}} %% {#1} 2012/11/08
+%% TODO neues bitelist!
+\def\@wikilpref#1#2|#3\BiteSep#4\@nil#5{%
+ \ifx\@nnil#3\@empty
+ \wikilangref{#1}{#5}{#5}%
+ \else
+ \wikilangref{#1}{#2}{%
+ \ifx\@three#3\@three %% 2012/10/27
+ \wiki@noparen#2\@nil%
+ \else
+ #3%
+ \fi
+ }%
+ \fi}
+\def\wiki@noparen#1 (#2\@nil{#1}
+%% <- TODO -> `texlinks' 2012/11/15
+%% 2011/11/23, 2012/01/06, 2012/03/11:
+\newcommand*{\wiktionarylangref}[1]{%
+ \httpbaseref{#1.wiktionary.org/wiki}}
+% \newcommand*{\Wiktenref}[1]{\wiktionarylangref{en}{#1}{#1}}
+% \newcommand*{\Wiktderef}[1]{\wiktionarylangref{de}{#1}{#1}}
+% \newcommand*{\Wiktref}[1]{% %% 2012/01/13
+% \wiktionarylangref\langcode{#1}{#1}}
+%% <- 2012/01/13 ->
+\newcommand*{\Wiktionarylangref}[2]{%
+ \wiktionarylangref{#1}{#2}{#2}}
+\newcommand*{\Wiktderef}{\Wiktionarylangref{de}}
+\newcommand*{\Wiktenref}{\Wiktionarylangref{en}}
+\newcommand*{\Wiktref}{\Wiktionarylangref\langcode}
+%% 2011/11/23, 2012/01/06, 2012/03/11:
+\newcommand*{\wikiquotelangref}[1]{%
+ \httpbaseref{#1.wikiquote.org/wiki}}
+\newcommand*{\Wikquenref}[1]{\wikiquotelangref{en}{#1}{#1}}
+%% 2012/11/15:
+\newcommand*{\AAOwikiref}{%
+ \httpbaseref{vps8324694103.serverpool.info/aaowiki}}
+%% to do:
+\newcommand*{\wormsmusref}{% %% 2011/04/30, 2012/03/11
+ \httpbaseref{www.worms.de/deutsch/kultur/museen}}
+%% 2011/08/18:
+\newcommand*{\facebookpref}{%
+ \httpref{de-de.facebook.com}{facebook}}
+\newcommand*{\wetterwpref}{%
+% \hanc{wetter}{\mystrong{Wetter:}}
+% \Endash \httpref{www.wetteronline.de/Rheinland-Pfalz/Worms.htm%
+% }{\code{www.wetteronline.de}}
+% \Endash \httpref{m.wetter.net/1686/Worms}{\code{m.wetter.net}}
+% \Endash \httpref{www.wetteronline.de/dldlsat.htm%
+% }{Satellitenbild}
+ \httpref{www.wetteronline.de/Rheinland-Pfalz/Worms.htm}{%
+ \code{wol} }|
+ \httpref{m.wetter.net/1686/Worms}{\code{mww} }|
+ \httpref{www.wetteronline.de/dldlsat.htm}{\code{sat}}
+}
+%% 2011/08/19:
+\newcommand*{\webdesignref}{%
+ \httpbaseref{www.webdesign-bu.de/uwe_lueck}}
+\newcommand*{\webdesignurlref}[1]{%
+ \webdesignref{#1}%
+ {\urlfmt{www.webdesign-bu.de/uwe_lueck/#1}}}
+%% TeX links:
+% \newcommand*{\CPR}{\ctanpkgref} %% 2011/03/15, rm. 2011/11/06
+\newcommand*{\ctanpkgstyref}[1]{\CtanPkgRef{#1}{#1.sty}}
+\newcommand*{\THPR}{\texhaxpref} %% 2011/03/15
+\newcommand*{\THpref}[1]{\texhaxpref{#1}{texhax}} %% 2011/03/24
+%% month names move to `texlinks.sty' 2012/10/24
+\newcommand*{\TOPref}[1]{\bytopicref{#1}{JF\##1}} %% 2011/04/22
+% \newcommand*{\todobytopic}[1]{% %% 2011/04/22, rm. 2011/11/08
+% \myalert{\to\ \TOPref{#1}}}
+\newcommand*{\UKFAQref}[1]{\ukfaqref{#1}{UK~FAQ}} %% 2011/01/03
+%% SelfHTML:
+\newcommand*{\selfhtmlurl}{de.selfhtml.org}
+\newcommand*{\selfhtmlref}{\httpbaseref\selfhtmlurl}
+\newcommand*{\selfhtmlrefref}[1]{%
+ \selfhtmlref{/html/referenz/#1.htm}}
+\newcommand*{\selfhtmlcsseigref}{% %% 2012/09/23
+ \httpbaseref{\selfhtmlurl/css/eigenschaften}}
+
+%% BlogLIGs:
+%% 2012/01/06f. [[...]] f. \Wikiref:
+\FDpseudoTilde
+% \Delimiters\(\)
+% \catcode`\(=1 \catcode`\)=2
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{)(blog<-)
+ %% <- TODO echte `{' kann man so nicht einsetzen, vorverarb...
+% \MakeExpandableAllReplacer(blog]])(]])(})(blog[[)
+% \CopyFDconditionFromTo(blog]])(BlogLIGs)
+ %% fine:
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\catchdbrk)(blog<-)
+% \CopyFDconditionFromTo(blog[[)(BlogLIGs)
+ %% hacks fail:
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\iffalse}\fi)
+% (blog<-)
+% \MakeExpandableAllReplacer(blog]])(]])(\iffalse{\fi})
+% (blog[[)
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\iffalse}\protect\fi)
+% (blog<-)
+% \MakeExpandableAllReplacer(blog]])(]])(\protect\iffalse{\protect\fi})
+% (blog[[)
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\ifnum0=`}\protect\fi)
+% (blog<-)
+% \MakeExpandableAllReplacer(blog]])(]])(\protect\ifnum0=`{\protect\fi})
+% (blog[[)
+% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\ifnum0=`}\fi)
+% (blog<-)
+% \MakeExpandableAllReplacer(blog]])(]])(\ifnum0=`{\fi})
+% (blog[[)
+% \CopyFDconditionFromTo(blog]])(BlogLIGs)
+% \Delimiters\{\}
+% \MakeOther\( \MakeOther\)
+\MakeExpandableAllReplacer{blog[[}{[[}{\protect\catchdbrkt}{blog<-}
+\def\catchdbrkt#1]]{\Wikiref{#1}} %% + t 2012/01/09
+ %% <- TODO in blog.sty \wikilink!? %% <- 2012/01/09 ->
+\MakeExpandableAllReplacer{blog**}{**}
+ {\protect\doublestar:}{blog[[}
+\MakeExpandableAllReplacer{blog***}{***}
+ {\protect\triplestar:}{blog**}
+% \CopyFDconditionFromTo{blog***}{BlogLIGs}
+%% 2012/01/11:
+\MakeActiveDef\'{\noexpand'}
+\MakeExpandableAllReplacer{blog\string'\string'}{''}
+ {\protect\doubleapostr:}{blog***}
+\MakeExpandableAllReplacer{blog\string'\string'\string'}{'''}
+ {\protect\tripleapostr:}{blog\string'\string'}
+\MakeOther\'
+\CopyFDconditionFromTo{blog'''}{BlogLIGs}
+\newcommand*{\MakePairLaTeXcmd}[2]{%
+ \@ifdefinable#1{\def#1:##1#1:{#2{##1}}}} %% ":" for "..." 2012/01/30
+%% <- 2012/01/15 ->
+\MakePairLaTeXcmd\doublestar\mystrong
+\MakePairLaTeXcmd\triplestar\myalert
+\MakePairLaTeXcmd\doubleapostr\textit
+\MakePairLaTeXcmd\tripleapostr\textbf
+%% TODO -> blog.sty or so %% 2012/02/07
+
+%% rm. HVspace etc. 2011/10/13
+%% font switching (logical):
+% \renewcommand*{\textsf}{% %% 2011/05/12
+% \TagSurr{span}%
+% {style="font-size:82\%;
+% font-family:sans-serif"}}
+ %% <- rm. 2011/10/24
+\providecommand*{\file}{\code} %% provide 2011/03/07
+\newenvironment*{itquote}{\quote<i>}{</i>\endquote}
+\newcommand*{\mystrong}{\textcolor{\#aa0000}}
+\providecommand*{\myalert}{\textcolor{red}}
+% \newcommand*{\myalert}[1]{%
+% \textcolor{red}{\ParseLigs{#1}}} %% 2011/12/20
+\newcommand*{\prl}[1]{#1} %% prg lang, corr. 2010/12/15
+\providecommand*{\pkg}{\pkgnamefmt} %% 2011/03/05
+% \renewcommand*{\pkgnamefmt}{\code} %% 2011/10/24
+ %% <- for heyctan ->
+\let\pkgnamefmt\@firstofone %% 2011/10/24
+\renewcommand*{\urlfmt}{\code} %% 2011/10/24
+\newcommand*{\meta}{\textit} %% 2011/05/16
+% \newcommand*{\acro}[1]{\small#1\endsmall} %% 2011/06/19
+% \newcommand*{\acro}[1]{#1} %% 2011/06/19
+ %% <- rm. 2012/01/06
+\providecommand*{\metahttpref}[2]{% %% 2011/10/24
+ \httpref{#1}{\meta{#2}}}
+% {\catcode`\'\active \gdef\catchsq#1'{\code{#1}}} %% 2012/01/31
+ %% <- \end occured when \ifeof on line 24 was incomplete
+
+%% involving font switching for special purposes: %% 2011/07/25
+\newcommand*{\src}[1]{\STS{sup}{[#1]}} %% 2010/09/12
+\newcommand*{\idx}[1]{% %% 2010/11/23:
+ \textcolor{green}{\code{\lt#1\gt}}}
+% \providecommand*{\cb}[1]{\code{{#1}}} %% 2011/03/13
+\providecommand*{\cb}[1]{\code{\{#1\}}} %% 2012/01/31
+\newcommand*{\itqtd}[1]{\textit{\dqtd{#1}}} %% 2011/05/03
+\newcommand*{\ancstrong}[2]{\hanc{#1}{\strong{#2}}} %% 2011/05/05
+% \newcommand*{\answer}[1]{[\textcolor{\#006600}{#1}]}
+\newcommand*{\answer}[1]{\textcolor{\#006600}{[#1]}} %% 2011/07/19
+\newcommand*{\Answer}[1]{\answer{\,#1\,}} %% 2011/08/25
+\newcommand*{\planh}[1]{\answer{#1\,h}} %% 2011/08/18
+\newcommand*{\TODO}{\myalert{\acronym{TODO}}} %% 2011/05/07 2011/12/29
+\newcommand*{\TODOs}{\acronym{TODOs}} %% 2011/12/29
+% \newcommand*{\HTML}{\acronym{HTML}} %% 2011/09/22
+% \newcommand*{\PDF} {\acronym{PDF}} %% 2011/09/22
+% \newcommand*{\CSS} {\acronym{CSS}} %% 2012/01/09
+% \newcommand*{\PHP} {\acronym{PHP}} %% 2012/01/09
+\DoWith\newacronym{HTML}{PDF}{CSS}{PHP}
+ {WP} %% 2012/10/06
+ \StopDoing %% 2012/02/07
+
+%% use \ParseLigs:
+%% 2012/01/08, eigentlich schon 2012/01/04, verloren ...:
+% \let\blogtextcolor\textcolor
+% \renewcommand*{\textcolor}[2]{\blogtextcolor{#1}{\ParseLigs{#2}}}
+%% 2012/01/10:
+\let\blogdedqtd\dedqtd
+\renewcommand*{\dedqtd}[1]{\blogdedqtd{\ParseLigs{#1}}}
+%% 2012/08/20:
+\let\blogendqtd\endqtd
+\renewcommand*{\endqtd}[1]{\blogendqtd{\ParseLigs{#1}}}
+%% 2012/01/19:
+\let\BlogTagSurr\TagSurr
+\renewcommand*{\TagSurr}[3]{%
+ \BlogTagSurr{#1}{#2}{\ParseLigs{#3}}}
+\let\BlogSimpleTagSurr\SimpleTagSurr
+\renewcommand*{\SimpleTagSurr}[2]{%
+ \BlogSimpleTagSurr{#1}{\ParseLigs{#2}}}
+\newcommand*{\noligs}{} \let\noligs\@firstofone %% !!!
+\renewcommand*{\code}[1]{\STS{code}{\noligs{#1}}}
+%% 2012/03/14, not optimal TODO:
+\renewcommand*{\NoBlogLigs}{%
+ \def\BlogOutputJob{LEAVE}%
+% \let\deqtd\blogdeqtd %% rm. 2012/06/03
+ \let\TagSurr\BlogTagSurr
+ \let\SimpleTagSurr\BlogSimpleTagSurr
+ \FDnormalTilde
+ \MakeActiveDef\~{&nbsp;}% %% TODO new blog cmd
+}
+
+%% dashes:
+% \newcommand*{\enpardash}{\,\emdash\,} %% 2011/05/12
+%% language-specific appear in `langcode.sty'
+%% 2012/09/20 -> \renewcommand
+\renewcommand*{\enpardash}{\thinsp\Enpardash} %% 2011/07/28 2012/09/20
+\newcommand*{\Enpardash}{\emdash\thinsp} %% 2011/07/28
+% \newcommand*{\depardash}{~\endash\ } %% 2011/05/12
+\renewcommand*{\depardash}{\ \Endash} %% 2011/07/28 2012/09/20
+\newcommand*{\Endash}{\endash\ } %% starting new line (German)
+ %% 2011/05/26
+\newcommand*{\enpardashed}[1]{% %% 2011/07/28
+ \thinsp\emdash\,#1\,\Enpardash}
+\newcommand*{\depardashed}[1]{% %% 2011/07/28
+ \ \endash~#1~\Endash}
+\def\endashed#1{\endash~#1~\endash} %% 2011/08/20
+
+%% language codes move to `langcode.sty' 2012/09/17
+%% %% \catchdq moves to own package 2012/09/17
+\newcommand*{\Euro}{\,\euro} %% mod. 2011/05/25 2011/09/08
+\newcommand*{\degC}{\,\degrees C} %% 2011/09/20
+%% avoiding spaces at code line breaks:
+\newcommand*{\bcmt}{<!-- } \newcommand*{\ecmt}{-->} %% 2011/05/02
+\newcommand*{\nix}[1]{} %% join lines without space 2011/07/24
+\newcommand*{\onehtmlline}[1]{#1} %% 2011/08/25
+\newcommand*{\samehtmlline}[1]{\ParseLigs{#1}} %% 2011/12/23
+%%
+%% enumeration styles:
+\newenvironment{enumtype}[1]{<ol \@type{#1}}{</ol>}
+\newenvironment{enumerate-a}{\enumtype a} %% 2011/08/15
+ {\endenumtype}
+\newenvironment{enumerate-i}{\enumtype i} %% 2011/08/17
+ {\endenumtype}
+%% TODO 2012/02/07 for DVI/PDF interface to 'enumerate'
+\newenvironment{tightenum} %% 2012/01/07 "tight" 2012/01/08
+ {<ol \@style{margin:0px; padding:0px;
+ margin-left:2em}>}
+ %% <- TODO mit CSS-inherit auf Eintraege uebertragen? 2012/01/12
+ {\endenumerate}
+
+\newenvironment{done}{<s>}{</s>} %% 2011/08/15
+\newcommand*{\Dots}{~\dots\ } %% 2011/08/24
+%% 2012/04/01 from autrado.fdf (2012/01/23):
+\newenvironment*{codelines}{\quote<code>}
+ {</code>\endquote}
+\MakeBlogBeginRun{codelines}{%
+ \NoBlogLigs %% 2012/01/24
+ \MakeActiveOther\"\MakeActiveOther\' %% actcodes 2012/08/28
+ \MakeActiveLet\<\lt\MakeActiveLet\>\gt %% actcodes 2012/08/28
+ \let\/\\\let\\\BackslashChar}
+
+%% table rows (before blogexec): %% 2011/09/24 / 2012/02/07
+% \newcommand*{\rowoftwocells}[2]{%
+% \starttr
+% \simplecell{#1}\simplecell{#2}%
+% \endtr}
+%% back for ... 2012/07/03:
+\newcommand*{\rowofthreecells}[3]{%
+ \starttr
+ \simplecell{#1}\simplecell{#2}\simplecell{#3}%
+ \endtr}
+% \newcommand*{\rowoffourcells}[4]{%
+% \starttr
+% \simplecell{#1}\simplecell{#2}%
+% \simplecell{#3}\simplecell{#4}%
+% \endtr}
+% \newcommand*{\rowoffivecells}[5]{% %% 2011/10/28
+% \starttr
+% \simplecell{#1}\simplecell{#2}\simplecell{#3}%
+% \simplecell{#4}\simplecell{#5}%
+% \endtr}
+% \newcommand*{\rowofsixcells}[6]{% %% 2011/10/28
+% \starttr
+% \simplecell{#1}\simplecell{#2}\simplecell{#3}%
+% \simplecell{#4}\simplecell{#5}\simplecell{#6}%
+% \endtr}
+%
+%% |\begin{stdhiddentablerows}| %% 2012/09/03
+\newenvironment*{stdhiddentablerows}
+ {\startTable{\@cellpadding\stdcellpadding
+ \@cellspacing{0px}
+ \@style{border-collapse:collapse}}%
+ \startTR}
+ {\endtablerow\endTable}
+\MakeBlogBeginRun{stdhiddentablerows}
+ {\def\startTR{\tablerow{hidden}}%
+ \def\cr{\endtr\startTR}}
+%% |\begin{stdhiddentable}| %% 2012/05/15
+\newenvironment*{stdhiddentable}
+% {\startTable{\@cellpadding\stdcellpadding}
+% % \@cellspacing\stdcellspacing} %% 2012/08/28
+% \startTR\StartTd}
+ {\stdhiddentablerows\StartTd}
+% {\endTd\endtablerow\endTable}
+ {\endTd\endstdhiddentablerows}
+%% TODO colgroup alignment
+\MakeBlogBeginRun{stdhiddentable}{%
+ \def\startTR{\tablerow{hidden}}% %% 2012/08/23
+ \MakeActiveLet\|\endcell\MakeActiveLet\&\figurespace} %% actcodes 2012/08/28
+% \newcommand*{\stdcellspacing}{6} %% undone 2012/08/29
+%%
+% %% |\begin{stdallrulestable*}| %% 2012/06/05
+% %% doesn't work with Firefox,
+% %% w3schools.com/tags/att_col_align.asp;
+% %% CSS seems to support
+% %% alignment attributes for single cells only.
+% \newenvironment{stdallrulestable*}[1]{%
+% %% TODO what is shared with {stdallrulestable}
+% \startTable{\@cellpadding{\stdcellpadding} \@width{}
+% \@frame@box\ rules="all"}\CLBrk %% \ 2011/10/12
+% \ \STS{colgroup}{\DoWith\ColAlign#1\StopDoing}\CLBrk
+% \ \tbody\CLBrk
+% \TableRow{standard all-rules table}%
+% {\@bgcolor{\stdtableheadcolor}
+% \@style{\stdtableheadstyle}}\CLBrk
+% \indentii\StartTd
+% }
+% {\endstdallrulestable}
+% % {\endtbody\endTable}
+% \newcommand*{\ColAlign}[1]{%
+% \CLBrk\indenti<col \csname @align@#1\endcsname>}
+% \MakeBlogBeginRun{stdallrulestable*}{%
+% \MakeActiveDef\|{\endcell}\MakeActiveDef\&{\figurespace}}
+% %% <- TODO or copy ntok(blogx.bstdallrulestable)
+%
+\newcommand*{\UseTabFigspVert}{% %% 2012/07/22
+ \MakeActiveLet\&\figurespace\MakeActiveLet\|\endcell} %% actcodes 2012/08/28
+%% |\crspan{<cols>}| %% 2012/06/07
+\newcommand*{\crspan}[1]{%
+ \endTd\endtr\starttr\startTd{\@colspan{#1}}}
+%% 2012/06/12:
+%% |\Crspan{<total-cols>}{<cols>}|
+\newcommand*{\Crspan}[2]{%
+ \endTd\endtr\starttr\fillrow{#1}\crspan{#2}}
+%% table cell borders 2012/09/02
+\newcommand*{\cellborderthickness}{1px}
+\newcommand*{\edge@csname}{\csname edge@}
+% \edef\edge@csname{%
+% \noexpand\csname\noexpand\expandafter
+% \noexpand\StripEsc\withcsname\noexpand edge@\endcsname}
+% \show\edge@csname
+%% <- TODO save a lot of HTML/CSS code!
+\def\do#1{\withcsname\def edge@#1\endcsname}
+\do{b}{bottom} \do{l}{left} \do{r}{right} \do{t}{top}
+% \withcsname\show edge@b\endcsname
+\newcommand*{\border@edge}[1]{%
+ border-\edge@csname#1\endcsname-width:\cellborderthickness;
+ border-\edge@csname#1\endcsname-style:solid;}
+\newcommand*{\stylecell}[2]{\startTd{\@style{#1}}#2\endTd}
+\newcommand*{\edgeborderedcell}[1]{\stylecell{\border@edge#1}}
+\newcommand*{\cornerborderedcell}[1]{\stylecell{\border@corner#1}}
+\newcommand*{\border@corner}[2]{\border@edge#1\border@edge#2}
+\newcommand*{\borderedcell}[1]{\csname edges@#1\endcsname}
+\def\do#1{\withcsname\def edges@#1\endcsname}
+\do b{\edgeborderedcell b}
+\do l{\edgeborderedcell l}
+\do r{\edgeborderedcell r}
+\do t{\edgeborderedcell t}
+%% TODO save more tokens?:
+\do{bl}{\cornerborderedcell{bl}}
+\do{br}{\cornerborderedcell{br}}
+\do{lt}{\cornerborderedcell{lt}}
+\do{rt}{\cornerborderedcell{rt}}
+% \withcsname\show edges@rt\endcsname
+\do{}{\simplecell} %% 2012/09/03
+%%
+% %% Another try at `\HVspace' with ... %% 2011/11/10
+%% VERGEBLICH %% 2011/11/12
+% \let\HVSP\HVspace %% 2011/11/11
+% \renewcommand*{\HVspace}[3]{%
+% % \TagSurr{div}{\@width{#2} \@height{#3}}{#1}} %% zu flach
+% \TagSurr{div}{\@width{#2} \@height{#3}}{%
+% \HVSP{#1}{#2}{#3}}} %% 2011/11/11
+% % \SimpleTagSurr{div}{\HVSP{#1}{#2}{#3}}}
+% %% % Seiten zu kurz ...
+
+%% |\cheading{<digit>}{<text>}| as in 'blogdot.sty' %% 2012/05/15
+%% (TODO may crash with 'fifinddo-info'):
+\providecommand*{\cheading}[1]{\CLBrk\TagSurr{h#1}{\@align@c}}
+%% |\begin{centerpar}| %% 2012/05/15
+% \newenvironment*{centerpar}{<p \@align@c>}{</p>}
+%% ... fails with tables in `texmap' ... TODO 2012/09/06
+%% |\imagesource{<graphic-file>}|: %% 2012/09/07
+\newcommand*{\imagesource}[1]{<img src="#1">}
+\newcommand*{\deflag}{\imagesource{flag_de.gif}} %% 2012/09/08
+\newcommand*{\ukflag}{\imagesource{flag_uk.gif}} %% 2012/09/08
+%% 2012/09/26:
+\newcommand*{\wikilangflagref}[3]{%
+ \wikilangref{#1}{#3}{\imagesource{flag_#2.gif}}}
+\newcommand*{\wikideflagref}{\wikilangflagref{de}{de}}
+\newcommand*{\wikienflagref}{\wikilangflagref{en}{uk}}
+%% 2012/10/04:
+\newcommand*{\wikideenflagref}[2]{%
+ \wikideflagref{#1}~\wikienflagref{#2}}
+\newcommand*{\wikidebookref}{\wikilangbooksref{de}}
+\newcommand*{\wikienbookref}{\wikilangbooksref{en}}
+\newcommand*{\wikideenbookref}[2]{%
+ \wikidebookref{#1}{\deflag}~\wikienbookref{#2}{\ukflag}}
+\renewcommand*{\acro}{\SimpleTagSurr{abbr}} %% 2012/09/18
+%%
+\endinput