From ed7f9d1b31e010c54e353fd28da8a1fca34ee51f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 21 Oct 2012 00:05:13 +0000 Subject: new script adhocfilelist (20oct12), and handle both bin and nobin scripts in .tds.zip git-svn-id: svn://tug.org/texlive/trunk@28038 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/texk/texlive/linked_scripts/Makefile.am | 1 + .../source/texk/texlive/linked_scripts/Makefile.in | 1 + .../linked_scripts/adhocfilelist/adhocfilelist.sh | 212 ++++++ .../texk/texlive/linked_scripts/tetex/updmap.pl | 11 +- Master/bin/alpha-linux/adhocfilelist | 1 + Master/bin/amd64-freebsd/adhocfilelist | 1 + Master/bin/amd64-kfreebsd/adhocfilelist | 1 + Master/bin/armel-linux/adhocfilelist | 1 + Master/bin/i386-cygwin/adhocfilelist | 1 + Master/bin/i386-freebsd/adhocfilelist | 1 + Master/bin/i386-kfreebsd/adhocfilelist | 1 + Master/bin/i386-linux/adhocfilelist | 1 + Master/bin/i386-solaris/adhocfilelist | 1 + Master/bin/mipsel-linux/adhocfilelist | 1 + Master/bin/powerpc-aix/adhocfilelist | 1 + Master/bin/powerpc-linux/adhocfilelist | 1 + Master/bin/sparc-solaris/adhocfilelist | 1 + Master/bin/universal-darwin/adhocfilelist | 1 + Master/bin/x86_64-darwin/adhocfilelist | 1 + Master/bin/x86_64-linux/adhocfilelist | 1 + Master/bin/x86_64-solaris/adhocfilelist | 1 + .../doc/support/adhocfilelist/RELEASE.txt | 30 + .../doc/support/adhocfilelist/SrcFILEs.txt | 19 + .../doc/support/adhocfilelist/adhocfilelist.htm | 524 +++++++++++++++ .../doc/support/adhocfilelist/makehtml.log | 142 ++++ .../scripts/adhocfilelist/adhocfilelist.sh | 212 ++++++ .../texmf-dist/scripts/adhocfilelist/herelist.sh | 4 + .../source/adhocfilelist/adhocfilelist.tex | 515 ++++++++++++++ .../texmf-dist/source/adhocfilelist/srcfiles.tex | 29 + Master/texmf-dist/source/adhocfilelist/texblog.fdf | 736 +++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 3 +- Master/tlpkg/libexec/ctan2tds | 25 +- Master/tlpkg/tlpsrc/adhocfilelist.tlpsrc | 1 + Master/tlpkg/tlpsrc/collection-binextra.tlpsrc | 1 + 34 files changed, 2469 insertions(+), 14 deletions(-) create mode 100755 Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh create mode 120000 Master/bin/alpha-linux/adhocfilelist create mode 120000 Master/bin/amd64-freebsd/adhocfilelist create mode 120000 Master/bin/amd64-kfreebsd/adhocfilelist create mode 120000 Master/bin/armel-linux/adhocfilelist create mode 120000 Master/bin/i386-cygwin/adhocfilelist create mode 120000 Master/bin/i386-freebsd/adhocfilelist create mode 120000 Master/bin/i386-kfreebsd/adhocfilelist create mode 120000 Master/bin/i386-linux/adhocfilelist create mode 120000 Master/bin/i386-solaris/adhocfilelist create mode 120000 Master/bin/mipsel-linux/adhocfilelist create mode 120000 Master/bin/powerpc-aix/adhocfilelist create mode 120000 Master/bin/powerpc-linux/adhocfilelist create mode 120000 Master/bin/sparc-solaris/adhocfilelist create mode 120000 Master/bin/universal-darwin/adhocfilelist create mode 120000 Master/bin/x86_64-darwin/adhocfilelist create mode 120000 Master/bin/x86_64-linux/adhocfilelist create mode 120000 Master/bin/x86_64-solaris/adhocfilelist create mode 100644 Master/texmf-dist/doc/support/adhocfilelist/RELEASE.txt create mode 100644 Master/texmf-dist/doc/support/adhocfilelist/SrcFILEs.txt create mode 100644 Master/texmf-dist/doc/support/adhocfilelist/adhocfilelist.htm create mode 100644 Master/texmf-dist/doc/support/adhocfilelist/makehtml.log create mode 100755 Master/texmf-dist/scripts/adhocfilelist/adhocfilelist.sh create mode 100755 Master/texmf-dist/scripts/adhocfilelist/herelist.sh create mode 100644 Master/texmf-dist/source/adhocfilelist/adhocfilelist.tex create mode 100644 Master/texmf-dist/source/adhocfilelist/srcfiles.tex create mode 100644 Master/texmf-dist/source/adhocfilelist/texblog.fdf create mode 100644 Master/tlpkg/tlpsrc/adhocfilelist.tlpsrc 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 @@ + + + + + List LaTeX file infos according to command line + + + + + + + +

