diff options
34 files changed, 2469 insertions, 14 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.am b/Build/source/texk/texlive/linked_scripts/Makefile.am index a182b141cf6..b5fbd71a0e7 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.am +++ b/Build/source/texk/texlive/linked_scripts/Makefile.am @@ -65,6 +65,7 @@ nobase_dist_texmf_scripts_SCRIPTS = \ texmf_dist_scriptsdir = $(datarootdir)/texmf-dist/scripts texmf_dist_shell_scripts = \ + adhocfilelist/adhocfilelist.sh \ bibexport/bibexport.sh \ installfont/installfont-tl \ latexfileversion/latexfileversion \ diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.in b/Build/source/texk/texlive/linked_scripts/Makefile.in index c7958bf44c5..0d7dedf2f8b 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.in +++ b/Build/source/texk/texlive/linked_scripts/Makefile.in @@ -254,6 +254,7 @@ nobase_dist_texmf_scripts_SCRIPTS = \ texmf_dist_scriptsdir = $(datarootdir)/texmf-dist/scripts texmf_dist_shell_scripts = \ + adhocfilelist/adhocfilelist.sh \ bibexport/bibexport.sh \ installfont/installfont-tl \ latexfileversion/latexfileversion \ diff --git a/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh b/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh new file mode 100755 index 00000000000..d8b28bd48d4 --- /dev/null +++ b/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh @@ -0,0 +1,212 @@ +#!/bin/sh +## +## \ProvidesFile{adhocfilelist.sh} +## [2012/10/17 v0.7 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="-follow -maxdepth 1 ( $adhoc_find_std )" +#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/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl b/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl index f448251a590..78830d5a83b 100755 --- a/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl +++ b/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl @@ -169,6 +169,7 @@ sub main { if ($opts{'_readsave'}) { read_updmap_files($opts{'_readsave'}); + merge_settings_replace_kanji(); print "READING DONE ============================\n"; #print Dumper($alldata); $alldata->{'updmap'}{$opts{'_readsave'}}{'changed'} = 1; @@ -355,6 +356,7 @@ sub main { read_updmap_files(@{$opts{'cnffile'}}); if ($opts{'showoption'}) { + merge_settings_replace_kanji(); for my $o (@{$opts{'showoption'}}) { if (defined($settings{$o})) { my ($v, $vo) = get_cfg($o); @@ -368,6 +370,7 @@ sub main { } if ($opts{'listmaps'}) { + merge_settings_replace_kanji(); for my $m (keys %{$alldata->{'maps'}}) { my $origin = $alldata->{'maps'}{$m}{'origin'}; print $alldata->{'updmap'}{$origin}{'maps'}{$m}{'type'}, " $m ", @@ -383,6 +386,7 @@ sub main { my $changed = 0; if ($opts{'syncwithtrees'}) { + merge_settings_replace_kanji(); my @missing = read_map_files(); if (@missing) { print "Missing map files found, disabling\n"; @@ -457,6 +461,7 @@ sub main { setupOutputDir("pdftex"); setupOutputDir("dvipdfmx"); setupOutputDir("pxdvi"); + merge_settings_replace_kanji(); my @missing = read_map_files(); if (@missing) { print STDERR "\nERROR: The following map file(s) couldn't be found:\n"; @@ -1248,7 +1253,6 @@ sub enable_disable_maps { disable_map($tc, $w); } } - merge_settings(); return save_updmap($tc); } @@ -1618,12 +1622,9 @@ sub read_updmap_files { } # $alldata->{'order'} = \@l; - - # merge data and check for kanji embed - merge_settings(); } -sub merge_settings { +sub merge_settings_replace_kanji { # my @l = @{$alldata->{'order'}}; # diff --git a/Master/bin/alpha-linux/adhocfilelist b/Master/bin/alpha-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/alpha-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/adhocfilelist b/Master/bin/amd64-freebsd/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/amd64-freebsd/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/amd64-kfreebsd/adhocfilelist b/Master/bin/amd64-kfreebsd/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/amd64-kfreebsd/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/armel-linux/adhocfilelist b/Master/bin/armel-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/armel-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/adhocfilelist b/Master/bin/i386-cygwin/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/i386-cygwin/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/adhocfilelist b/Master/bin/i386-freebsd/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/i386-freebsd/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/i386-kfreebsd/adhocfilelist b/Master/bin/i386-kfreebsd/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/i386-kfreebsd/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/i386-linux/adhocfilelist b/Master/bin/i386-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/i386-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/i386-solaris/adhocfilelist b/Master/bin/i386-solaris/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/i386-solaris/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/mipsel-linux/adhocfilelist b/Master/bin/mipsel-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/mipsel-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/adhocfilelist b/Master/bin/powerpc-aix/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/powerpc-aix/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/powerpc-linux/adhocfilelist b/Master/bin/powerpc-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/powerpc-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/adhocfilelist b/Master/bin/sparc-solaris/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/sparc-solaris/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/universal-darwin/adhocfilelist b/Master/bin/universal-darwin/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/universal-darwin/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/x86_64-darwin/adhocfilelist b/Master/bin/x86_64-darwin/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/x86_64-darwin/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/x86_64-linux/adhocfilelist b/Master/bin/x86_64-linux/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/x86_64-linux/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/bin/x86_64-solaris/adhocfilelist b/Master/bin/x86_64-solaris/adhocfilelist new file mode 120000 index 00000000000..997440dd981 --- /dev/null +++ b/Master/bin/x86_64-solaris/adhocfilelist @@ -0,0 +1 @@ +../../texmf-dist/scripts/adhocfilelist/adhocfilelist.sh
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/adhocfilelist/RELEASE.txt b/Master/texmf-dist/doc/support/adhocfilelist/RELEASE.txt new file mode 100644 index 00000000000..49ce3f4a9cb --- /dev/null +++ b/Master/texmf-dist/doc/support/adhocfilelist/RELEASE.txt @@ -0,0 +1,30 @@ +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 + diff --git a/Master/texmf-dist/doc/support/adhocfilelist/SrcFILEs.txt b/Master/texmf-dist/doc/support/adhocfilelist/SrcFILEs.txt new file mode 100644 index 00000000000..1678576985b --- /dev/null +++ b/Master/texmf-dist/doc/support/adhocfilelist/SrcFILEs.txt @@ -0,0 +1,19 @@ + + *File List* +adhocfilelist.sh 2012/10/17 v0.7 command line -> \listfiles (UL) +adhocfilelist.tex 2012/10/17 -- documenting adhocfilelist (UL) + makehtml.tex 2012/10/19 -- HTML driver + srcfiles.tex 2012/10/19 -- file infos -> SrcFILEs.txt + RELEASE.--- -- -- -- -- ---- +adhocfilelist.RLS 2012/10/18 r0.3 RELEASE.txt for v0.7 (-c, -x) +HTML_packages.--- -- -- -- -- ---- + blog.sty 2012/10/05 v0.8 simple fast HTML (UL) + blogexec.sty 2012/08/29 v0.2 assignments with blog.sty (UL) + domore.sty 2012/08/08 v0.2 dowith extended (UL) + fifinddo.sty 2012/08/27 v0.6 filtering TeX(t) files by TeX (UL) + texblog.fdf 2012/10/06 -- extra blog settings + *********** + + List made at 2012/10/19, 19:54 + from script file srcfiles.tex + 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> + diff --git a/Master/texmf-dist/doc/support/adhocfilelist/makehtml.log b/Master/texmf-dist/doc/support/adhocfilelist/makehtml.log new file mode 100644 index 00000000000..bcbab821a91 --- /dev/null +++ b/Master/texmf-dist/doc/support/adhocfilelist/makehtml.log @@ -0,0 +1,142 @@ +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=latex 2011.11.14) 19 OCT 2012 19:11 +entering extended mode + %&-line parsing enabled. +**makehtml +(./makehtml.tex +LaTeX2e <2009/09/24> +Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, ngerman, german, german-x-2009-06-19, ngerman-x-2009-06-19, loaded. + +File: makehtml.tex 2012/10/19 HTML driver +(/usr/share/texmf-texlive/tex/latex/nicefilelist/nicefilelist.sty +Package: nicefilelist 2012/10/03 v0.6 more file list alignment (UL) + +(/usr/share/texmf-texlive/tex/latex/monofill/monofill.sty +Package: monofill 2012/03/19 v0.1a monospace alignment (UL) +)) +(/usr/share/texmf-texlive/tex/latex/fileinfo/myfilist.sty +Package: myfilist 2012/10/12 v0.6a \listfiles -- mine only (UL) + +(/usr/share/texmf-texlive/tex/latex/fileinfo/readprov.sty +Package: readprov 2012/03/20 v0.3b file infos without loading (UL) +) +\file@of@filelist=\write3 +) (./blog.sty +Package: blog 2012/10/05 v0.8 simple fast HTML (UL) + +(/usr/share/texmf-texlive/tex/latex/nicetext/fifinddo.sty +Package: fifinddo 2012/08/27 v0.6 filtering TeX(t) files by TeX (UL) + +(/usr/share/texmf-texlive/tex/latex/nicetext/stacklet.sty +(/usr/share/texmf-texlive/tex/generic/plainpkg/plainpkg.tex +File: plainpkg.tex 2012/09/19 v0.4a plain package management +) +Package: stacklet 2012/08/27 v0.3 private letters (UL) +) +(/usr/share/texmf-texlive/tex/generic/catcodes/actcodes.sty +(/usr/share/texmf-texlive/tex/generic/plainpkg/plainpkg.tex) +Package: actcodes 2012/09/19 v0.2 active characters (UL) +) +\result_file=\write4 +\c@fdInputLine=\count79 +\c@fd_line_job=\count80 +) +(/usr/share/texmf-texlive/tex/latex/nicetext/dowith.sty +Package: dowith 2012/05/19 v0.21a simple list loop (UL) +) + +Package blog Warning: Redefining \@width on input line 316. + + +Package blog Warning: Redefining \@height on input line 320. + +(/usr/share/texmf-texlive/tex/latex/morehype/texlinks.sty +Package: texlinks 2012/05/13 v0.6 TeX-related links (UL) +)) (./blogexec.sty +Package: blogexec 2012/08/29 v0.2 assignments with blog.sty (UL) +) +(/usr/share/texmf-texlive/tex/generic/catcodes/catchdq.sty +(/usr/share/texmf-texlive/tex/generic/plainpkg/plainpkg.tex) +Package: catchdq 2012/09/20 v0.2 simple typographic dqs (UL) +) +(/usr/share/texmf-texlive/tex/generic/langcode/langcode.sty +(/usr/share/texmf-texlive/tex/generic/plainpkg/plainpkg.tex) +Package: langcode 2012/09/20 v0.2 language adjustment (UL) +) +(/usr/share/texmf-texlive/tex/latex/morehype/atari_ht.fdf +File: atari_ht.fdf 2012/05/13 Atari umlauts for blog.sty +) (./texblog.fdf +File: texblog.fdf 2012/10/06 extra blog settings + +(./domore.sty +Package: domore 2012/08/08 v0.2 dowith extended (UL) +)) +`fifinddo' generating `adhocfilelist.htm' +\openout4 = `adhocfilelist.htm'. + +`fifinddo' processing `adhocfilelist.tex' +`fifinddo' closing `adhocfilelist.htm' +(./makehtml.tex +File: makehtml.tex 2012/10/19 HTML driver +) (./adhocfilelist.tex +File: adhocfilelist.tex 2012/10/17 documenting adhocfilelist (UL) +) (./filedate.sty +Package: filedate 2012/10/19 v0.21 check file dates (UL) +) + + makehtml.tex passed date check + + adhocfilelist.tex passed date check + +(./adhocfilelist.sh +File: adhocfilelist.sh 2012/10/17 v0.7 command line -> \listfiles (UL) +) (./srcfiles.tex +File: srcfiles.tex 2012/10/19 file infos -> SrcFILEs.txt +) (./adhocfilelist.RLS +File: adhocfilelist.RLS 2012/10/18 r0.3 RELEASE.txt for v0.7 (-c, -x) +) + + adhocfilelist.sh passed date check + + srcfiles.tex passed date check + + +! Package filedate Error: adhocfilelist.RLS has \Provides... date 2012/10/18 +(filedate) vs. modification date 2012/10/19. + +See the filedate package documentation for explanation. +Type H <return> for immediate help. + ... + +l.30 \CheckDateOfGiven{\htmljob.RLS} + +? + + *File List* + nicefilelist.sty 2012/10/03 v0.6 more file list alignment (UL) + monofill.sty 2012/03/19 v0.1a monospace alignment (UL) + myfilist.sty 2012/10/12 v0.6a \listfiles -- mine only (UL) + readprov.sty 2012/03/20 v0.3b file infos without loading (UL) + blog.sty 2012/10/05 v0.8 simple fast HTML (UL) + fifinddo.sty 2012/08/27 v0.6 filtering TeX(t) files by TeX (UL) + stacklet.sty 2012/08/27 v0.3 private letters (UL) + actcodes.sty 2012/09/19 v0.2 active characters (UL) + dowith.sty 2012/05/19 v0.21a simple list loop (UL) + texlinks.sty 2012/05/13 v0.6 TeX-related links (UL) + blogexec.sty 2012/08/29 v0.2 assignments with blog.sty (UL) + catchdq.sty 2012/09/20 v0.2 simple typographic dqs (UL) + langcode.sty 2012/09/20 v0.2 language adjustment (UL) + atari_ht.fdf 2012/05/13 -- Atari umlauts for blog.sty + texblog.fdf 2012/10/06 -- extra blog settings + domore.sty 2012/08/08 v0.2 dowith extended (UL) + makehtml.tex 2012/10/19 -- HTML driver +adhocfilelist.tex 2012/10/17 -- documenting adhocfilelist (UL) + filedate.sty 2012/10/19 v0.21 check file dates (UL) +adhocfilelist.sh 2012/10/17 v0.7 command line -> \listfiles (UL) + srcfiles.tex 2012/10/19 -- file infos -> SrcFILEs.txt +adhocfilelist.RLS 2012/10/18 -- r0.3 RELEASE.txt for v0.7 (-c, -x) + *********** + + ) +Here is how much of TeX's memory you used: + 991 strings out of 495022 + 13237 string characters out of 1181057 + 56304 words of memory out of 3000000 + 4200 multiletter control sequences out of 15000+50000 + 3640 words of font info for 14 fonts, out of 3000000 for 9000 + 28 hyphenation exceptions out of 8191 + 33i,1n,31p,301b,146s stack positions out of 5000i,500n,10000p,200000b,50000s + +No pages of output. diff --git a/Master/texmf-dist/scripts/adhocfilelist/adhocfilelist.sh b/Master/texmf-dist/scripts/adhocfilelist/adhocfilelist.sh new file mode 100755 index 00000000000..d8b28bd48d4 --- /dev/null +++ b/Master/texmf-dist/scripts/adhocfilelist/adhocfilelist.sh @@ -0,0 +1,212 @@ +#!/bin/sh +## +## \ProvidesFile{adhocfilelist.sh} +## [2012/10/17 v0.7 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="-follow -maxdepth 1 ( $adhoc_find_std )" +#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/Master/texmf-dist/scripts/adhocfilelist/herelist.sh b/Master/texmf-dist/scripts/adhocfilelist/herelist.sh new file mode 100755 index 00000000000..7e28e319842 --- /dev/null +++ b/Master/texmf-dist/scripts/adhocfilelist/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 $@ diff --git a/Master/texmf-dist/source/adhocfilelist/adhocfilelist.tex b/Master/texmf-dist/source/adhocfilelist/adhocfilelist.tex new file mode 100644 index 00000000000..08178855122 --- /dev/null +++ b/Master/texmf-dist/source/adhocfilelist/adhocfilelist.tex @@ -0,0 +1,515 @@ +\ProvidesFile{adhocfilelist.tex}[2012/10/17 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{'-follow ( -name \cs{*}.tex -o -name \cs{*}.sty )'} + \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{-follow -maxdepth 1 ( -name \cs{*}.tex -o }\metacode{more}\code{ )} + \end{quote} + where \metavar{more} in addition to files with extension \ext{tex} allows + those with extensions \ext{sty}, \ext{cfg}, \ext{cls}, \ext{dtx}, + \ext{def}, and \ext{fd}\pardash \strong{unless} with \strong{options} + \begin{description} + \optitem{f} + where \metavar{prefix} is empty + \optmetaitem{F}{find-file} + where \metavar{prefix} is the content of the file \metavar{find-file}. + \end{description} + Option \strongcode{-g} is not required with options + \strongcode{-0} and \strong{-a} that switch into "\strong{\find\ mode}" + too without deleting \metavar{prefix}, it is just a way to switch + into \find\ mode otherwise without deleting \metavar{prefix}. + \ditem{\metavar{files}\lineanc{back-f-files}} + is as in the \ancref{files}{overview}. + \ditem{\metavar{day}\lineanc{back-f-day}} + is empty, unless \strongcode{-0} sets it to + \begin{quote} + \code{-daystart~-mtime 0} + \end{quote} + or \strongmetaopt{a}{integer} sets it to + \begin{quote} + \code{-daystart~-mtime~}\metacode{integer} + \end{quote} + It follows that + \begin{itemize} + \item \strongcode{-0} has the same effect as + (is just a shorthand for) \strongcode{-a~0} + \item if \metavar{integer} is "\code{-\metavar{digits}}", + files modified \emph{since} \metavar{digits} days ago + are allowed + \end{itemize} + \emdash cf.~\acro{GNU} documentation on + \httpref{gnu.org/software/findutils/manual/html_node/% + find_html/Age-Ranges.html}{age ranges.} + <p> + A \strong{tricky} little thing here is that \metavar{day} + may be \emph{expected} to be a \emph{restriction}, + an \emph{additional} criterion that a \LaTeX\ source file + must meet to be listed. However, if \metavar{files} ends on + \strongcode{-o} for "or", \metavar{day} becomes an + "additional possibility" for being listed ... + <p> + \TODO: This is different with \strong{option \code{-c}} + (v0.7) whose functionality also may change soon. + \end{description} + \ditem{\pkg{myfilist}\lineanc{my-script}} + The \LaTeX\ package \ctanpkgref{myfilist} provides some commands + to control the input of \LaTeX's \cs{listfiles} so that its + output is not a list of files used for typesetting, + but a list of arbitrary files that is determined by commands + like + \begin{quote} + \cs{ReadFileInfos}\metamandarg{comma-separated-list-of-filenames} + \end{quote} + Essentially this is the command which the list of filenames that + was \metavar{files} or that is produced by \find\ is passed to. + The list is generated by running a \ext{tex} file that contains + these commands. Such a file has been called a + "\strong{\pkg{myfilist} script}" here. + More precisely, such a script is (mostly) structured as follows: + \begin{quote} + \ancref{back-load-set}{\metavar{loading-settings}}\\ + \ancref{back-coll-infos}{\metavar{collecting-infos}}\\ + \ancref{back-write}{\metavar{writing-to-screen+file}} + \end{quote} + These parts are as follows: + \begin{description} + \ditem{\metavar{loading-settings}\lineanc{back-load-set}} + at least issues \cs{RequirePackage}\metamandarg{myfilist}. + By default, \pkg{adhocfilelist.sh} produces (roughly) + \begin{quote} + \cs{RequirePackage}\cb{myfilist}\cs{EmptyFileList} + \metacode{adhoc-adjust} + \end{quote} + for \metavar{loading-settings} where \metavar{adhoc-adjust} + adds technical details needed for use with \pkg{adhocfilelist}. + (Final warnings are suppressed by a command \cs{NoBottomLines}, + this might be changed in the future.) + <p> + It has been a disadvantage of \LaTeX's \cs{listfiles} functionality + that the resulting plain text file list looked good with base filenames + only that had up to eight characters. \ctanpkgref{longnamefilelist} + made up for this disadvantage, and \ctanpkgref{nicefilelist} + has additional refinements of aligning the list, proposed by + Martin \ctanpkgauref{muench-hm}{Mnch}. To use them with + \pkg{myfilist}, they are loaded in \metavar{loading-settings} + as well, and additional settings for column widths may be added there too. + This is what \strong{options} \strongcode{-l} and \strongcode{-n} do. + Besides in their own \acro{PDF} documentation (that you find by following the + links), the packages are also briefly described in that file + \mirrorctanref{info/latexfileinfo-pkgs/latexfileinfo_pkgs.htm}{% + \file{latexfileinfo_pkgs.htm}} + to be read by a web browser. + <p> + However, more refined settings may be needed that cannot + be controlled by \pkg{adhocfilelist}'s interface so far. + The \strong{option} \strongmetaopt{i}{tex-file} + has the effect that \metavar{loading-settings} becomes + \begin{quote} + \metavar{tex-file-content} + \metavar{adhoc-adjust} + \end{quote} + where \metavar{tex-file-content} is the content of the + (\ext{tex} file) \metavar{tex-file} (before \cs{endinput}). + \ditem{\metavar{collecting-infos}\lineanc{back-coll-infos}} + essentially is that + \begin{quote} + \cs{ReadFileInfos}\metamandarg{comma-separated-list-of-filenames} + \end{quote} + mentioned above. + \ditem{\metavar{writing-to-screen+file}\lineanc{back-write}} + essentially is \cs{ListFileInfos} or + \begin{quote} + \cs{ListFileInfos}\metaoptarg{txt-file} + \end{quote} + With \pkg{adhocfilelist}, that "\metaoptarg{txt-file}" + is inserted on \strong{option} \strongmetaopt{o}{txt-file}. + \end{description} + However, \pkg{myfilist} has been extended at the occasion + of preparing \pkg{adhocfilelist} so that the sections + \metavar{collecting-infos} and \metavar{writing-to-screen+file} + may "collapse" into a single command starting with + \cs{ReadListFileInfos}. +\end{description} + +\labelsection{custom}{General customization} +In general, options \strongmetaopt{F}{find-file} and +\strongmetaopt{i}{tex-file} will be needed +to deal with certain directories \metavar{dir}. +Two ways come to my mind how to simplify this situation. +\begin{enumerate} + \item \metavar{find-file} and \metavar{tex-file} may be + in the same directory \metavar{dir}, and the latter may es well + contain an executable (\code{\Wikienref{chmod}}) + script file \metavar{script-file} + with the following content: + \begin{quote} + \ancref{call}{\metacode{call}} + \code{-F~}\metacode{find-file} + \code{-i~}\metacode{tex-file} + \metacode{more} + \code{\string$@} + \end{quote} + Here \metavar{call} is as in the \ancref{call}{overview}, + and \metavar{more} may be empty or something else that you + want to have fixed, such as \strongmetaopt{o}{txt-file}. + <p> + \strong{Then} you can \strong{vary} additional options/parameters + \metavar{add} by + \begin{quote} + \code{./}\metacode{script-file} \metacode{add} + \end{quote} + \item If you have \strong{several directories} \metavar{dir} as before + of a certain "type", %%% \metavar{type}, %% rm. 2012/10/17 + such that they can \strong{share} the settings in + \metavar{find-file} and \metavar{tex-file}, + you can place the latter in some separate ("central") + directory \metavar{center} and define an \code{\Wikienref{alias}} + as follows: + \begin{quote} + \EXECUTE{\MakeOther\'} + \code{alias~}\metacode{name}\code{='}\ancref{call}{\metacode{call}} + \code{-F~}\metacode{center}\code/\metacode{find-file} + \code{-i~}\metacode{center}\code/\metacode{tex-file} + \metacode{more}\code{'} + \end{quote} + (Note that there is no "\code{\string$@}". + "\metacode{dir}\code/\metacode{tex-file}" could be replaced by + mere "\metacode{tex-file}" if that \metavar{tex-file} + is installed like a \TeX~package.) + <p> + \strong{Then} you can \strong{vary} additional options/parameters + \metavar{add} by + \begin{quote} + \metacode{name} \metacode{add} + \end{quote} +\end{enumerate} + +\labelsection{idea}{The idea/motivation; acknowledgements} +One day (most probably 2012-09-27), +I wanted to check the \cs{ProvideFile} contents of \emph{two} +files I knew I had edited that day. +On 2012-09-26, I had thought about simplifying \ctanpkgref{typeoutfileinfo} +by using a single command line without any piping. +I realized that \LaTeX~s \cs{typeout} could be replaced by +\cs{ReadFileInfos} from \ctanpkgref{myfilist}. +Therefore "\Wikienref{ad hoc}". + <p> +Maybe the same day later, +I realized that I could no longer remember which files I changed that day. +In July I had discovered \code{\string$(find ...)}. Now I thought that this +could be used here. "Ad hoc" is less appropriate here, and first I thought +that there will be different script files for explicitly specified files +than for applying \find. + <p> +Only then I learnt real shell programming by googling, kind of chance, +and most helpfully from Chapter~3 of Jrgen Wolfs +\httpref{openbook.galileocomputing.de/shell_programmierung}{OpenBook} +from \Wikideref{Galileo Press} +(\code{\Wikienref{getopts}}\pardash bad here, however) +and Prof. Jrgen Plates +\httpref{netzmafia.de/skripten/unix/unix8.html}{lecture notes} +("Optionen ermitteln"\pardash "by hand"). + <p> +Then quoting/escaping for filename extensions with \Find\ became difficult ... +Quotation marks and "positional parameters" with the shell are very +difficult/\strong{painful}\pardash\TeX\ is more straightforward ... +On the other hand it is nice that the entire command line with \emph{all} the +"parameters" is gobbled. + +\hrule +\rightpar{\textit{% + Last~revised~\isotoday\ \copyright~\webdesignref{contact.html}{Uwe Lck}\\ +% \vspace{6} + (using \CtanPkgRef{morehype}{blog.sty})\\ %% ) 2012/10/17 +% \vspace{6} + License: \httpref{www.latex-project.org/lppl/}{LPPL~1.3c} or later, author-maintained.}} +\entotopofpage +\vspace{240} +\finish + diff --git a/Master/texmf-dist/source/adhocfilelist/srcfiles.tex b/Master/texmf-dist/source/adhocfilelist/srcfiles.tex new file mode 100644 index 00000000000..5922cf08d95 --- /dev/null +++ b/Master/texmf-dist/source/adhocfilelist/srcfiles.tex @@ -0,0 +1,29 @@ +\ProvidesFile{srcfiles.tex}[2012/10/19 file infos -> SrcFILEs.txt] +\RequirePackage[r]{nicefilelist} +\RequirePackage{filedate} +\MFfieldtemplate{f-base}{adhocfilelist} +\RequirePackage{myfilist} +\EmptyFileList %%% [readprov.sty,myfilist.sty] +%% script: +\catcode`\#=9 \catcode`\!=14 +\ReadFileInfos{adhocfilelist.sh} +%% documentation: +\ReadFileInfos{adhocfilelist} +%% documentation settings and auxiliaries: +%% nicetext not used! +\ReadFileInfos{makehtml} +\ReadFileInfos{srcfiles} +\FileListRemark[ ---- ]{RELEASE.---} +\ReadFileInfos{adhocfilelist.RLS} +\FileListRemark[ ---- ]{HTML_packages.---} +\ReadPackageInfos{blog,blogexec,domore,fifinddo} +\ReadFileInfos{texblog.fdf} +\EqualityMessages +\CheckDateOfPDFmod{adhocfilelist.sh} +\CheckDateOfPDFmod{adhocfilelist.tex} +\CheckDateOfPDFmod{makehtml.tex} +\CheckDateOfPDFmod{srcfiles.tex} +\DatesDiffNotices %% 2012/10/19 +\CheckDateOfPDFmod{adhocfilelist.RLS} %% 2012/10/19 +\ListInfos[SrcFILEs.txt] + diff --git a/Master/texmf-dist/source/adhocfilelist/texblog.fdf b/Master/texmf-dist/source/adhocfilelist/texblog.fdf new file mode 100644 index 00000000000..110ba35dbb2 --- /dev/null +++ b/Master/texmf-dist/source/adhocfilelist/texblog.fdf @@ -0,0 +1,736 @@ +\ProvidesFile{texblog.fdf}[2012/10/06 extra blog settings] +%% +%% macros I use for my note pages +%% -- Uwe Lueck, www.contact-ednotes.sty.de.vu +%% +%% page head: +\newcommand*{\texrobots}{\robots{index,follow,noarchive}} +%% TODO: all +\newcommand*{\texstylesheet}{\stylesheet{all}{plain}} +%% 2012/09/06: +\newcommand*{\texmetadata}{% + \metanamecontent{author}{Uwe L\"uck}\CLBrk + \metanamecontent{date}{\isotoday}\CLBrk + \texrobots} +%% 2011/04/24: +\newcommand*{\TeXtopofpage}{%% 2011/06/19, \gt 2012/09/08: + \topofpageline{\code{uwe_lueck} \code{\gt} }{\texmapName}} +\newcommand*{\texmapName}{texmap} +%% 2011/05/17, \pubfilename 2012/09/19: +\newcommand*{\pubfilename}{\htmljob} +\newcommand*{\reloadTeXtopofpage}[2]{% + \TeXtopofpage{\pardash\fileref\pubfilename{\meta{#1}}% + \pardash#2}} %% mv. brace here 2011/12/20 +\newcommand*{\deTeXtopofpage}{\reloadTeXtopofpage{neu~laden}} +\newcommand*{\enTeXtopofpage}{\reloadTeXtopofpage{reload}} +\newcommand*{\textopofpage}{\TeXtopofpage{}} +% \newcommand*{\enreloadthis}{% %% 2011/05/14 +% \pardash\fileref{\htmljob}{reload}} +%% 2011/06/19: +\newcommand*{\topofpageline}[3]{% +% \hanc{top-of-page}{% + \CLBrk\indenti %% 2011/10/12 + \begin{small}% + \hanc{top-of-page}{% %% 2012/09/08 + #1% + }% %% 2012/09/08 + \ifx\htmljob#2\else + \CLBrk\indenti + \Fileref{#2} \code{\gt} \fi %% \gt 2012/09/08 + \file\htmljob#3% + \end{small}% +% \CLBrk}% %% 2011/10/12 + \CLBrk %% 2012/09/08 +} +\newcommand*{\privtopofpage}[1]{% + \topofpageline{}{\privmapName}% + {\depardash\fileref{\htmljob}{\textit{neu~laden}}% + \depardash#1}} +\newcommand*{\privmapName}{privmap} +%% +\makeatletter %% 2011/10/12 +\@ifpackageloaded{blogexec}{% %% 2012/03/14 +\newenvironment*{noblog}{}{} %% 2012/03/04 from ... +\MakeBlogBeginRun{noblog}{% + \BlogInterceptEnvironments %% 2012/06/22 + \let\WriteResult\@gobble} +}{} +%% body colors (started 2010/09/15): +\let\simplebody\body +\renewcommand*{\body}{% +% </head><body \@bgcolor{\bodybgcolor}>} %% \@bgcolor 2011/10/03 + </head>% + <body\@style{background-color:\bodybgcolor}>} %% 2011/11/09 + %% <- no space 2012/09/08 +\newcommand*{\bodybgcolor}{\#fffff0} %% CSS ivory 2011/08/03 +% \newcommand*{\bodybgcolor}{\#ffffe7} %% 2010/11/23 2011/06/29 +% \newcommand*{\bodybgcolor}{\#f5f5dc} %% CSS beige 2011/07/31 +% \newcommand*{\bodybgcolor}{\#f8f8ff} %% CSS ghostwhite 2011/07/31 +% \newcommand*{\bodybgcolor}{\#f0ffff} %% CSS azure 2011/08/01 +% \newcommand*{\bodybgcolor}{\#fdf5e6} %% CSS oldlace 2011/08/01 +% \newcommand*{\bodybgcolor}{\#fffafa} %% CSS snow 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fafad2} %% CSS lightgol... 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fffaf0} %% CSS floralwhite 2011/07/31 +% \newcommand*{\bodybgcolor}{\#ffffe0} %% CSS lightyellow 2011/07/31 + %% erneut probiert 2011/12/12 +% \newcommand*{\bodybgcolor}{\#fbfff0} %% 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fdffee} %% 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fefedd} %% 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fcfffc} %% 2011/07/31 +% \newcommand*{\bodybgcolor}{\#fbffff} %% 2011/07/30 +% \newcommand*{\bodybgcolor}{\#fffded} %% 2011/06/29 +% \newcommand*{\bodybgcolor}{\#fcffef} %% 2011/06/28 +% \newcommand*{\bodybgcolor}{\#ffffef} %% 2011/06/27 +% \newcommand*{\bodybgcolor}{\#ffffff} +% \newcommand*{\bodybgcolor}{\#ffffdd} %% 2010/11/17 +% \newcommand*{\bodybgcolor}{\#faffe7} %% 2010/11/17 +% \newcommand*{\bodybgcolor}{\#fcffe7} %% 2010/11/23 +% \newcommand*{\bodybgcolor}{\#fbfff0} %% 2010/11/23 +% \newcommand*{\bodybgcolor}{\#fbfffe} %% 2010/11/23 +%% +%% dark body, aus ultrado.tex, gekuerzt, abgewandelt 2012/05/08: +\newcommand*{\darkbody}{% + \begin{style}{all}\CLBrk + b, h1, h2, h3, h4, div, p, td, th, body, span, table, ol, li, a, ul {\CLBrk + \lightplaincolor + \darkfonts\CLBrk %% light -> dark 2012/05/09 + \CLBrk}\CLBrk + body { \darkbackgroundcolor }\CLBrk + \CLBrk + a:link { \lightlinkcolor \lightfonts }\CLBrk +% a:visited { color:\#cc33cc; }\CLBrk + a:visited { \lightlinkcolor \lightfonts }\CLBrk + a:hover { \lightlinkcolor \lightfonts }\CLBrk + a:active { \lightlinkcolor \lightfonts }\CLBrk + \end{style}\CLBrk + </head><body>\CLBrk +} +%% requires: +% \newcommand*{\plainbody}{</head><body>} +\newcommand*{\lightlinkcolor}{color:% +% \#9999ff; } + \#ccffff; } %% 2012/05/10 +% \#99ccff; } %% 2012/05/10 +\newcommand*{\lightplaincolor}{color:% +% white; } +% \#fff8cc; } + \#ffffcc; } +% \#cccccc; } +\newcommand*{\boldcss}{font-weight:bold; } +% \newcommand*{\lightfonts}{\boldcss} +\newcommand*{\lightfonts}{} +% \newcommand*{\darkfonts}{\lightfonts} +\newcommand*{\darkfonts}{} +\newcommand*{\darkbackgroundcolor}{background-color:% +% \#333300; } +% black; } +% \#221100; } +% \#222200; } + \#001100; } %% 2012/05/10 +% \#110011; } %% 2012/05/10 +% \#111111; } %% 2012/05/10 +%% +%% table cell colors: %% 2011/11/08 +\newcommand*{\mylightblue}{\#eeeeff} %% Wiki TCP/IP +% \newcommand*{\mylightblue}{\#ddddff} %% auch nicht schlecht 2011/11/10 +% \newcommand*{\mylightblue}{\#ddeeff} %% auch nicht schlecht 2011/11/10 +% \newcommand*{\mylightblue}{\#eeefff} %% dantev45 +\newcommand*{\mylightyellow}{\#fff8cc} %% yellow 2011/11/09 +% \newcommand*{\mylightyellow}{\#ffeebb} + +%% internal navigation: +\renewcommand*{\autref}[1]{\ancref{#1}{\code{#1}}} %% 2011/05/16 +% \renewcommand*{\autref}[1]{\ancref{#1}{\code{#1}}} %% 2011/05/16 +% \renewcommand*{\autref}[1]{\ancref{\lowercase{#1}}{#1}} + %% <- does not expand 2011/05/10 +\newcommand*{\Autref}[1]{\ancref{#1}{#1}} %% 2011/08/16 +\newcommand*{\ancandref}[1]{\hancref{#1}{\##1}} %% 2011/07/04 +% \newcommand*{\lineanc}[1]{\TagSurr a{\@name{#1}}} +\newcommand*{\lineanc} [1]{\hanc{#1}{}} %% 2011/07/20 +%% TODO: one anchor element with more +%% than one name!? %% 2011/08/31 +\newcommand*{\sieheuref}[1]{\ancref{#1}{s.\,u.}} %% 2011/12/23 + +%% click to move to top of window: %% 2011/07/25 hier 2012/02/07 +\newcommand*{\entotopofpage}{% + \rightpar{\ancref{top-of-page}{[\textit{\to~top~of~page}~]}}} +\newcommand*{\detotopofpage}{% + \rightpar{\ancref{top-of-page}{[\textit{\to Seitenanfang}\,]}}} +\newcommand*{\nextview}[1]{% %% corr. 2010/09/15 + \rightpar{\ancref{#1}{[\to}|% + \ancref{top-of-page}{~\uparrow~]}}} +\newcommand*{\Nextview}[1]{% %% 2011/05/12 + \nextview{#1}\hanc{#1}{}} +\newcommand*{\nextruleview}[1]{% %% 2010/09/15 + \nextview{#1}\hrule\hanc{#1}{}} +\newcommand*{\NRV}{\nextruleview} %% 2011/03/15 +%% Diary date sections: +\newcommand*{\datepar}[1]{% +% \endgraf\hanc{#1}{\latexdatepar#1\latexdatepar}}%% 2011/08/12: +% \vspace{3} %%% 2011/08/16 \\% + \vspace{12} %% 2012/09/13 + %% TODO CSS!? <- 2012/09/13 -> +% \heading4{% + \lineanc{\isodateplus#1\isodateplus}% + \lineanc{#1}% + \heading4{\isodateplus#1\isodateplus}} +% \isodateplus#1\isodateplus}} +%% #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}}% +} +%% 2011/08/18 [private - 2011/08/26]: +\newcommand*{\geldpref}{\ancref{geld}{\euro}} +\newcommand*{\jobspref}{\autref{jobs}} + +%% offline links: %% 2012/09/18 +\newcommand*{\Offlineref}[1]{% + \hnewref{}{../../www-Kopien/#1}{\offlinetext}} +\newcommand*{\offlinetext}{\small~[0]\endsmall} %% 2012/09/22 +%% bar of internal links %% 2011/12/23 / 2012/02/07 +\newcommand*{\internallinksbar}[1]{% +% \samehtmlline{% %% irrelevant 2011/12/25 + [\,\DoSeparateWithMore\ancref + \BlogVertNoBreakSep %% 2011/12/25 + #1\StopDoing\,]}% +% } +% \newcommand{\DoSeparateWith}[3]{#1{#3}\do@separate@with#1#2} +% \def\do@separate@with#1#2#3{% +% \ifx\StopDoing#3% +% \else#2#1{#3}% +% \expandafter\do@separate@with\expandafter +% #1\expandafter#2\fi} +%% More 2012/01/17 [`\Do...' moved to `domore.sty' 2012/08/07]: +% \newcommand*{\make@ancref}[1]{\ancref#1} +\newcommand*{\BlogVertNoBreakSep}{~|~} %% 2011/12/25 +\newcommand*{\BlogVertSep} {~| } %% 2011/12/25 +\newcommand*{\BlogVertLine} {~|\CLBrk} %% 2012/09/06 +\newcommand*{\ancrefs}[1]{% %% 2011/12/28 +% \DoSeparateWithMore\ancref\BlogVertSep %% 2012/01/17 + \DoSeparateWithMore\ancref\BlogVertLine %% 2012/01/17 + #1\StopDoing} +\newcommand*{\ancrefslist}{} \let\ancrefslist\ancrefs %% 2012/08/02 TODO +\newcommand*{\varancrefs}[2]{% %% 2012/06/19 /08/07 + \DoSeparateWithMore\ancref{#1}#2\StopDoing} +\newcommand*{\autrefs}[1]{% %% 2011/12/28 + \DoSeparateWith\autref\BlogVertSep #1\StopDoing} +%% 2012/01/17 later [moved to `domore.sty' 2012/08/07]: +\RequirePackage{domore} +%% 2012/01/18: +%% accesses all possibilities: +%% 2012/08/07 moved to `domodes.sty' + \iffalse %% TEST doowith 2012/06/03 +\let\DoWith\DoWithZ %% !!! +% \renewcommand*{\DoSeparateWithMore}[2]{% %% !!? +% \DoSeparateWithSetsPresentedAs{#1}{#2}{M}{Z}} +\renewcommand*{\DoSeparateWithMore}{\DoWithModes{Z}{M}} %% !!? +% \show\DoSeparateWithMore +%% ... including shorthand for `\do', 48 macros in mind. +% \newcommand*{\StripEsc}{\expandafter\@gobble\string} +%% ... lists of things capable of being an undelimited macro +%% argument. +% \newcommand*{\AddAncRef}[1]{\ancref#1~| } %% 2011/12/28 +% \newcommand*{\AddAutRef}[1]{\autref{#1}~| } %% 2011/12/28 + \fi +\newcommand*{\topfilesbar}[1]{% %% 2011/12/26 + |~% + \DoSeparateWith \Fileref + \BlogVertNoBreakSep + #1\StopDoing +} +%% +%% internal/external 2011/08/17f.: +% \newcommand*{\emailpref}{\ancref{email}{E-M@il}} +% \newcommand*{\emailpref}{% +% \ancref{email}{@\,}|\httpref{web.de/fm}{\,fm}} +\newcommand*{\ausflwpref}{% + \autref{ausfl-w}\pardash\wetterwpref +%% 2011/08/22: + \pardash\vrnpref} +\newcommand*{\vrnpref}{% +% \httpref{www.vrn.de/vrn/einfach-ankommen/fahrplanauskunft/}% + \httpref{www.vrn.de}% %% 2011/09/08 + {VRN}} +%% 2012/01/15: +\newcommand*{\webdefmref}{\httpref{web.de/fm}} +\newcommand*{\emailpref}{\ancref{email}{@\,}|\webdefmref{\,fm}} +%% TODO mit \EXECUTE auslagern? + +%% link in new code line TODO!? bad in parentheses: %% 2012/09/06 +% \renewcommand*{\href}[1]{\CLBrk\TagSurr a{\@href{#1}}} +% \renewcommand*{\hnewref}[2]{% +% \CLBrk\TagSurr a{\@href{#1#2" target="_blank}}} +%% 2012/09/08: +\newcommand*{\LinkLinesBroken}{% + \def\@href##1{\CLBrk\indenti href="##1"}} +\newcommand*{\LinkLinesNormal}{% + \def\@href##1{ href="##1"}} +%% +%% page bottom: +%% `\isotoday' moves to `blog.sty' 2011/11/20 +\newcommand*{\genlastrev}[2]{% %% 2011/11/02 + \rightpar{\textit{#1~% +% \Isodate\GenDate + \isotoday %% 2011/11/02 + \ \copyright~\href{#2.html}{Uwe~L\"uck}}}} +\newcommand*{\enlastrev}{\genlastrev{% +% Last~revised% + Last~generated% + }{contact}} +\newcommand*{\delastrev}{\genlastrev{% + Zuletzt neu erzeugt}{kontakt}} +\newcommand*{\Hrule}{\totopofpage\hrule} +\newcommand*{\fivebreaks}{\\\\\\\\\\} %% TODO \vspace + +%% external navigation: +\renewcommand*{\htmakeext}{.htm} %% 2011/10/05 +\newcommand*{\Fileref}[1]{\fileref{#1}{\file{#1}}} %% 2010/09/10 +\newcommand*{\Fileancref}[2]{% %% 2012/09/11 + \fileancref{#1}{#2}{\file{#1\##2}}} %% 2012/09/11 +\newcommand*{\urlhref}[1]{\href{#1}{\urlfmt{#1}}} %% 2011/08/19 +\newcommand*{\domainref}[2]{% %% 2012/06/08 + \httpref{#1/#2}{\urlfmt{#1}}} +\newcommand*{\localfilenewref}{\hnewref{}} %% 2011/10/12 +%% Ubuntu-Wiki 2012/09/13: +\newcommand*{\ubuntuurl}{wiki.ubuntuusers.de} +\newcommand*{\ubunturef}{\httpbaseref\ubuntuurl} +\newcommand*{\ubuntucmd}[1]{\ubunturef{#1}{\code{#1}}} +\newcommand*{\Ubunturef}[1]{\ubunturef{#1}{#1}} +\newcommand*{\siehewiki}[1]{% %% 2011/05/06 + \to\wikideref{#1}{\textit{Wikipedia}}} +\newcommand*{\Wref}[1]{\wikiref{#1}{Wikipedia}} %% 2012/01/19 +%% 2011/11/23, 2012/01/06, 2012/03/11: +\newcommand*{\wiktionarylangref}[1]{% + \httpbaseref{#1.wiktionary.org/wiki}} +% \newcommand*{\Wiktenref}[1]{\wiktionarylangref{en}{#1}{#1}} +% \newcommand*{\Wiktderef}[1]{\wiktionarylangref{de}{#1}{#1}} +% \newcommand*{\Wiktref}[1]{% %% 2012/01/13 +% \wiktionarylangref\langcode{#1}{#1}} +%% <- 2012/01/13 -> +\newcommand*{\Wiktionarylangref}[2]{% + \wiktionarylangref{#1}{#2}{#2}} +\newcommand*{\Wiktderef}{\Wiktionarylangref{de}} +\newcommand*{\Wiktenref}{\Wiktionarylangref{en}} +\newcommand*{\Wiktref}{\Wiktionarylangref\langcode} +%% 2011/11/23, 2012/01/06, 2012/03/11: +\newcommand*{\wikiquotelangref}[1]{% + \httpbaseref{#1.wikiquote.org/wiki}} +\newcommand*{\Wikquenref}[1]{\wikiquotelangref{en}{#1}{#1}} +%% Vertikalstrich in Wikilinks 2012/10/03 ... +%% bitelist TODO! +%% +%% to do: +\newcommand*{\wormsmusref}{% %% 2011/04/30, 2012/03/11 + \httpbaseref{www.worms.de/deutsch/kultur/museen}} +%% 2011/08/18: +\newcommand*{\facebookpref}{% + \httpref{de-de.facebook.com}{facebook}} +\newcommand*{\wetterwpref}{% +% \hanc{wetter}{\mystrong{Wetter:}} +% \Endash \httpref{www.wetteronline.de/Rheinland-Pfalz/Worms.htm% +% }{\code{www.wetteronline.de}} +% \Endash \httpref{m.wetter.net/1686/Worms}{\code{m.wetter.net}} +% \Endash \httpref{www.wetteronline.de/dldlsat.htm% +% }{Satellitenbild} + \httpref{www.wetteronline.de/Rheinland-Pfalz/Worms.htm}{% + \code{wol} }| + \httpref{m.wetter.net/1686/Worms}{\code{mww} }| + \httpref{www.wetteronline.de/dldlsat.htm}{\code{sat}} +} +%% 2011/08/19: +\newcommand*{\webdesignref}{% + \httpbaseref{www.webdesign-bu.de/uwe_lueck}} +\newcommand*{\webdesignurlref}[1]{% + \webdesignref{#1}% + {\urlfmt{www.webdesign-bu.de/uwe_lueck/#1}}} +%% TeX links: +% \newcommand*{\CPR}{\ctanpkgref} %% 2011/03/15, rm. 2011/11/06 +\newcommand*{\ctanpkgstyref}[1]{\CtanPkgRef{#1}{#1.sty}} +\newcommand*{\THPR}{\texhaxpref} %% 2011/03/15 +\newcommand*{\THpref}[1]{\texhaxpref{#1}{texhax}} %% 2011/03/24 +%% month page 2011/12/22, reworked for langcode 2012/01/17: +%% monthnames move to `langcode.sty' 2012/09/17 +\newcommand*{\texlistyearmonthref}[2]{\texlist@yearmonthref#1#2\@nil} +\def\texlist@yearmonthref#1#2-#3\@nil{#1{20#2-\enmonthname{#3}}} +\newcommand*{\texhaxyearmonthref}{\texlistyearmonthref\texhaxref} +\newcommand*{\ctanannyearmonthref}{\texlistyearmonthref\ctanannref} +\newcommand*{\texlanglistmonthref}[3]{\texlanglistm@nthref#1#2#3\@nil} +\def\texlanglistm@nthref#1#2#3-#4\@nil{% + #2{20#3-\enmonthname{#4}}{#1{#4}}} +\newcommand*{\detexlistmonthref}{\texlanglistmonthref\demonthname} +\newcommand*{\entexlistmonthref}{\texlanglistmonthref\enmonthname} +\newcommand*{\texlistmonthref} {\texlanglistmonthref\monthname} +% \newcommand*{\detexhaxmonthref} {\detexlistmonthref\texhaxref} +% \newcommand*{\entexhaxmonthref} {\entexlistmonthref\texhaxref} +\newcommand*{\texhaxmonthref} {\texlistmonthref\texhaxref} +% \newcommand*{\dectanannmonthref}{\detexlistmonthref\ctanannref} +% \newcommand*{\enctanannmonthref}{\entexlistmonthref\ctanannref} +\newcommand*{\ctanannmonthref} {\texlistmonthref\ctanannref} +%% <- TODO 2011/12/22 alle -> texlinks.sty +\newcommand*{\TOPref}[1]{\bytopicref{#1}{JF\##1}} %% 2011/04/22 +% \newcommand*{\todobytopic}[1]{% %% 2011/04/22, rm. 2011/11/08 +% \myalert{\to\ \TOPref{#1}}} +\newcommand*{\UKFAQref}[1]{\ukfaqref{#1}{UK~FAQ}} %% 2011/01/03 +%% SelfHTML: +\newcommand*{\selfhtmlurl}{de.selfhtml.org} +\newcommand*{\selfhtmlref}{\httpbaseref\selfhtmlurl} +\newcommand*{\selfhtmlrefref}[1]{% + \selfhtmlref{/html/referenz/#1.htm}} +\newcommand*{\selfhtmlcsseigref}{% %% 2012/09/23 + \httpbaseref{\selfhtmlurl/css/eigenschaften}} + +%% BlogLIGs: +%% 2012/01/06f. [[...]] f. \Wikiref: +\FDpseudoTilde +% \Delimiters\(\) +% \catcode`\(=1 \catcode`\)=2 +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{)(blog<-) + %% <- TODO echte `{' kann man so nicht einsetzen, vorverarb... +% \MakeExpandableAllReplacer(blog]])(]])(})(blog[[) +% \CopyFDconditionFromTo(blog]])(BlogLIGs) + %% fine: +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\catchdbrk)(blog<-) +% \CopyFDconditionFromTo(blog[[)(BlogLIGs) + %% hacks fail: +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\iffalse}\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\iffalse{\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\iffalse}\protect\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\protect\iffalse{\protect\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\ifnum0=`}\protect\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\protect\ifnum0=`{\protect\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\ifnum0=`}\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\ifnum0=`{\fi}) +% (blog[[) +% \CopyFDconditionFromTo(blog]])(BlogLIGs) +% \Delimiters\{\} +% \MakeOther\( \MakeOther\) +\MakeExpandableAllReplacer{blog[[}{[[}{\protect\catchdbrkt}{blog<-} +\def\catchdbrkt#1]]{\Wikiref{#1}} %% + t 2012/01/09 + %% <- TODO in blog.sty \wikilink!? %% <- 2012/01/09 -> +\MakeExpandableAllReplacer{blog**}{**} + {\protect\doublestar:}{blog[[} +\MakeExpandableAllReplacer{blog***}{***} + {\protect\triplestar:}{blog**} +% \CopyFDconditionFromTo{blog***}{BlogLIGs} +%% 2012/01/11: +\MakeActiveDef\'{\noexpand'} +\MakeExpandableAllReplacer{blog\string'\string'}{''} + {\protect\doubleapostr:}{blog***} +\MakeExpandableAllReplacer{blog\string'\string'\string'}{'''} + {\protect\tripleapostr:}{blog\string'\string'} +\MakeOther\' +\CopyFDconditionFromTo{blog'''}{BlogLIGs} +\newcommand*{\MakePairLaTeXcmd}[2]{% + \@ifdefinable#1{\def#1:##1#1:{#2{##1}}}} %% ":" for "..." 2012/01/30 +%% <- 2012/01/15 -> +\MakePairLaTeXcmd\doublestar\mystrong +\MakePairLaTeXcmd\triplestar\myalert +\MakePairLaTeXcmd\doubleapostr\textit +\MakePairLaTeXcmd\tripleapostr\textbf +%% TODO -> blog.sty or so %% 2012/02/07 + +%% rm. HVspace etc. 2011/10/13 +%% font switching (logical): +% \renewcommand*{\textsf}{% %% 2011/05/12 +% \TagSurr{span}% +% {style="font-size:82\%; +% font-family:sans-serif"}} + %% <- rm. 2011/10/24 +\providecommand*{\file}{\code} %% provide 2011/03/07 +\newenvironment*{itquote}{\quote<i>}{</i>\endquote} +\newcommand*{\mystrong}{\textcolor{\#aa0000}} +\providecommand*{\myalert}{\textcolor{red}} +% \newcommand*{\myalert}[1]{% +% \textcolor{red}{\ParseLigs{#1}}} %% 2011/12/20 +\newcommand*{\prl}[1]{#1} %% prg lang, corr. 2010/12/15 +\providecommand*{\pkg}{\pkgnamefmt} %% 2011/03/05 +% \renewcommand*{\pkgnamefmt}{\code} %% 2011/10/24 + %% <- for heyctan -> +\let\pkgnamefmt\@firstofone %% 2011/10/24 +\renewcommand*{\urlfmt}{\code} %% 2011/10/24 +\newcommand*{\meta}{\textit} %% 2011/05/16 +% \newcommand*{\acro}[1]{\small#1\endsmall} %% 2011/06/19 +% \newcommand*{\acro}[1]{#1} %% 2011/06/19 + %% <- rm. 2012/01/06 +\providecommand*{\metahttpref}[2]{% %% 2011/10/24 + \httpref{#1}{\meta{#2}}} +% {\catcode`\'\active \gdef\catchsq#1'{\code{#1}}} %% 2012/01/31 + %% <- \end occured when \ifeof on line 24 was incomplete + +%% involving font switching for special purposes: %% 2011/07/25 +\newcommand*{\src}[1]{\STS{sup}{[#1]}} %% 2010/09/12 +\newcommand*{\idx}[1]{% %% 2010/11/23: + \textcolor{green}{\code{\lt#1\gt}}} +% \providecommand*{\cb}[1]{\code{{#1}}} %% 2011/03/13 +\providecommand*{\cb}[1]{\code{\{#1\}}} %% 2012/01/31 +\newcommand*{\itqtd}[1]{\textit{\dqtd{#1}}} %% 2011/05/03 +\newcommand*{\ancstrong}[2]{\hanc{#1}{\strong{#2}}} %% 2011/05/05 +% \newcommand*{\answer}[1]{[\textcolor{\#006600}{#1}]} +\newcommand*{\answer}[1]{\textcolor{\#006600}{[#1]}} %% 2011/07/19 +\newcommand*{\Answer}[1]{\answer{\,#1\,}} %% 2011/08/25 +\newcommand*{\planh}[1]{\answer{#1\,h}} %% 2011/08/18 +\newcommand*{\TODO}{\myalert{\acronym{TODO}}} %% 2011/05/07 2011/12/29 +\newcommand*{\TODOs}{\acronym{TODOs}} %% 2011/12/29 +% \newcommand*{\HTML}{\acronym{HTML}} %% 2011/09/22 +% \newcommand*{\PDF} {\acronym{PDF}} %% 2011/09/22 +% \newcommand*{\CSS} {\acronym{CSS}} %% 2012/01/09 +% \newcommand*{\PHP} {\acronym{PHP}} %% 2012/01/09 +\DoWith\newacronym{HTML}{PDF}{CSS}{PHP} + {WP} %% 2012/10/06 + \StopDoing %% 2012/02/07 + +%% use \ParseLigs: +%% 2012/01/08, eigentlich schon 2012/01/04, verloren ...: +% \let\blogtextcolor\textcolor +% \renewcommand*{\textcolor}[2]{\blogtextcolor{#1}{\ParseLigs{#2}}} +%% 2012/01/10: +\let\blogdedqtd\dedqtd +\renewcommand*{\dedqtd}[1]{\blogdedqtd{\ParseLigs{#1}}} +%% 2012/08/20: +\let\blogendqtd\endqtd +\renewcommand*{\endqtd}[1]{\blogendqtd{\ParseLigs{#1}}} +%% 2012/01/19: +\let\BlogTagSurr\TagSurr +\renewcommand*{\TagSurr}[3]{% + \BlogTagSurr{#1}{#2}{\ParseLigs{#3}}} +\let\BlogSimpleTagSurr\SimpleTagSurr +\renewcommand*{\SimpleTagSurr}[2]{% + \BlogSimpleTagSurr{#1}{\ParseLigs{#2}}} +\newcommand*{\noligs}{} \let\noligs\@firstofone %% !!! +\renewcommand*{\code}[1]{\STS{code}{\noligs{#1}}} +%% 2012/03/14, not optimal TODO: +\renewcommand*{\NoBlogLigs}{% + \def\BlogOutputJob{LEAVE}% +% \let\deqtd\blogdeqtd %% rm. 2012/06/03 + \let\TagSurr\BlogTagSurr + \let\SimpleTagSurr\BlogSimpleTagSurr + \FDnormalTilde + \MakeActiveDef\~{ }% %% TODO new blog cmd +} + +%% dashes: +% \newcommand*{\enpardash}{\,\emdash\,} %% 2011/05/12 +%% language-specific appear in `langcode.sty' +%% 2012/09/20 -> \renewcommand +\renewcommand*{\enpardash}{\thinsp\Enpardash} %% 2011/07/28 2012/09/20 +\newcommand*{\Enpardash}{\emdash\thinsp} %% 2011/07/28 +% \newcommand*{\depardash}{~\endash\ } %% 2011/05/12 +\renewcommand*{\depardash}{\ \Endash} %% 2011/07/28 2012/09/20 +\newcommand*{\Endash}{\endash\ } %% starting new line (German) + %% 2011/05/26 +\newcommand*{\enpardashed}[1]{% %% 2011/07/28 + \thinsp\emdash\,#1\,\Enpardash} +\newcommand*{\depardashed}[1]{% %% 2011/07/28 + \ \endash~#1~\Endash} +\def\endashed#1{\endash~#1~\endash} %% 2011/08/20 + +%% language codes move to `langcode.sty' 2012/09/17 +%% %% \catchdq moves to own package 2012/09/17 +\newcommand*{\Euro}{\,\euro} %% mod. 2011/05/25 2011/09/08 +\newcommand*{\degC}{\,\degrees C} %% 2011/09/20 +%% avoiding spaces at code line breaks: +\newcommand*{\bcmt}{<!-- } \newcommand*{\ecmt}{-->} %% 2011/05/02 +\newcommand*{\nix}[1]{} %% join lines without space 2011/07/24 +\newcommand*{\onehtmlline}[1]{#1} %% 2011/08/25 +\newcommand*{\samehtmlline}[1]{\ParseLigs{#1}} %% 2011/12/23 +%% +%% enumeration styles: +\newenvironment{enumtype}[1]{<ol \@type{#1}}{</ol>} +\newenvironment{enumerate-a}{\enumtype a} %% 2011/08/15 + {\endenumtype} +\newenvironment{enumerate-i}{\enumtype i} %% 2011/08/17 + {\endenumtype} +%% TODO 2012/02/07 for DVI/PDF interface to 'enumerate' +\newenvironment{tightenum} %% 2012/01/07 "tight" 2012/01/08 + {<ol \@style{margin:0px; padding:0px; + margin-left:2em}>} + %% <- TODO mit CSS-inherit auf Eintraege uebertragen? 2012/01/12 + {\endenumerate} + +\newenvironment{done}{<s>}{</s>} %% 2011/08/15 +\newcommand*{\Dots}{~\dots\ } %% 2011/08/24 +%% 2012/04/01 from autrado.fdf (2012/01/23): +\newenvironment*{codelines}{\quote<code>} + {</code>\endquote} +\MakeBlogBeginRun{codelines}{% + \NoBlogLigs %% 2012/01/24 + \MakeActiveOther\"\MakeActiveOther\' %% actcodes 2012/08/28 + \MakeActiveLet\<\lt\MakeActiveLet\>\gt %% actcodes 2012/08/28 + \let\/\\\let\\\BackslashChar} + +%% table rows (before blogexec): %% 2011/09/24 / 2012/02/07 +% \newcommand*{\rowoftwocells}[2]{% +% \starttr +% \simplecell{#1}\simplecell{#2}% +% \endtr} +%% back for ... 2012/07/03: +\newcommand*{\rowofthreecells}[3]{% + \starttr + \simplecell{#1}\simplecell{#2}\simplecell{#3}% + \endtr} +% \newcommand*{\rowoffourcells}[4]{% +% \starttr +% \simplecell{#1}\simplecell{#2}% +% \simplecell{#3}\simplecell{#4}% +% \endtr} +% \newcommand*{\rowoffivecells}[5]{% %% 2011/10/28 +% \starttr +% \simplecell{#1}\simplecell{#2}\simplecell{#3}% +% \simplecell{#4}\simplecell{#5}% +% \endtr} +% \newcommand*{\rowofsixcells}[6]{% %% 2011/10/28 +% \starttr +% \simplecell{#1}\simplecell{#2}\simplecell{#3}% +% \simplecell{#4}\simplecell{#5}\simplecell{#6}% +% \endtr} +% +%% |\begin{stdhiddentablerows}| %% 2012/09/03 +\newenvironment*{stdhiddentablerows} + {\startTable{\@cellpadding\stdcellpadding + \@cellspacing{0px} + \@style{border-collapse:collapse}}% + \startTR} + {\endtablerow\endTable} +\MakeBlogBeginRun{stdhiddentablerows} + {\def\startTR{\tablerow{hidden}}% + \def\cr{\endtr\startTR}} +%% |\begin{stdhiddentable}| %% 2012/05/15 +\newenvironment*{stdhiddentable} +% {\startTable{\@cellpadding\stdcellpadding} +% % \@cellspacing\stdcellspacing} %% 2012/08/28 +% \startTR\StartTd} + {\stdhiddentablerows\StartTd} +% {\endTd\endtablerow\endTable} + {\endTd\endstdhiddentablerows} +%% TODO colgroup alignment +\MakeBlogBeginRun{stdhiddentable}{% + \def\startTR{\tablerow{hidden}}% %% 2012/08/23 + \MakeActiveLet\|\endcell\MakeActiveLet\&\figurespace} %% actcodes 2012/08/28 +% \newcommand*{\stdcellspacing}{6} %% undone 2012/08/29 +%% +% %% |\begin{stdallrulestable*}| %% 2012/06/05 +% %% doesn't work with Firefox, +% %% w3schools.com/tags/att_col_align.asp; +% %% CSS seems to support +% %% alignment attributes for single cells only. +% \newenvironment{stdallrulestable*}[1]{% +% %% TODO what is shared with {stdallrulestable} +% \startTable{\@cellpadding{\stdcellpadding} \@width{} +% \@frame@box\ rules="all"}\CLBrk %% \ 2011/10/12 +% \ \STS{colgroup}{\DoWith\ColAlign#1\StopDoing}\CLBrk +% \ \tbody\CLBrk +% \TableRow{standard all-rules table}% +% {\@bgcolor{\stdtableheadcolor} +% \@style{\stdtableheadstyle}}\CLBrk +% \indentii\StartTd +% } +% {\endstdallrulestable} +% % {\endtbody\endTable} +% \newcommand*{\ColAlign}[1]{% +% \CLBrk\indenti<col \csname @align@#1\endcsname>} +% \MakeBlogBeginRun{stdallrulestable*}{% +% \MakeActiveDef\|{\endcell}\MakeActiveDef\&{\figurespace}} +% %% <- TODO or copy ntok(blogx.bstdallrulestable) +% +\newcommand*{\UseTabFigspVert}{% %% 2012/07/22 + \MakeActiveLet\&\figurespace\MakeActiveLet\|\endcell} %% actcodes 2012/08/28 +%% |\crspan{<cols>}| %% 2012/06/07 +\newcommand*{\crspan}[1]{% + \endTd\endtr\starttr\startTd{\@colspan{#1}}} +%% 2012/06/12: +%% |\Crspan{<total-cols>}{<cols>}| +\newcommand*{\Crspan}[2]{% + \endTd\endtr\starttr\fillrow{#1}\crspan{#2}} +%% table cell borders 2012/09/02 +\newcommand*{\cellborderthickness}{1px} +\newcommand*{\edge@csname}{\csname edge@} +% \edef\edge@csname{% +% \noexpand\csname\noexpand\expandafter +% \noexpand\StripEsc\withcsname\noexpand edge@\endcsname} +% \show\edge@csname +%% <- TODO save a lot of HTML/CSS code! +\def\do#1{\withcsname\def edge@#1\endcsname} +\do{b}{bottom} \do{l}{left} \do{r}{right} \do{t}{top} +% \withcsname\show edge@b\endcsname +\newcommand*{\border@edge}[1]{% + border-\edge@csname#1\endcsname-width:\cellborderthickness; + border-\edge@csname#1\endcsname-style:solid;} +\newcommand*{\stylecell}[2]{\startTd{\@style{#1}}#2\endTd} +\newcommand*{\edgeborderedcell}[1]{\stylecell{\border@edge#1}} +\newcommand*{\cornerborderedcell}[1]{\stylecell{\border@corner#1}} +\newcommand*{\border@corner}[2]{\border@edge#1\border@edge#2} +\newcommand*{\borderedcell}[1]{\csname edges@#1\endcsname} +\def\do#1{\withcsname\def edges@#1\endcsname} +\do b{\edgeborderedcell b} +\do l{\edgeborderedcell l} +\do r{\edgeborderedcell r} +\do t{\edgeborderedcell t} +%% TODO save more tokens?: +\do{bl}{\cornerborderedcell{bl}} +\do{br}{\cornerborderedcell{br}} +\do{lt}{\cornerborderedcell{lt}} +\do{rt}{\cornerborderedcell{rt}} +% \withcsname\show edges@rt\endcsname +\do{}{\simplecell} %% 2012/09/03 +%% +% %% Another try at `\HVspace' with ... %% 2011/11/10 +%% VERGEBLICH %% 2011/11/12 +% \let\HVSP\HVspace %% 2011/11/11 +% \renewcommand*{\HVspace}[3]{% +% % \TagSurr{div}{\@width{#2} \@height{#3}}{#1}} %% zu flach +% \TagSurr{div}{\@width{#2} \@height{#3}}{% +% \HVSP{#1}{#2}{#3}}} %% 2011/11/11 +% % \SimpleTagSurr{div}{\HVSP{#1}{#2}{#3}}} +% %% % Seiten zu kurz ... + +%% |\cheading{<digit>}{<text>}| as in 'blogdot.sty' %% 2012/05/15 +%% (TODO may crash with 'fifinddo-info'): +\providecommand*{\cheading}[1]{\CLBrk\TagSurr{h#1}{\@align@c}} +%% |\begin{centerpar}| %% 2012/05/15 +% \newenvironment*{centerpar}{<p \@align@c>}{</p>} +%% ... fails with tables in `texmap' ... TODO 2012/09/06 +%% |\imagesource{<graphic-file>}|: %% 2012/09/07 +\newcommand*{\imagesource}[1]{<img src="#1">} +\newcommand*{\deflag}{\imagesource{flag_de.gif}} %% 2012/09/08 +\newcommand*{\ukflag}{\imagesource{flag_uk.gif}} %% 2012/09/08 +%% 2012/09/26: +\newcommand*{\wikilangflagref}[3]{% + \wikilangref{#1}{#3}{\imagesource{flag_#2.gif}}} +\newcommand*{\wikideflagref}{\wikilangflagref{de}{de}} +\newcommand*{\wikienflagref}{\wikilangflagref{en}{uk}} +%% 2012/10/04: +\newcommand*{\wikideenflagref}[2]{% + \wikideflagref{#1}~\wikienflagref{#2}} +\newcommand*{\wikidebookref}{\wikilangbooksref{de}} +\newcommand*{\wikienbookref}{\wikilangbooksref{en}} +\newcommand*{\wikideenbookref}[2]{% + \wikidebookref{#1}{\deflag}~\wikienbookref{#2}{\ukflag}} +\renewcommand*{\acro}{\SimpleTagSurr{abbr}} %% 2012/09/18 +%% +\endinput diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 1512e0bed5b..0d6b5e08544 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -26,7 +26,8 @@ my @TLP_working = qw( aastex abbr abc abraces abstract abstyles accfonts achemso acmconf acro acronym acroterm active-conf actuarialangle - adfathesis addlines adforn adjmulticol adfsymbols adjustbox adobemapping + addlines adfathesis adforn adhocfilelist + adjmulticol adfsymbols adjustbox adobemapping adrconv advdate ae aeguill afthesis aguplus aiaa aichej akktex akletter diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 1c4258530a0..4015d81d1bf 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -2225,6 +2225,7 @@ $standardxmt='\.xmt'; %specialscripts_bin = ( 'a2ping' => '\.pl$', 'accfonts' => 'mkt1font|vpl2', + 'adhocfilelist' => 'adhocfilelist\.sh$', 'authorindex' => 'authorindex$', 'bibexport' => 'bibexport\.sh$', 'bundledoc' => '(arlatex|bundledoc)$', @@ -2901,30 +2902,38 @@ sub doscripts { my $build_tldir = "texk/texlive"; my $build_scriptsdir = "$build_tldir/linked_scripts"; my $builddir = "$BUILDDEST/$build_scriptsdir/$package"; + # + my $scriptsdir = "$DEST/scripts/$package"; + # my @scripts = (); # first do the user-visible bindir entries. $scriptpatt = $specialscripts_bin{$package}; if ($scriptpatt) { - if ($pwd ne "$DEST/scripts/$package") { + if ($pwd ne $scriptsdir) { # in the .tds.zip case, we will already be in the scripts dir. - &install ("$DEST/scripts/$package", $scriptpatt); - &SYSTEM ("chmod a+x $DEST/scripts/$package/*"); + &install ($scriptsdir, $scriptpatt); + &SYSTEM ("chmod a+x $scriptsdir/*"); } # + # determine list of scripts from scriptpatt, since a .tds.zip (e.g., + # adhocfilelist) might have unpacked others into the scripts/ dir. + chomp (@scripts = grep (/$scriptpatt/, `ls $scriptsdir`)); + # # update the copy in Build (the reason we do the bindir ones first). &xmkdir ($builddir); - &SYSTEM ("$CP $DEST/scripts/$package/* $builddir/"); - chomp (@scripts = `cd $builddir && ls`); + for my $s (@scripts) { + &SYSTEM ("$CP $scriptsdir/$s $builddir/"); + } } # then do the ones that go only under scripts/ and not in the bindirs. my $nobin_scriptpatt = $specialscripts_nobin{$package}; if ($nobin_scriptpatt) { - if ($pwd ne "$DEST/scripts/$package") { + if ($pwd ne $scriptsdir) { # in the .tds.zip case, we will already be in the scripts dir. - &install ("$DEST/scripts/$package", $nobin_scriptpatt); - &SYSTEM ("chmod a+x $DEST/scripts/$package/*"); + &install ($scriptsdir, $nobin_scriptpatt); + &SYSTEM ("chmod a+x $scriptsdir/*"); } } diff --git a/Master/tlpkg/tlpsrc/adhocfilelist.tlpsrc b/Master/tlpkg/tlpsrc/adhocfilelist.tlpsrc new file mode 100644 index 00000000000..0ff5c012202 --- /dev/null +++ b/Master/tlpkg/tlpsrc/adhocfilelist.tlpsrc @@ -0,0 +1 @@ +binpattern f bin/${ARCH}/adhocfilelist diff --git a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc index c0c4dafa88a..31dd1b1b9d0 100644 --- a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc @@ -6,6 +6,7 @@ longdesc programming, patgen, and the TeX Works Editor. depend collection-basic depend a2ping +depend adhocfilelist depend asymptote depend bibtex8 depend bibtexu |