diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/adhocfilelist |
Initial commit
Diffstat (limited to 'support/adhocfilelist')
-rw-r--r-- | support/adhocfilelist/README | 55 | ||||
-rw-r--r-- | support/adhocfilelist/doc/RELEASEs.txt | 49 | ||||
-rw-r--r-- | support/adhocfilelist/doc/SrcFILEs.txt | 22 | ||||
-rw-r--r-- | support/adhocfilelist/doc/adhocfilelist.RLS | 8 | ||||
-rw-r--r-- | support/adhocfilelist/doc/adhocfilelist.htm | 526 | ||||
-rw-r--r-- | support/adhocfilelist/doc/demo/herelist.txt | 1 | ||||
-rw-r--r-- | support/adhocfilelist/docsrc/adhocfilelist.tex | 517 | ||||
-rw-r--r-- | support/adhocfilelist/docsrc/fdatechk.tex | 14 | ||||
-rw-r--r-- | support/adhocfilelist/docsrc/makehtml.tex | 24 | ||||
-rw-r--r-- | support/adhocfilelist/docsrc/srcfiles.tex | 19 | ||||
-rw-r--r-- | support/adhocfilelist/docsrc/texblog.fdf | 663 | ||||
-rwxr-xr-x | support/adhocfilelist/use/adhocfilelist.sh | 212 | ||||
-rwxr-xr-x | support/adhocfilelist/use/herelist.sh | 4 |
13 files changed, 2114 insertions, 0 deletions
diff --git a/support/adhocfilelist/README b/support/adhocfilelist/README new file mode 100644 index 0000000000..5634b892ff --- /dev/null +++ b/support/adhocfilelist/README @@ -0,0 +1,55 @@ + + README for the `adhocfilelist' package + -- \listfiles entries from command line -- + (C) Uwe Lueck 2012/10/17 + +`adhocfilelist.sh' is a shell script to display a list of LaTeX +\Provides... contents on screen. Parameters can be either a list +of comma-separated file names or criteria for the Unix `find' +utility, especially to restrict the list to LaTeX source files +modified <digits> days ago, such as "today". Command line options +provide interfaces to the find utility and to packages `myfilist', +`longnamefilelist', `nicefilist', and `filedate' for accessing and +aligning those file informations and for adding a test of "date +consistency" (even with XeTeX where \pdffilemoddate is unavailable). + +REQUIRED: This works on Unix-like systems only, and probably the + GNU version of `find' is required. The LaTeX bundle `fileinfo' + must be installed, and full functionality requires the LaTeX + packages `longnamefilelist', `nicefilelist', and `filedate'. + +RELATED PACKAGES: Apart from what has been mentioned above, + `latexfileversion', `typeoutfileinfo', and `ltxfileinfo' are + related in that they are somewhat extended to a + "multiplicity" of files whose infos are displayed. + +DOCUMENTATION: The manual `adhocfilelist.htm' can be read by a + web browser, and the command line option `-h' provides an + abridged version of it. + +KEYWORDs: Package management, document versions. + +LICENSE: The script file `adhocfilelist.sh' and the documentation + files `adhocfilelist.htm' and `adhocfilelist.tex' can be + redistributed and/or modified under the terms of the LaTeX + Project Public License; either version 1.3c of the License, + or any later version, see + + http://www.latex-project.org/lppl.txt + + There is NO WARRANTY, indeed this still is somewhat experimental. + +The `adhocfilelist' package is author-maintained in the sense of +the license. + +The latest public version of the package is available at + + http://mirror.ctan.org/support/adhocfilelist/ + +A TDS version of the package is available as + + http://mirror.ctan.org/install/support/adhocfilelist.tds.zip + +Please report bugs, problems, and suggestions via + + http://www.contact-ednotes.sty.de.vu diff --git a/support/adhocfilelist/doc/RELEASEs.txt b/support/adhocfilelist/doc/RELEASEs.txt new file mode 100644 index 0000000000..fe81d31ac9 --- /dev/null +++ b/support/adhocfilelist/doc/RELEASEs.txt @@ -0,0 +1,49 @@ +FIRST UPLOAD was v0.6 as of 2012-10-14. + +UPLOAD of v0.7 as of 2012-10-17 (2012-10-18): + + * New option -c adds test of "date consistency" with the + `filedate' package and may thus be a way to check + "date consistency" with XeLaTeX (where \pdffilemoddate + is not available ... may be silly ...). + * Indeed new option -x uses `xelatex' rather than `latex' + (see manual `adhocfilelist.htm' for discussion of + possible silliness -- somewhat missing in `filedate' + discussion). + * Some documentation mistakes have been corrected. + * srcfiles.tex checks date consistency for scripts and + documentation and lists what is used indeed + (but cf. makehtml.log from recent makehtml.tex). + * `adhocfilelist.RLS' provides a release summary with + `typeoutfileinfo', appearing in SrcFILEs.txt too. + +v0.8 should allow -c with an explicit list of filenames ... + +UPLOAD r0.3 (2012-10-19): + + * added present RELEASE.txt (started for v0.7) + * corrected adhocfilelist.tds.zip + * added `filedate' checks in makehtml.tex, additionally + to those in srcfiles.tex + * \listfiles in makehtml.tex (HTML driver) more careful, + using `nicefilelist', for comparison with SrcFILEs.txt + +UPLOAD r0.4 (2012-11-20): + + * deprecated -follow replaced by -L + * `adhocfilelist.RLS' provides a release summary with + `typeoutfileinfo', appearing in SrcFILEs.txt too. + [was announced earlier, but not carried out + -- may worry Karl] + * using `fdatechk.tex' + * TDS: texmf/source/support/adhocfilelist, cf. `texdef' + +UPLOAD r0.4a (2012-11-22): + + * exemplifies \ReadShInfos from `readprov.sty' v0.5 + in `makehtml.tex' and `srcfiles.tex' + * no change in shell script files + +UPLOAD r0.4c (2013-01-04): + + * regenerated documentation with `morehype' r.81 diff --git a/support/adhocfilelist/doc/SrcFILEs.txt b/support/adhocfilelist/doc/SrcFILEs.txt new file mode 100644 index 0000000000..3fd2f304c7 --- /dev/null +++ b/support/adhocfilelist/doc/SrcFILEs.txt @@ -0,0 +1,22 @@ + + *File List* +adhocfilelist.sh 2012/11/19 v0.71 command line -> \listfiles (UL) + herelist.sh 2012/10/15 -- customize adhocfilelist +adhocfilelist.tex 2012/11/19 -- documenting adhocfilelist (UL) + makehtml.tex 2013/01/04 -- HTML driver + fdatechk.tex 2012/12/30 -- `filedate' checks + srcfiles.tex 2012/12/21 -- file infos -> SrcFILEs.txt + ----RELEASE.--- -- -- -- -- ---- +adhocfilelist.RLS 2013/01/04 r0.4c doc. regen. w/ morehype r0.81 +HTML_packages.--- -- -- -- -- ---- + blog.sty 2013/01/04 v0.81 simple fast HTML (UL) + blogexec.sty 2012/12/20 v0.21 assignments with blog.sty (UL) + domore.sty 2012/11/19 v0.3 dowith extended (UL) + fifinddo.sty 2012/11/17 v0.61 filtering TeX(t) files by TeX (UL) + texlinks.sty 2012/12/31 v0.81 TeX-related links (UL) + texblog.fdf 2013/01/04 -- extra blog settings + *********** + + List made at 2013/01/04, 11:49 + from script file srcfiles.tex + diff --git a/support/adhocfilelist/doc/adhocfilelist.RLS b/support/adhocfilelist/doc/adhocfilelist.RLS new file mode 100644 index 0000000000..ad0e97665c --- /dev/null +++ b/support/adhocfilelist/doc/adhocfilelist.RLS @@ -0,0 +1,8 @@ +\ProvidesFile{adhocfilelist.RLS} %% RELEASE INFO + [2013/01/04 r0.4c doc. regen. w/ morehype r0.81] + [2012/12/21 r0.4b tug.ctan.org/author (no upload)] + [2012/11/22 r0.4a using \string\ReadShInfos\space + from `readprov' v0.5] + [2012/11/20 r0.4 v0.71: -follow -> -L; fdatechk.tex, .RLS] + [2012/10/18 r0.3 RELEASE.txt for v0.7 (-c, -x)] + [2012/10/17 r0.2 v0.7 -c, -x] diff --git a/support/adhocfilelist/doc/adhocfilelist.htm b/support/adhocfilelist/doc/adhocfilelist.htm new file mode 100644 index 0000000000..28339e62b0 --- /dev/null +++ b/support/adhocfilelist/doc/adhocfilelist.htm @@ -0,0 +1,526 @@ +<!DOCTYPE html> +<!-- generated from + + adhocfilelist.tex, 2012/11/19 documenting adhocfilelist (UL), + + with blog.sty, 2013-01-04 --> +<html><head> <meta http-equiv="content-type" content="text/html; ISO-8859-1"> + <meta name="robots" content="index,follow,noarchive"> + <title>List LaTeX file infos according to command line</title> + +</head><body> +<a name="top-of-page"></a> + + + + +<h1><code>adhocfilelist</code> — +<table width="" height="6" border="0" cellpadding="0" cellspacing="0"><tbody> + <!-- HVspace --> + <tr valign="top"><td></td> </tr> + +</tbody></table> + Listing LaTeX Source File Infos<br> According to Command Line</h1> + +<p> +<small> +[ <a href="#abstract">abstract</a> | +<a href="#over">overview</a> | +<a href="#required">requirements</a> | +<a href="#install">installing</a> | +<a href="#related">related</a> | +<a href="#back">background</a> | +<a href="#custom">customize</a> | +<a href="#idea">idea/thanks</a> ]  +[ <i><a href="adhocfilelist.htm">reload</a></i> ] + +</small> + +<h2><a name="abstract"></a>Abstract<a href="#abstract">.</a></h2> +<span style="font-family:sans-serif">adhocfilelist.sh</span> is a shell script with command line options +and parameters that displays ⟨<i>info</i>⟩ for files ⟨<i>file</i>⟩ +on screen that (i) are indicated on the command line and +(ii) contain <code>\ProvidesFile</code><code>{</code><code>⟨<i>file</i>⟩</code><code>}</code><code>[</code><code>⟨<i>info</i>⟩</code><code>]</code>, +<code>\ProvidesPackage</code><code>{</code><code>⟨<i>file</i>⟩</code><code>}</code><code>[</code><code>⟨<i>info</i>⟩</code><code>]</code>, +or <code>\ProvidesClass</code><code>{</code><code>⟨<i>file</i>⟩</code><code>}</code><code>[</code><code>⟨<i>info</i>⟩</code><code>]</code>. +There is one line for each file, formatted about as with LaTeX’s +<code>\listfiles</code>. This formatting can be varied, and the output may +additionally be saved in a plain text file. The files ⟨<i>file</i>⟩ +are either (a) listed explicitly, separated by commas, or +(b) they are gathered by the Unix <span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span> utility. +For the latter, <span style="font-family:sans-serif">adhocfilelist</span> 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 <a href="http://www.ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a> “consistency checks” +even with <a href="http://www.ctan.org/pkg/xetex" target="_blank"><span style="font-family:sans-serif">XeTeX</span></a> (where <code>\pdffilemoddate</code> +is unavailable). +<p> +The package may thus be considered an extension of the +<a href="http://www.ctan.org/pkg/latexfileversion" target="_blank"><span style="font-family:sans-serif">latexfileversion</span></a> (Harald <a href="http://www.ctan.org/author/harders" target="_blank">Harders</a>) +and <a href="http://www.ctan.org/pkg/typeoutfileinfo" target="_blank"><span style="font-family:sans-serif">typeoutfileinfo</span></a> packages +that display ⟨<i>info</i>⟩ for a <em>single</em> file ⟨<i>file</i>⟩. +Moreover, it is a somewhat simplified interface to the packages +<a href="http://www.ctan.org/pkg/myfilist" target="_blank"><span style="font-family:sans-serif">myfilist</span></a>, <a href="http://www.ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a>, +<a href="http://www.ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a>, and <a href="http://www.ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a>. + +<h2><a name="over"></a>Overview of command line contents<a href="#over">.</a></h2> +The general structure of a command line using <span style="font-family:sans-serif">adhocfilelist</span> is +<blockquote> +<a href="#call">⟨<i>call</i>⟩</a> +<a href="#opts">⟨<i>options</i>⟩</a> +<a href="#files">⟨<i>files</i>⟩</a> + +</blockquote> +The three parts are as follows: +<dl> + <dt><strong>⟨<i>call</i>⟩<a name="call"></a></strong><dd> +This is either +<ul> + </li> + <li>⟨<i>path</i>⟩<span style="font-family:sans-serif">adhocfilelist.sh</span> +where ⟨<i>path</i>⟩ is “./” or something, +depending on where you place the file <span style="font-family:sans-serif">adhocfilelist.sh</span>, +or on your use of <a href="http://en.wikipedia.org/wiki/symbolic link" target="_blank">symbolic link</a>s, +the environment variable <code><a href="http://en.wikipedia.org/wiki/PATH (variable)" target="_blank">PATH</a></code>, +or + </li> + <li>an <code><a href="http://en.wikipedia.org/wiki/alias (command)" target="_blank">alias</a></code> for +⟨<i>path</i>⟩<span style="font-family:sans-serif">adhocfilelist.sh</span>. +</li> +</ul> + <dt><strong>⟨<i>options</i>⟩<a name="opts"></a></strong><dd> + +Some options “switch into <strong><span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span> mode</strong>”, +affecting the interpretation of <strong>⟨<i>files</i>⟩</strong>, marked by “<strong>(f)</strong>”. +Their description may be inaccurate here, +understanding the details may require some knowledge of <span style="font-family:sans-serif">find</span> +(see “<a href="#back">background</a>” below). +Some options have one parameter, some have none. +<dl> + <dt><strong><code>-0</code></strong><dd> <strong>(f)</strong> +List files modified “<strong>today</strong>” only (unless …) + <dt><strong><code>-a</code> <code>⟨<i>integer</i>⟩</code></strong><dd> <strong>(f)</strong> +List files modified ⟨<i>integer</i>⟩ days <strong>ago</strong> only +(unless ⟨<i>integer</i>⟩ starts with “<code>-</code>” or “<code>+</code>” …) + <dt><strong><code>-c</code></strong><dd> <strong>(f)</strong> +Compare date according to <code>\Provides...</code> content with modification +date using <a href="http://www.ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a> additionally. +<p> +<span style="color:red"><acronym>TODO</acronym></span>: The restriction to <span style="font-family:sans-serif">find</span> (v0.7) is temporary, removing it is +straightforward, but I may have to postpone this for a while. + <dt><strong><code>-f</code></strong><dd> <strong>(f)</strong> +Add ⟨<i>files</i>⟩ to other <strong><span style="font-family:sans-serif">find</span></strong> criteria, +<strong>replacing</strong> internal default settings +(as opposed to <code>-g</code>). +For allowing certain file name extensions such as <code>.tex</code>, +the star must be escaped and ⟨<i>files</i>⟩ best +has outer single quotes, such as +<blockquote> + +<code>'-L ( -name <code>\*</code>.tex -o -name <code>\*</code>.sty )'</code> + + +</blockquote> + <dt><strong><code>-F</code> <code>⟨<i>find-file</i>⟩</code></strong><dd> <strong>(f)</strong> +Add content of the <strong>file</strong> ⟨<i>find-file</i>⟩ to other <strong><span style="font-family:sans-serif">find</span></strong> criteria. +As compared with <code>-f</code>, stars must be escaped, +while other quoting seems not to be needed in ⟨<i>files</i>⟩. + <dt><strong><code>-g</code></strong><dd> <strong>(f)</strong> +Add ⟨<i>files</i>⟩ to other <strong><span style="font-family:sans-serif">find</span></strong> criteria, +among which some hopefully “<strong>generally useful</strong>” +are added from within <span style="font-family:sans-serif">adhocfilelist.sh</span>. +As to quoting/escaping in ⟨<i>files</i>⟩, +this is as with <code>-f</code>. + <dt><strong><code>-h</code></strong><dd> +Display an overview (brief version of present one, “<strong>help</strong>”), +and ignore everything else of the command line. + <dt><strong><code>-i</code> <code>⟨<i>tex-file</i>⟩</code></strong><dd> +Prepend (“<strong>input</strong>”) contents of the file ⟨<i>tex-file</i>⟩ +to the temporary <code>.tex</code> file that <span style="font-family:sans-serif">adhocfilelist.sh</span> +generates internally — to get more individual settings +than <span style="font-family:sans-serif">adhocfilelist.sh</span>’s internal defaults +(which are <strong>replaced</strong> by the content of ⟨<i>tex-file</i>⟩) +and than the options <code>-l</code> and <code>-n</code> provide. + <dt><strong><code>-l</code> <code>⟨<i>integer</i>⟩</code></strong><dd> +Format list by the <strong><a href="http://www.ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a></strong> package +where ⟨<i>integer</i>⟩ is the maximum length of base +<a href="http://en.wikipedia.org/wiki/filename" target="_blank">filename</a>s in the list (about as …) + <dt><strong><code>-n</code> <code>⟨<i>filename</i>⟩</code></strong><dd> +Format list by the <strong><a href="http://www.ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a></strong> package +where ⟨<i>filename</i>⟩ is the longest base <a href="http://en.wikipedia.org/wiki/filename" target="_blank">filename</a> (or a template). + +If base filenames do <em>not</em> have more than eight characters, +you can use “<strong><code>-n .</code></strong>” as a shorthand for +“<code>-n</code> <code>⟨<i>filename</i>⟩</code>” with a ⟨<i>filename</i>⟩ of eight characters. + <dt><strong><code>-o</code> <code>⟨<i>txt-file</i>⟩</code></strong><dd> +Save the displayed file info list (“<strong>output</strong>”) +as plain text file ⟨<i>txt-file</i>⟩ also. + <dt><strong><code>-x</code></strong><dd> +Use <code>xelatex</code> rather than <code>latex</code> (v0.7). — The +idea for this has been that the script should provide +“date consistency” checks (<strong>option <code>-c</code></strong>) +“even with <a href="http://www.ctan.org/pkg/xetex" target="_blank"><span style="font-family:sans-serif">XeTeX</span></a> where <code>\pdffilemoddate</code> is not available.” However, the script has used <code>latex</code> +before v0.7 which will run <a href="http://www.ctan.org/pkg/pdftex" target="_blank"><span style="font-family:sans-serif">pdfTeX</span></a> usually, +even when the user prefers <em>typesetting</em> with XeTeX, +and anyway it does not rely on <code>\pdffilemoddate</code>. +The real problem with <a href="http://www.ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a> and XeTeX is that +a reliable consistency check does not work +<em>while typesetting with XeTeX</em>. But <span style="font-family:sans-serif">filedate</span> can be +used for “TeX scripts” too, i.e., <em>without</em> typesetting, +and that is what the present package does. +The present package does <em>not</em> provide consistency checks +<em>while typesetting with XeTeX</em>. +It should not be make a difference whether the “TeX script” +that <span style="font-family:sans-serif">adhocfilelist</span> generates is run with XeTeX or with pdfTeX. +So the only “special XeTeX support” from here probably +will be the present <strong><code>-x</code></strong> in case <code>latex</code> +<em>does not work</em>, maybe because pdfTeX or anything implementing +the <code>latex</code> command is missing on the user’s (unusual) installation. + +</dl> +Options can <em>not</em> be “contracted” like “<code>-0f</code>” +(too difficult with processing [parts of] <span style="font-family:sans-serif">find</span> +expressions — <code>-name</code> …). + <dt><strong>⟨<i>files</i>⟩<a name="files"></a></strong><dd> +Whenever an option “switches into <span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span> mode”, +⟨<i>files</i>⟩ is interpreted as part of a command line for the +<span style="font-family:sans-serif">find</span> utility. Otherwise, ⟨<i>files</i>⟩ is expected to be a +comma-separated list of filenames (for LaTeX source files), +whose extension <code>.tex</code> (if so) may be omitted — unless <code>-h</code> … + +</dl> + +<h2><a name="required"></a>Requirements<a href="#required">.</a></h2> +<dl> + <dt><strong>System</strong><dd> +The package will work on a <a href="http://en.wikipedia.org/wiki/Unix-like" target="_blank">Unix-like</a> 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 +<a href="http://contact-ednotes.sty.de.vu" target="_blank"><code>contact-ednotes.sty.de.vu</code></a>. +<p> +Actually the package was developed with the <a href="http://en.wikipedia.org/wiki/GNU bash" target="_blank">GNU bash</a> +shell and the +<a href="http://en.wikipedia.org/wiki/GNU Find Utilities" target="_blank"><abbr>GNU</abbr> <span style="font-family:sans-serif">find</span> utility</a> on +<a href="http://en.wikipedia.org/wiki/Ubuntu (operating system)" target="_blank">Ubuntu</a> 10.04. +<p> +My impression is in fact +(looking at <a href="http://en.wikipedia.org/wiki/The Open Group" target="_blank">The Open Group</a>’s +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html" target="_blank">man page</a> +for <span style="font-family:sans-serif">find</span>) +that in order to use the <strong><span style="font-family:sans-serif">find</span></strong> options +<strong><code>-0</code></strong>, <strong><code>-a</code></strong>, <strong><code>-f</code></strong>, <strong><code>-F</code></strong>, +and <strong><code>-g</code></strong>, the <strong><abbr>GNU</abbr></strong> version of <span style="font-family:sans-serif">find</span> is required, +because action <strong>-printf</strong> is used and essential (difficult without). + <dt><strong>LaTeX</strong><dd> +The package requires that the <a href="http://www.ctan.org/pkg/fileinfo" target="_blank"><span style="font-family:sans-serif">fileinfo</span></a> bundle is installed. +In order to use the <strong><code>-l</code></strong> option, +<a href="http://www.ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a> must be installed additionally. +In order to use the <strong><code>-n</code></strong> option, +<a href="http://www.ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a> must be installed additionally. +In order to use the <strong><code>-c</code></strong> option, +<a href="http://www.ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a> must be installed additionally. + +</dl> + +<h2><a name="install"></a>Installing<a href="#install">.</a></h2> +No more advice than implied by the section on “<a href="#call">⟨<i>call</i>⟩</a>” +can be given right now. + +<h2><a name="related"></a>Related packages<a href="#related">.</a></h2> +The file +<a href="http://mirror.ctan.org/info/latexfileinfo-pkgs/latexfileinfo_pkgs.htm" target="_blank"><span style="font-family:sans-serif">latexfileinfo_pkgs.htm</span></a> +describes related packages available on + +<abbr><a href="http://en.wikipedia.org/wiki/CTAN" target="_blank">CTAN</a></abbr> +in some detail. +The most obvious ones have been mentioned above already. + +<p> +The <a href="#back">next section</a> indicates details that may be +improve understanding the LaTeX-related command line options +<code>-i</code>, <code>-l</code>, and <code>-n</code>. + +<h2><a name="back"></a>Background<a href="#back">.</a></h2> +For understanding the options <strong><code>-0</code></strong>, <strong><code>-a</code></strong>, +<strong><code>-f</code></strong>, <strong><code>-F</code></strong>, and <strong><code>-g</code></strong>, +knowing something about the <span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span> utility +and the present <a href="#back-find">interface</a> to it may be helpful. +The options <strong><code>-i</code></strong>, <strong><code>-l</code></strong>, <strong><code>-n</code></strong>, +and <strong><code>-o</code></strong> refer to the <a href="http://www.ctan.org/pkg/myfilist" target="_blank"><span style="font-family:sans-serif">myfilist</span></a> package +and its enhancements by the packages <a href="http://www.ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a> +and <a href="http://www.ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a>, and it may be helpful to know +what a “<a href="#my-script"><span style="font-family:sans-serif">myfilist</span> script</a>” is. +<dl> + <dt><strong><span style="font-family:sans-serif">find</span><a name="back-find"></a></strong><dd> +We are describing the <strong>interface</strong> to <span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span>. +To learn about the contents of a <span style="font-family:sans-serif">find</span> command line, +the <a href="http://en.wikipedia.org/wiki/find" target="_blank">Wikipedia article</a> may be a good start, +next enter “<code>man find</code>” in the terminal, finally see the +<a href="http://gnu.org/software/findutils/manual/find.html" target="_blank"><abbr>GNU</abbr> manual</a>. +<p> +<span style="font-family:sans-serif">adhocfilelist.sh</span> forms the following <span style="font-family:sans-serif">find</span> command line +in order to get a comma-separated list of files: +<blockquote> +<code>find</code> +<a href="#back-f-prefix"><code>⟨<i>prefix</i>⟩</code></a> +<a href="#back-f-files"><code>⟨<i>files</i>⟩</code></a> +<a href="#back-f-day"><code>⟨<i>day</i>⟩</code></a> +<code>-printf ,%f</code> + +</blockquote> +These parts are as follows: +<dl> + <dt><strong>⟨<i>prefix</i>⟩<a name="back-f-prefix"></a></strong><dd> +is +<blockquote> +<code>-L -maxdepth 1 ( -name <code>\*</code>.tex -o </code><code>⟨<i>more</i>⟩</code><code> )</code> + + +</blockquote> +where ⟨<i>more</i>⟩ in addition to files with extension <code>.tex</code> allows +those with extensions <code>.sty</code>, <code>.cfg</code>, <code>.cls</code>, <code>.dtx</code>, +<code>.def</code>, and <code>.fd</code> — <strong>unless</strong> with <strong>options</strong> +<dl> + <dt><strong><code>-f</code></strong><dd> +where ⟨<i>prefix</i>⟩ is empty + <dt><strong><code>-F</code> <code>⟨<i>find-file</i>⟩</code></strong><dd> +where ⟨<i>prefix</i>⟩ is the content of the file ⟨<i>find-file</i>⟩. + +</dl> +Option <strong><code>-g</code></strong> is not required with options +<strong><code>-0</code></strong> and <strong>-a</strong> that switch into “<strong><span style="font-family:sans-serif">find</span> mode</strong>” +too without deleting ⟨<i>prefix</i>⟩, it is just a way to switch +into <span style="font-family:sans-serif">find</span> mode otherwise without deleting ⟨<i>prefix</i>⟩. + <dt><strong>⟨<i>files</i>⟩<a name="back-f-files"></a></strong><dd> +is as in the <a href="#files">overview</a>. + <dt><strong>⟨<i>day</i>⟩<a name="back-f-day"></a></strong><dd> +is empty, unless <strong><code>-0</code></strong> sets it to +<blockquote> +<code>-daystart -mtime 0</code> + +</blockquote> +or <strong><code>-a</code> <code>⟨<i>integer</i>⟩</code></strong> sets it to +<blockquote> +<code>-daystart -mtime </code><code>⟨<i>integer</i>⟩</code> + +</blockquote> +It follows that +<ul> + </li> + <li><strong><code>-0</code></strong> has the same effect as +(is just a shorthand for) <strong><code>-a 0</code></strong> + </li> + <li>if ⟨<i>integer</i>⟩ is “<code>-⟨<i>digits</i>⟩</code>”, +files modified <em>since</em> ⟨<i>digits</i>⟩ days ago +are allowed +</li> +</ul> +—cf. <abbr>GNU</abbr> documentation on +<a href="http://gnu.org/software/findutils/manual/html_node/find_html/Age-Ranges.html" target="_blank">age ranges.</a> +<p> +A <strong>tricky</strong> little thing here is that ⟨<i>day</i>⟩ +may be <em>expected</em> to be a <em>restriction</em>, +an <em>additional</em> criterion that a LaTeX source file +must meet to be listed. However, if ⟨<i>files</i>⟩ ends on +<strong><code>-o</code></strong> for “or”, ⟨<i>day</i>⟩ becomes an +“additional possibility” for being listed … +<p> +<span style="color:red"><acronym>TODO</acronym></span>: This is different with <strong>option <code>-c</code></strong> +(v0.7) whose functionality also may change soon. + +</dl> + <dt><strong><span style="font-family:sans-serif">myfilist</span><a name="my-script"></a></strong><dd> +The LaTeX package <a href="http://www.ctan.org/pkg/myfilist" target="_blank"><span style="font-family:sans-serif">myfilist</span></a> provides some commands +to control the input of LaTeX’s <code>\listfiles</code> 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 +<blockquote> +<code>\ReadFileInfos</code><code>{</code><code>⟨<i>comma-separated-list-of-filenames</i>⟩</code><code>}</code> + +</blockquote> +Essentially this is the command which the list of filenames that +was ⟨<i>files</i>⟩ or that is produced by <span style="font-family:sans-serif">find</span> is passed to. +The list is generated by running a <code>.tex</code> file that contains +these commands. Such a file has been called a +“<strong><span style="font-family:sans-serif">myfilist</span> script</strong>” here. +More precisely, such a script is (mostly) structured as follows: +<blockquote> +<a href="#back-load-set">⟨<i>loading-settings</i>⟩</a><br> +<a href="#back-coll-infos">⟨<i>collecting-infos</i>⟩</a><br> +<a href="#back-write">⟨<i>writing-to-screen+file</i>⟩</a> + +</blockquote> +These parts are as follows: +<dl> + <dt><strong>⟨<i>loading-settings</i>⟩<a name="back-load-set"></a></strong><dd> +at least issues <code>\RequirePackage</code><code>{</code><code>⟨<i>myfilist</i>⟩</code><code>}</code>. +By default, <span style="font-family:sans-serif">adhocfilelist.sh</span> produces (roughly) +<blockquote> +<code>\RequirePackage</code><code>{myfilist}</code><code>\EmptyFileList</code> +<code>⟨<i>adhoc-adjust</i>⟩</code> + +</blockquote> +for ⟨<i>loading-settings</i>⟩ where ⟨<i>adhoc-adjust</i>⟩ +adds technical details needed for use with <span style="font-family:sans-serif">adhocfilelist</span>. +(Final warnings are suppressed by a command <code>\NoBottomLines</code>, +this might be changed in the future.) +<p> +It has been a disadvantage of LaTeX’s <code>\listfiles</code> functionality +that the resulting plain text file list looked good with base filenames +only that had up to eight characters. <a href="http://www.ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a> +made up for this disadvantage, and <a href="http://www.ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a> +has additional refinements of aligning the list, proposed by +Martin <a href="http://www.ctan.org/author/muench-hm" target="_blank">Münch</a>. To use them with +<span style="font-family:sans-serif">myfilist</span>, they are loaded in ⟨<i>loading-settings</i>⟩ +as well, and additional settings for column widths may be added there too. +This is what <strong>options</strong> <strong><code>-l</code></strong> and <strong><code>-n</code></strong> do. +Besides in their own <abbr>PDF</abbr> documentation (that you find by following the +links), the packages are also briefly described in that file +<a href="http://mirror.ctan.org/info/latexfileinfo-pkgs/latexfileinfo_pkgs.htm" target="_blank"><span style="font-family:sans-serif">latexfileinfo_pkgs.htm</span></a> +to be read by a web browser. +<p> +However, more refined settings may be needed that cannot +be controlled by <span style="font-family:sans-serif">adhocfilelist</span>’s interface so far. +The <strong>option</strong> <strong><code>-i</code> <code>⟨<i>tex-file</i>⟩</code></strong> +has the effect that ⟨<i>loading-settings</i>⟩ becomes +<blockquote> +⟨<i>tex-file-content</i>⟩ +⟨<i>adhoc-adjust</i>⟩ + +</blockquote> +where ⟨<i>tex-file-content</i>⟩ is the content of the +(<code>.tex</code> file) ⟨<i>tex-file</i>⟩ (before <code>\endinput</code>). + <dt><strong>⟨<i>collecting-infos</i>⟩<a name="back-coll-infos"></a></strong><dd> +essentially is that +<blockquote> +<code>\ReadFileInfos</code><code>{</code><code>⟨<i>comma-separated-list-of-filenames</i>⟩</code><code>}</code> + +</blockquote> +mentioned above. + <dt><strong>⟨<i>writing-to-screen+file</i>⟩<a name="back-write"></a></strong><dd> +essentially is <code>\ListFileInfos</code> or +<blockquote> +<code>\ListFileInfos</code><code>[</code><code>⟨<i>txt-file</i>⟩</code><code>]</code> + +</blockquote> +With <span style="font-family:sans-serif">adhocfilelist</span>, that “<code>[</code><code>⟨<i>txt-file</i>⟩</code><code>]</code>” +is inserted on <strong>option</strong> <strong><code>-o</code> <code>⟨<i>txt-file</i>⟩</code></strong>. + +</dl> +However, <span style="font-family:sans-serif">myfilist</span> has been extended at the occasion +of preparing <span style="font-family:sans-serif">adhocfilelist</span> so that the sections +⟨<i>collecting-infos</i>⟩ and ⟨<i>writing-to-screen+file</i>⟩ +may “collapse” into a single command starting with +<code>\ReadListFileInfos</code>. + +</dl> + +<h2><a name="custom"></a>General customization<a href="#custom">.</a></h2> +In general, options <strong><code>-F</code> <code>⟨<i>find-file</i>⟩</code></strong> and +<strong><code>-i</code> <code>⟨<i>tex-file</i>⟩</code></strong> will be needed +to deal with certain directories ⟨<i>dir</i>⟩. +Two ways come to my mind how to simplify this situation. +<ol> + </li> + <li>⟨<i>find-file</i>⟩ and ⟨<i>tex-file</i>⟩ may be +in the same directory ⟨<i>dir</i>⟩, and the latter may es well +contain an executable (<code><a href="http://en.wikipedia.org/wiki/chmod" target="_blank">chmod</a></code>) +script file ⟨<i>script-file</i>⟩ +with the following content: +<blockquote> +<a href="#call"><code>⟨<i>call</i>⟩</code></a> +<code>-F </code><code>⟨<i>find-file</i>⟩</code> +<code>-i </code><code>⟨<i>tex-file</i>⟩</code> +<code>⟨<i>more</i>⟩</code> +<code>$@</code> + +</blockquote> +Here ⟨<i>call</i>⟩ is as in the <a href="#call">overview</a>, +and ⟨<i>more</i>⟩ may be empty or something else that you +want to have fixed, such as <strong><code>-o</code> <code>⟨<i>txt-file</i>⟩</code></strong>. +<p> +<strong>Then</strong> you can <strong>vary</strong> additional options/parameters +⟨<i>add</i>⟩ by +<blockquote> +<code>./</code><code>⟨<i>script-file</i>⟩</code> <code>⟨<i>add</i>⟩</code> + +</blockquote> + </li> + <li>If you have <strong>several directories</strong> ⟨<i>dir</i>⟩ as before +of a certain “type”, +such that they can <strong>share</strong> the settings in +⟨<i>find-file</i>⟩ and ⟨<i>tex-file</i>⟩, +you can place the latter in some separate (“central”) +directory ⟨<i>center</i>⟩ and define an <code><a href="http://en.wikipedia.org/wiki/alias" target="_blank">alias</a></code> +as follows: +<blockquote> + +<code>alias </code><code>⟨<i>name</i>⟩</code><code>='</code><a href="#call"><code>⟨<i>call</i>⟩</code></a> +<code>-F </code><code>⟨<i>center</i>⟩</code><code>/</code><code>⟨<i>find-file</i>⟩</code> +<code>-i </code><code>⟨<i>center</i>⟩</code><code>/</code><code>⟨<i>tex-file</i>⟩</code> +<code>⟨<i>more</i>⟩</code><code>'</code> + +</blockquote> +(Note that there is no “<code>$@</code>”. +“<code>⟨<i>dir</i>⟩</code><code>/</code><code>⟨<i>tex-file</i>⟩</code>” could be replaced by +mere “<code>⟨<i>tex-file</i>⟩</code>” if that ⟨<i>tex-file</i>⟩ +is installed like a TeX package.) +<p> +<strong>Then</strong> you can <strong>vary</strong> additional options/parameters +⟨<i>add</i>⟩ by +<blockquote> +<code>⟨<i>name</i>⟩</code> <code>⟨<i>add</i>⟩</code> + +</blockquote> +</li> +</ol> + +<h2><a name="idea"></a>The idea/motivation; acknowledgements<a href="#idea">.</a></h2> +One day (most probably 2012-09-27), +I wanted to check the <code>\ProvideFile</code> contents of <em>two</em> +files I knew I had edited that day. +On 2012-09-26, I had thought about simplifying <a href="http://www.ctan.org/pkg/typeoutfileinfo" target="_blank"><span style="font-family:sans-serif">typeoutfileinfo</span></a> +by using a single command line without any piping. +I realized that LaTeX s <code>\typeout</code> could be replaced by +<code>\ReadFileInfos</code> from <a href="http://www.ctan.org/pkg/myfilist" target="_blank"><span style="font-family:sans-serif">myfilist</span></a>. +Therefore “<a href="http://en.wikipedia.org/wiki/ad hoc" target="_blank">ad hoc</a>”. +<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>$(find ...)</code>. 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 <span style="font-family:sans-serif">find</span>. +<p> +Only then I learnt real shell programming by googling, kind of chance, +and most helpfully from Chapter 3 of Jürgen Wolfs +<a href="http://openbook.galileocomputing.de/shell_programmierung" target="_blank">OpenBook</a> +from <a href="http://de.wikipedia.org/wiki/Galileo Press" target="_blank">Galileo Press</a> +(<code><a href="http://en.wikipedia.org/wiki/getopts" target="_blank">getopts</a></code> — bad here, however) +and Prof. Jürgen Plates +<a href="http://netzmafia.de/skripten/unix/unix8.html" target="_blank">lecture notes</a> +(“Optionen ermitteln” — “by hand”). +<p> +Then quoting/escaping for filename extensions with <span style="font-family:sans-serif"><a href="http://en.wikipedia.org/wiki/find" target="_blank">find</a></span> became difficult … +Quotation marks and “positional parameters” with the shell are very +difficult/<strong>painful</strong> — TeX is more straightforward … +On the other hand it is nice that the entire command line with <em>all</em> the +“parameters” is gobbled. + +<hr> +<p align="right"><i>Last revised 2013-01-04 © <a href="http://www.webdesign-bu.de/uwe_lueck/contact.html" target="_blank">Uwe Lück</a><br> (using <a href="http://www.ctan.org/pkg/morehype" target="_blank"><span style="font-family:sans-serif">blog.sty</span></a>)<br> License: <a href="http://www.latex-project.org/lppl/" target="_blank">LPPL 1.3c</a> or later, author-maintained.</i></p> +<p align="right"><a href="#top-of-page">[<i>→ top of page</i> ]</a></p> + +<table width="" height="240" border="0" cellpadding="0" cellspacing="0"><tbody> + <!-- HVspace --> + <tr valign="top"><td></td> </tr> + +</tbody></table> + +</body></html> + diff --git a/support/adhocfilelist/doc/demo/herelist.txt b/support/adhocfilelist/doc/demo/herelist.txt new file mode 100644 index 0000000000..ace621c03f --- /dev/null +++ b/support/adhocfilelist/doc/demo/herelist.txt @@ -0,0 +1 @@ +-follow -daystart -maxdepth 1 ( -name \*.tex -o -name \*.sty -o -name \*.cfg -o -name \*.fdf ) ! -name jobname.tex ! -name hallo\*.tex ! -name \*gullet.tex diff --git a/support/adhocfilelist/docsrc/adhocfilelist.tex b/support/adhocfilelist/docsrc/adhocfilelist.tex new file mode 100644 index 0000000000..4cee4cc8f8 --- /dev/null +++ b/support/adhocfilelist/docsrc/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/support/adhocfilelist/docsrc/fdatechk.tex b/support/adhocfilelist/docsrc/fdatechk.tex new file mode 100644 index 0000000000..eee9ebecee --- /dev/null +++ b/support/adhocfilelist/docsrc/fdatechk.tex @@ -0,0 +1,14 @@ +\ProvidesFile{fdatechk.tex}[2012/12/30 `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}} +\DatesDiffWarnings %% 2012/12/30 +\CheckDateOfToday{adhocfilelist.RLS} + diff --git a/support/adhocfilelist/docsrc/makehtml.tex b/support/adhocfilelist/docsrc/makehtml.tex new file mode 100644 index 0000000000..1c1101aaf0 --- /dev/null +++ b/support/adhocfilelist/docsrc/makehtml.tex @@ -0,0 +1,24 @@ +\ProvidesFile{makehtml.tex}[2013/01/04 HTML driver] +\RequirePackage[r,wrap]{nicefilelist} %% wrap 2012/11/22 +\MFfieldtemplate{f-base}{adhocfilelist} %% 2012/10/19 +\RequirePackage{myfilist} +\RequirePackage[ligs]{blog} %% ligs 2012/12/30 +\BlogInterceptEnvironments +\RequirePackage{texlinks} +\RequirePackage{catchdq,langcode} +\input{atari_ht.fdf} +\input{texblog.fdf} +\useWWWctanbases %% 2013/01/04 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\htmljob{adhocfilelist} +\ResultFile{adhocfilelist.htm} +\BlogProcessFinalFile[\TextCodes\catchdqs] + {\htmljob.tex} +%% 2012/10/19: +\ReadFileInfos{makehtml} +\ReadFileInfos{\htmljob.tex} %% TODO blogexec 2012/10/19 +\ReadShInfos{\htmljob.sh,herelist.sh} %% 2012/11/22 +\ReadFileInfos{srcfiles,\htmljob.RLS} +\input{fdatechk} +\ListInfos[AllSRCes.txt] %% [...] 2012/11/20 +\stop diff --git a/support/adhocfilelist/docsrc/srcfiles.tex b/support/adhocfilelist/docsrc/srcfiles.tex new file mode 100644 index 0000000000..a8c21ca3da --- /dev/null +++ b/support/adhocfilelist/docsrc/srcfiles.tex @@ -0,0 +1,19 @@ +\ProvidesFile{srcfiles.tex}[2012/12/21 file infos -> SrcFILEs.txt] +\RequirePackage{dowith} +\RequirePackage[r]{nicefilelist} +\MaxBaseEmptyList{adhocfilelist} +%% shell scripts: +\ReadShInfos{adhocfilelist.sh,herelist.sh} %% Sh 2012/11/22 +%% documentation: +\ReadFileInfos{adhocfilelist} +%% TeX scripts: +\ReadFileInfos{makehtml,fdatechk,srcfiles} +\FileListRemark[ ---- ]{----RELEASE.---} +\ReadFileInfos{adhocfilelist.RLS} +\FileListRemark[ ---- ]{HTML_packages.---} +\ReadPackageInfos{blog,blogexec,domore,fifinddo, + texlinks} %% texlinks 2012/12/21 +\ReadFileInfos{texblog.fdf} +\NoStopListInfos[SrcFILEs.txt] +\input{fdatechk} +\stop diff --git a/support/adhocfilelist/docsrc/texblog.fdf b/support/adhocfilelist/docsrc/texblog.fdf new file mode 100644 index 0000000000..c159e41bac --- /dev/null +++ b/support/adhocfilelist/docsrc/texblog.fdf @@ -0,0 +1,663 @@ +\ProvidesFile{texblog.fdf}[2013/01/04 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 +%% {noblog} moves to blogexec.sty 2012/12/20 +%% 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}{\#ffffee} %% td +% \newcommand*{\bodybgcolor}{\#fffff8} %% 2012/12/06 +% \newcommand*{\bodybgcolor}{\#fff8dc} %% cornsilk 2012/12/06 +% \newcommand*{\bodybgcolor}{\#fefefa} %% baby powder 2012/12/06 +% \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}\\\lineanc{#1}} %% \\ 2012/11/21 +\newcommand*{\nextruleview}[1]{% %% 2010/09/15 + \nextview{#1}\hrule\vspace{5}\lineanc{#1}} %% \vspace 2012/11/21 12/01 +\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{% %% wieder 2012/12/01 + \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 +%% \domainref moves to texlinks.sty 2012/12/15 +\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 +%% Wikipedia piped links emulation moves to `texlinks.sty' 2012/11/28 +%% 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}} +%% 2012/12/25 +\newcommand*{\Wiktionarylangref}{% + \@double@first@arg\wiktionarylangref} +% \newcommand*{\Wiktderef}{\Wiktionarylangref{de}} +%% <- 2012/12/25 -> +\newcommand*{\wiktderef}{\wiktionarylangref{de}} +\newcommand*{\Wiktderef}{\@double@first@arg\wiktderef} +\newcommand*{\wiktref}{\wiktionarylangref\langcode} +% \newcommand*{\Wiktenref}{\Wiktionarylangref{en}} +%% <- 2012/12/25 -> +\newcommand*{\wiktenref}{\wiktionarylangref{en}} +\newcommand*{\Wiktenref}{\@double@first@arg\wiktenref} +\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 +%% `\ctanpkgstyref' moves to `texlinks.sty' 2012/11/27 +\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 +\useTUGctanbases %% 2012/12/30 +% \renewcommand*{\ctanpkgauref}{\tugctanpkgauref} %% 2012/12/30 rm. 2013/01/04 +%% 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}} +%% Recht: %% 2013/01/04 +\newcommand*{\dejuresprechref}[3]{% + \httpref{dejure.org/dienste/vernetzung/rechtsprechung/?% + Gericht=#1&Datum=#2&Aktenzeichen=#3}} +\newcommand*{\DJsprechref}[3]{% + \dejuresprechref{#1}{#2}{#3}{#1 v. #2 (#3)}} +%% BlogLIGs moves to `markblog.sty' 2012/11/28 +%% 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}} +\newcommand*{\mystrong}{\textcolor{\#880000}} + %% <- 2012/12/06 TODO \spanclass +\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 -- moves to `blogligs.sty' 2012/11/29 %% corr. 2012/12/21 +%% 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>} +%% <- moves to blog.sty 2012/12/20 +\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 diff --git a/support/adhocfilelist/use/adhocfilelist.sh b/support/adhocfilelist/use/adhocfilelist.sh new file mode 100755 index 0000000000..07d0388fa5 --- /dev/null +++ b/support/adhocfilelist/use/adhocfilelist.sh @@ -0,0 +1,212 @@ +#!/bin/sh +## +## \ProvidesFile{adhocfilelist.sh} +## [2012/11/19 v0.71 command line -> \string\listfiles +## \space(UL)] +## +## (C) 2012 Uwe Lück LaTeX Project Public License +## +## essential part of the `myfilist' script: +#adhoc_head='mylshead' +## original idea: read standard file; now contained here instead: +adhoc_head='\\RequirePackage{myfilist}[2012/10/11]\\EmptyFileList'; +## standard settings for `find': +adhoc_find_std='-name \*.tex' +add_type () { + adhoc_find_std="$adhoc_find_std -o -name \*.$1" +} +add_type sty; add_type cfg; add_type cls; +add_type dtx; add_type def; add_type fd; +adhoc_find_std="-L -maxdepth 1 ( $adhoc_find_std )" ## -L 2012-11-19 +#echo adhoc_find_std = $adhoc_find_std +## standard action (v0.7): +adhoc_fmt_std=',%f' +adhoc_fmt=$adhoc_fmt_std +## +## reduce code for help screen: +opt_help () { + echo \ \ \ \ \ \ \ \ \ \ "$@" +}; +## reporting detected options: +opt_log () { + echo + adhocfilelist + "$@" + +} +## looking for options: +#while getopts "fF:hl:n:s:t:" optname +## one-letter options only, for distinguishing from `find' criteria +## (learnt from "Optionen ermitteln" by Jürgen Plate on +## http://www.netzmafia.de/skripten/unix/unix8.html) +optname='hh'; ## somewhat misused for controlling +while [ $optname ] ; ## the loop that processes options + do + #case $optname in## original code for getopts + case $1 in + -h) ## help screen + optname='h' ## flag for avoiding main function + echo; echo; echo; echo; + echo =\ +===============================================================================; + echo + #echo "\`adhocfilelist.sh' varies LaTeX's \\listfiles to produce"\ + # a stand-alone + #echo list of \\Provides... contents on screen\ + # 'and optionally in a text file,' + echo "\`adhocfilelist.sh' varies LaTeX's \\listfiles to produce"\ + a stand-alone list of + echo \\Provides... contents \for \files typed explicitly\ + or found by the \`\find\' utility. + echo USAGE: \ \ \ [PATH]adhocfilelist.sh [-OPTIONS] [FILES] + echo options: ' -0 files modified today,'\ + 'in addition to -g'; ## v0.5 + opt_help -a '$ files modified $ days ago (or like -mtime $,'\ + 'cf. -0)' ## v0.5 + opt_help -c ' compare info with modification dates (filedate.sty)' + ## v0.7 + opt_help -f ' read FILES as `find'"' options and tests "\ + ' ('"'"'\\*.tex'"')" + #' \(\\\\\\*.tex\)' + opt_help -F '$ read (first) `find'"' options/tests from file $"\ + ' (\\*.tex)' + opt_help -g ' add FILES to standard `find'"' restrictions (cf. -f)" + opt_help -h ' help display (what you are seeing)' + opt_help -i '$ input TeX file $ (maybe for more'\ + "\`nicefilelist' settings," ## was -m before v0.5 + opt_help ' '\ + ' cf.' \`myfilist\' 'v0.5 documentation)' + opt_help -l '$ maximum (base) filename length for'\ + "\`longnamefilelist.sty'" + opt_help -n '$ longest (base) filename for `nicefilelist.sty'\'\ + '(or ".")' + opt_help -o '$ write list to plain text file $' + opt_help -x ' use `xelatex'\' + echo Without '`find'\'', FILES is a comma-separated'\ + list of \file names. + echo Without -l or -n, \`myfilist.sty\' is used. For background\ + '(e.g., mentioned' + echo '*.sty files), see latexfileinfo_pkgs.htm'\ + 'from package latexfileinfo-pkgs,' + echo + opt_help http://ctan.org/pkg/latexfileinfo-pkgs + echo + echo =\ +===============================================================================; + echo; + break; + ;; + ## options for real output: + -0) ## was -2 in v0.5 + adhoc_day='0' + adhoc_find='\UseFindUtility' + opt_log looking \for files modified today, using standard settings + ## <- plural missing 2012-10-17 + shift;; + -a) ## was -d in v0.4 + adhoc_day="$2" + adhoc_find='\UseFindUtility' + opt_log looking \for files modified $2 days ago,\ + using standard settings + shift 2;; + -c) ## v0.7 + adhoc_find='\UseFindUtility' + adhoc_fmt='\\ReadCheckDateOf{%f}{%TY/%Tm/%Td}' + shift;; + -f) + adhoc_find='\UseFindUtility' + adhoc_find_std='' + opt_log expecting \find utility, adding nothing + shift;; + -F) + adhoc_find='\UseFindUtility' + adhoc_find_file="$2" + opt_log reading \find criteria from $adhoc_find_file + shift 2;; + -g) ##v0.5 + adhoc_find='\UseFindUtility' + opt_log expecting \find utility, using standard settings + shift;; + -i) ## was -m) before v0.5 + adhoc_head="\\input{$2}" ## \input allows -l/-n + opt_log formatting by $adhoc_head + shift 2;; + -l) + adhoc_head="\\RequirePackage{longnamefilelist} + \listfiles[$2] + $adhoc_head" ## default or -i + ## v0.6 not using \MaxLengthEmptyList thinking of -i ... + opt_log formatting with \`longnamefilelist\',\ + max. name length $2 + shift 2;; + -n) + if [ $2 = . ]; then + set z abcdefgh; + fi ## v0.5 + adhoc_head="\\RequirePackage{nicefilelist} + \\MFfieldtemplate{f-base}{$2} + $adhoc_head" + ## v0.6 not using \MaxBaseEmptyList thinking of -i ... + opt_log formatting with \`nicefilelist\',\ + template \`$2\' + shift 2;; + -o) + adhoc_target="[$2]" + adhoc_head="${adhoc_head} + \\def\\ListGenerator{^^J by adhocfilelist.sh^^J}" + opt_log writing list to $2 ## still was $OPTARG before v0.7 + shift 2;; + -x) ## v0.7 + adhoc_xe='xe' + opt_log using xelatex + shift;; + *) optname='' ## terminate loop + esac + done +## options parsed, now proceed accordingly: +if [ "$optname" != "h" ]; ## on -h, nothing more to do + then + ## processing remaining arguments: + if [ $adhoc_find ]; + then ## as `find' input + if [ $adhoc_find_file ]; then + ## bashref command substitution: + #adhoc_file_find=$(< $adhoc_find_file) ## bad + #adhoc_file_find=$(cat $adhoc_find_file) ## good + adhoc_file_find=`cat $adhoc_find_file` ## good + ## <- Jürgen Plate 8.3.1: + ## http://www.netzmafia.de/skripten/unix/unix8.html + #echo In file: $adhoc_file_find + else + adhoc_file_find="$adhoc_find_std" + fi + #echo adhoc_file_find = $adhoc_file_find; ## rm. 2012/10/15 + if [ $adhoc_day ]; then + #adhoc_file_find="$adhoc_file_find ## bad before $@ + # -daystart + # -mtime $adhoc_day" + adhoc_day="-daystart -mtime $adhoc_day" + fi + echo \find criteria: $adhoc_file_find $@ $adhoc_day; ## in 2012/10/15 + adhoc_files="$(find $adhoc_file_find $@ $adhoc_day\ + -printf "$adhoc_fmt" )" + else ## as list of file names + #adhoc_files="$@" ## works too + adhoc_files="$*" + fi + echo Files: $adhoc_files + ## run latex with generated list of files, unless empty: + #if [ $adhoc_files ]; then ## bad with $@/$* + if [ ! -z "$adhoc_files" ]; then + if [ "$adhoc_fmt" = "$adhoc_fmt_std" ]; then + adhoc_list="\\ReadListFileInfos$adhoc_target{$adhoc_files}" + else + adhoc_list="\\RequirePackage{filedate}\\EmptyFileList\\ModDates + $adhoc_files \\ListInfos$adhoc_target\\\\relax" + fi + #echo TeX Code: + #echo $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list + #echo $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list > adhoclsi.tex + #latex adhoclsi.tex + ${adhoc_xe}latex $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list + else + echo No files. Type adhocfilelist.sh -h \for usage. + fi ## <- v0.5 +fi diff --git a/support/adhocfilelist/use/herelist.sh b/support/adhocfilelist/use/herelist.sh new file mode 100755 index 0000000000..7e28e31984 --- /dev/null +++ b/support/adhocfilelist/use/herelist.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# \ProvidesFile{herelist.sh}[2012/10/15 customize adhocfilelist] +## TODO adjust call: +$HOME/Documents/adhocfilelist.sh -F herelist.txt -i herelist.tex $@ |