adhocfilelist — + + + + +
+ Listing LaTeX Source File Infos
According to Command Line

+ +

+ +[ abstract | +overview | +requirements | +installing | +related | +background | +customize | +idea/thanks ]  +[ reload ] + + + +

Abstract.

+adhocfilelist.sh is a shell script with command line options +and parameters that displays ⟨info⟩ for files ⟨file⟩ +on screen that (i) are indicated on the command line and +(ii) contain \ProvidesFile{file}[info], +\ProvidesPackage{file}[info], +or \ProvidesClass{file}[info]. +There is one line for each file, formatted about as with LaTeX’s +\listfiles. This formatting can be varied, and the output may +additionally be saved in a plain text file. The files ⟨file⟩ +are either (a) listed explicitly, separated by commas, or +(b) they are gathered by the Unix find utility. +For the latter, 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 filedate “consistency checks” +even with XeTeX (where \pdffilemoddate +is unavailable). +

+The package may thus be considered an extension of the +latexfileversion (Harald Harders) +and typeoutfileinfo packages +that display ⟨info⟩ for a single file ⟨file⟩. +Moreover, it is a somewhat simplified interface to the packages +myfilist, longnamefilelist, +nicefilelist, and filedate. + +

Overview of command line contents.

+The general structure of a command line using adhocfilelist is +
+call +options +files + +
+The three parts are as follows: +
+
call
+This is either +
    + +
  • pathadhocfilelist.sh +where ⟨path⟩ is “./” or something, +depending on where you place the file adhocfilelist.sh, +or on your use of symbolic links, +the environment variable PATH, +or +
  • +
  • an alias for +⟨pathadhocfilelist.sh. +
  • +
+
options
+ +Some options “switch into find mode”, +affecting the interpretation of files, marked by “(f)”. +Their description may be inaccurate here, +understanding the details may require some knowledge of find +(see “background” below). +Some options have one parameter, some have none. +
+
-0
(f) +List files modified “today” only (unless …) +
-a integer
(f) +List files modified ⟨integer⟩ days ago only +(unless ⟨integer⟩ starts with “-” or “+” …) +
-c
(f) +Compare date according to \Provides... content with modification +date using filedate additionally. +

+TODO: The restriction to find (v0.7) is temporary, removing it is +straightforward, but I may have to postpone this for a while. +

