diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm')
-rw-r--r-- | Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm | 524 |
1 files changed, 524 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm b/Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm new file mode 100644 index 00000000000..9bd63c2dc07 --- /dev/null +++ b/Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm @@ -0,0 +1,524 @@ +<!DOCTYPE html> +<!-- generated from + + adhocfilelist.tex, 2012/10/17 documenting adhocfilelist (UL), + + with blog.sty, 2012-10-19 --> +<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://ctan.org/pkg/filedate" target="_blank"><span style="font-family:sans-serif">filedate</span></a> “consistency checks” +even with <a href="http://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://ctan.org/pkg/latexfileversion" target="_blank"><span style="font-family:sans-serif">latexfileversion</span></a> (Harald <a href="http://ctan.org/author/id/harders" target="_blank">Harders</a>) +and <a href="http://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://ctan.org/pkg/myfilist" target="_blank"><span style="font-family:sans-serif">myfilist</span></a>, <a href="http://ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a>, +<a href="http://ctan.org/pkg/nicefilelist" target="_blank"><span style="font-family:sans-serif">nicefilelist</span></a>, and <a href="http://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://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>'-follow ( -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://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://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://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://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://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://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://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://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://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://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://ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a> +and <a href="http://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>-follow -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://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://ctan.org/pkg/longnamefilelist" target="_blank"><span style="font-family:sans-serif">longnamefilelist</span></a> +made up for this disadvantage, and <a href="http://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://ctan.org/author/id/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://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://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 2012-10-19 © <a href="http://www.webdesign-bu.de/uwe_lueck/contact.html" target="_blank">Uwe Lück</a><br> (using <a href="http://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> + |