diff options
author | Karl Berry <karl@freefriends.org> | 2012-11-22 00:51:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-11-22 00:51:36 +0000 |
commit | 7091f02f114d34ab2164074d16106b9e9b4e8bb4 (patch) | |
tree | b7015b4d037854b112819fafcd5679d8d5cc68c9 /Master/texmf-dist/source/support | |
parent | ac225c92964fc1f94322e26a4edc729528882bcb (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')
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}{Mnch}. 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 Jrgen Wolfs +\httpref{openbook.galileocomputing.de/shell_programmierung}{OpenBook} +from \Wikideref{Galileo Press} +(\code{\Wikienref{getopts}}\pardash bad here, however) +and Prof. Jrgen 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 Lck}\\ +% \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\~{ }% %% 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 |