-f
(f) +Add ⟨files⟩ to other find criteria, +replacing internal default settings +(as opposed to -g). +For allowing certain file name extensions such as .tex, +the star must be escaped and ⟨files⟩ best +has outer single quotes, such as +
+ +'-follow ( -name \*.tex -o -name \*.sty )' + +
+
-F find-file
(f) +Add content of the filefind-file⟩ to other find criteria. +As compared with -f, stars must be escaped, +while other quoting seems not to be needed in ⟨files⟩. +
-g
(f) +Add ⟨files⟩ to other find criteria, +among which some hopefully “generally useful” +are added from within adhocfilelist.sh. +As to quoting/escaping in ⟨files⟩, +this is as with -f. +
-h
+Display an overview (brief version of present one, “help”), +and ignore everything else of the command line. +
-i tex-file
+Prepend (“input”) contents of the file ⟨tex-file⟩ +to the temporary .tex file that adhocfilelist.sh +generates internally — to get more individual settings +than adhocfilelist.sh’s internal defaults +(which are replaced by the content of ⟨tex-file⟩) +and than the options -l and -n provide. +
-l integer
+Format list by the longnamefilelist package +where ⟨integer⟩ is the maximum length of base +filenames in the list (about as …) +
-n filename
+Format list by the nicefilelist package +where ⟨filename⟩ is the longest base filename (or a template). + +If base filenames do not have more than eight characters, +you can use “-n .” as a shorthand for +“-n filename” with a ⟨filename⟩ of eight characters. +
-o txt-file
+Save the displayed file info list (“output”) +as plain text file ⟨txt-file⟩ also. +
-x
+Use xelatex rather than latex (v0.7). — The +idea for this has been that the script should provide +“date consistency” checks (option -c) +“even with XeTeX where \pdffilemoddate is not available.” However, the script has used latex +before v0.7 which will run pdfTeX usually, +even when the user prefers typesetting with XeTeX, +and anyway it does not rely on \pdffilemoddate. +The real problem with filedate and XeTeX is that +a reliable consistency check does not work +while typesetting with XeTeX. But filedate can be +used for “TeX scripts” too, i.e., without typesetting, +and that is what the present package does. +The present package does not provide consistency checks +while typesetting with XeTeX. +It should not be make a difference whether the “TeX script” +that adhocfilelist generates is run with XeTeX or with pdfTeX. +So the only “special XeTeX support” from here probably +will be the present -x in case latex +does not work, maybe because pdfTeX or anything implementing +the latex command is missing on the user’s (unusual) installation. + +
+Options can not be “contracted” like “-0f” +(too difficult with processing [parts of] find +expressions — -name …). +
files
+Whenever an option “switches into find mode”, +⟨files⟩ is interpreted as part of a command line for the +find utility. Otherwise, ⟨files⟩ is expected to be a +comma-separated list of filenames (for LaTeX source files), +whose extension .tex (if so) may be omitted — unless -h … + +
+ +

Requirements.

+
+
System
+The package will work on a 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 +contact-ednotes.sty.de.vu. +

+Actually the package was developed with the GNU bash +shell and the +GNU find utility on +Ubuntu 10.04. +

+My impression is in fact +(looking at The Open Group’s +man page +for find) +that in order to use the find options +-0, -a, -f, -F, +and -g, the GNU version of find is required, +because action -printf is used and essential (difficult without). +

LaTeX
+The package requires that the fileinfo bundle is installed. +In order to use the -l option, +longnamefilelist must be installed additionally. +In order to use the -n option, +nicefilelist must be installed additionally. +In order to use the -c option, +filedate must be installed additionally. + +
+ +

Installing.

+No more advice than implied by the section on “call” +can be given right now. + +

Related packages.

+The file +latexfileinfo_pkgs.htm +describes related packages available on + +CTAN +in some detail. +The most obvious ones have been mentioned above already. + +

+The next section indicates details that may be +improve understanding the LaTeX-related command line options +-i, -l, and -n. + +

Background.

+For understanding the options -0, -a, +-f, -F, and -g, +knowing something about the find utility +and the present interface to it may be helpful. +The options -i, -l, -n, +and -o refer to the myfilist package +and its enhancements by the packages longnamefilelist +and nicefilelist, and it may be helpful to know +what a “myfilist script” is. +
+
find
+We are describing the interface to find. +To learn about the contents of a find command line, +the Wikipedia article may be a good start, +next enter “man find” in the terminal, finally see the +GNU manual. +

+adhocfilelist.sh forms the following find command line +in order to get a comma-separated list of files: +

+find +prefix +files +day +-printf ,%f + +
+These parts are as follows: +
+
prefix
+is +
+-follow -maxdepth 1 ( -name \*.tex -o more ) + +
+where ⟨more⟩ in addition to files with extension .tex allows +those with extensions .sty, .cfg, .cls, .dtx, +.def, and .fd — unless with options +
+
-f
+where ⟨prefix⟩ is empty +
-F find-file
+where ⟨prefix⟩ is the content of the file ⟨find-file⟩. + +
+Option -g is not required with options +-0 and -a that switch into “find mode” +too without deleting ⟨prefix⟩, it is just a way to switch +into find mode otherwise without deleting ⟨prefix⟩. +
files
+is as in the overview. +
day
+is empty, unless -0 sets it to +
+-daystart -mtime 0 + +
+or -a integer sets it to +
+-daystart -mtime integer + +
+It follows that +
    + +
  • -0 has the same effect as +(is just a shorthand for) -a 0 +
  • +
  • if ⟨integer⟩ is “-⟨digits”, +files modified sincedigits⟩ days ago +are allowed +
  • +
+—cf. GNU documentation on +age ranges. +

+A tricky little thing here is that ⟨day⟩ +may be expected to be a restriction, +an additional criterion that a LaTeX source file +must meet to be listed. However, if ⟨files⟩ ends on +-o for “or”, ⟨day⟩ becomes an +“additional possibility” for being listed … +

+TODO: This is different with option -c +(v0.7) whose functionality also may change soon. + +

+
myfilist
+The LaTeX package myfilist provides some commands +to control the input of LaTeX’s \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 +
+\ReadFileInfos{comma-separated-list-of-filenames} + +
+Essentially this is the command which the list of filenames that +was ⟨files⟩ or that is produced by find is passed to. +The list is generated by running a .tex file that contains +these commands. Such a file has been called a +“myfilist script” here. +More precisely, such a script is (mostly) structured as follows: +
+loading-settings
+collecting-infos
+writing-to-screen+file + +
+These parts are as follows: +
+
loading-settings
+at least issues \RequirePackage{myfilist}. +By default, adhocfilelist.sh produces (roughly) +
+\RequirePackage{myfilist}\EmptyFileList +adhoc-adjust + +
+for ⟨loading-settings⟩ where ⟨adhoc-adjust⟩ +adds technical details needed for use with adhocfilelist. +(Final warnings are suppressed by a command \NoBottomLines, +this might be changed in the future.) +

+It has been a disadvantage of LaTeX’s \listfiles functionality +that the resulting plain text file list looked good with base filenames +only that had up to eight characters. longnamefilelist +made up for this disadvantage, and nicefilelist +has additional refinements of aligning the list, proposed by +Martin Münch. To use them with +myfilist, they are loaded in ⟨loading-settings⟩ +as well, and additional settings for column widths may be added there too. +This is what options -l and -n do. +Besides in their own PDF documentation (that you find by following the +links), the packages are also briefly described in that file +latexfileinfo_pkgs.htm +to be read by a web browser. +

+However, more refined settings may be needed that cannot +be controlled by adhocfilelist’s interface so far. +The option -i tex-file +has the effect that ⟨loading-settings⟩ becomes +

+⟨tex-file-content⟩ +⟨adhoc-adjust⟩ + +
+where ⟨tex-file-content⟩ is the content of the +(.tex file) ⟨tex-file⟩ (before \endinput). +
collecting-infos
+essentially is that +
+\ReadFileInfos{comma-separated-list-of-filenames} + +
+mentioned above. +
writing-to-screen+file
+essentially is \ListFileInfos or +
+\ListFileInfos[txt-file] + +
+With adhocfilelist, that “[txt-file]” +is inserted on option -o txt-file. + +
+However, myfilist has been extended at the occasion +of preparing adhocfilelist so that the sections +⟨collecting-infos⟩ and ⟨writing-to-screen+file⟩ +may “collapse” into a single command starting with +\ReadListFileInfos. + +
+ +

General customization.

+In general, options -F find-file and +-i tex-file will be needed +to deal with certain directories ⟨dir⟩. +Two ways come to my mind how to simplify this situation. +
    + +
  1. find-file⟩ and ⟨tex-file⟩ may be +in the same directory ⟨dir⟩, and the latter may es well +contain an executable (chmod) +script file ⟨script-file⟩ +with the following content: +
    +call +-F find-file +-i tex-file +more +$@ + +
    +Here ⟨call⟩ is as in the overview, +and ⟨more⟩ may be empty or something else that you +want to have fixed, such as -o txt-file. +

    +Then you can vary additional options/parameters +⟨add⟩ by +

    +./script-file add + +
    +
  2. +
  3. If you have several directoriesdir⟩ as before +of a certain “type”, +such that they can share the settings in +⟨find-file⟩ and ⟨tex-file⟩, +you can place the latter in some separate (“central”) +directory ⟨center⟩ and define an alias +as follows: +
    + +alias name='call +-F center/find-file +-i center/tex-file +more' + +
    +(Note that there is no “$@”. +“dir/tex-file” could be replaced by +mere “tex-file” if that ⟨tex-file⟩ +is installed like a TeX package.) +

    +Then you can vary additional options/parameters +⟨add⟩ by +

    +name add + +
    +
  4. +
+ +

The idea/motivation; acknowledgements.

+One day (most probably 2012-09-27), +I wanted to check the \ProvideFile contents of two +files I knew I had edited that day. +On 2012-09-26, I had thought about simplifying typeoutfileinfo +by using a single command line without any piping. +I realized that LaTeX s \typeout could be replaced by +\ReadFileInfos from myfilist. +Therefore “ad hoc”. +

+Maybe the same day later, +I realized that I could no longer remember which files I changed that day. +In July I had discovered $(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. +

+Only then I learnt real shell programming by googling, kind of chance, +and most helpfully from Chapter 3 of Jürgen Wolfs +OpenBook +from Galileo Press +(getopts — bad here, however) +and Prof. Jürgen Plates +lecture notes +(“Optionen ermitteln” — “by hand”). +

+Then quoting/escaping for filename extensions with find became difficult … +Quotation marks and “positional parameters” with the shell are very +difficult/painful — TeX is more straightforward … +On the other hand it is nice that the entire command line with all the +“parameters” is gobbled. + +


+

Last revised 2012-10-19 © Uwe Lück
(using blog.sty)
License: LPPL 1.3c or later, author-maintained.

+

[→ top of page ]

+ + + + + +
+ + + 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 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 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 +

%%% \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). +

+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 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. +

+ \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}. +

+ 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. +

+ 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). +

+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}. +

+ \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.} +

+ 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 ... +

+ \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.) +

+ 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. +

+ 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}. +

+ \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.) +

+ \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}". +

+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. +

+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"). +

+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}{% +% } %% \@bgcolor 2011/10/03 + % + } %% 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 + \CLBrk +} +%% requires: +% \newcommand*{\plainbody}{} +\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}{\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}{} %% 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]{

    } +\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 + {
      } + %% <- TODO mit CSS-inherit auf Eintraege uebertragen? 2012/01/12 + {\endenumerate} + +\newenvironment{done}{}{} %% 2011/08/15 +\newcommand*{\Dots}{~\dots\ } %% 2011/08/24 +%% 2012/04/01 from autrado.fdf (2012/01/23): +\newenvironment*{codelines}{\quote} + {\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} +% \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{}| %% 2012/06/07 +\newcommand*{\crspan}[1]{% + \endTd\endtr\starttr\startTd{\@colspan{#1}}} +%% 2012/06/12: +%% |\Crspan{}{}| +\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{}{}| 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}{

      }{

      } +%% ... fails with tables in `texmap' ... TODO 2012/09/06 +%% |\imagesource{}|: %% 2012/09/07 +\newcommand*{\imagesource}[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 -- cgit v1.2.3