summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-07-26 00:11:51 +0000
committerKarl Berry <karl@freefriends.org>2008-07-26 00:11:51 +0000
commit65f8da71e44b1576ce22edb029a75ef670d1c969 (patch)
tree4a2cd4b7d28f09e39d606d549295afe0e689142a
parentc331ebf222e05ae278abb62bfa66cd223cf68a0c (diff)
latex-tds update (25jul08)
git-svn-id: svn://tug.org/texlive/trunk@9777 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/texmf-dist/source/latex/latex-tds/build.pl321
-rwxr-xr-xMaster/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl13
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/patch/logmac.tex.diff134
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/patch/trapman.tex.diff204
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/patch/tripman.tex.diff215
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/patch/webman.tex.diff340
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/readme.txt68
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/tex/errata.all100
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/tex/errata.drv51
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/tex/errorlog.drv58
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/tex/knuth.drv294
-rw-r--r--Master/texmf-dist/source/latex/latex-tds/tex/tools.tex2
12 files changed, 1780 insertions, 20 deletions
diff --git a/Master/texmf-dist/source/latex/latex-tds/build.pl b/Master/texmf-dist/source/latex/latex-tds/build.pl
index 8b3f6d8c52d..0e839c4c929 100755
--- a/Master/texmf-dist/source/latex/latex-tds/build.pl
+++ b/Master/texmf-dist/source/latex/latex-tds/build.pl
@@ -4,8 +4,8 @@ $^W=1;
my $prj = 'latex-tds';
my $file = 'build.pl';
-my $version = cvs('$Revision: 1.122 $');
-my $date = cvs('$Date: 2008/07/07 10:59:07 $');
+my $version = cvs('$Revision: 1.134 $');
+my $date = cvs('$Date: 2008/07/25 13:50:31 $');
my $author = 'Heiko Oberdiek';
my $copyright = "Copyright 2006-2008 $author";
chomp(my $license = <<"END_LICENSE");
@@ -43,7 +43,14 @@ my @required_list = (
'graphics',
'tools'
);
-my @pkg_list = ('base', @required_list, $prj, 'source', 'tds');
+my @pkg_list = (
+ 'base',
+ @required_list,
+ $prj,
+ 'source',
+ 'tds',
+ 'knuth'
+);
my $zip_comment = <<'END_ZIP_COMMENT';
**************************************************
@@ -71,6 +78,7 @@ my $jar_multivalent = "$cwd/$dir_lib/Multivalent20060102.jar";
my $file_zip_comment = "$cwd/$dir_build/zip-comment.txt";
my $file_tmp = "$cwd/$dir_build/tmp.pdf";
my $file_tmp_o = "$cwd/$dir_build/tmp-o.pdf";
+my $file_ctan_distrib = "$cwd/$prj.zip";
my $file_ziptimetree = get_perl_script('ziptimetree');
my $file_adjust_checksum = get_perl_script('adjust_checksum');
@@ -92,11 +100,13 @@ my $prg_mv = 'mv';
my $prg_patch = "patch";
my $prg_pdflatex = 'pdflatex';
my $prg_pdflatextds = "pdflatex -fmt=$cwd/$dir_build/latex-tds";
+my $prg_pdftex = "pdftex";
my $prg_rm = "rm";
my $prg_rsync = "rsync";
my $prg_sed = "sed";
my $prg_sort = "sort";
my $prg_unzip = 'unzip';
+my $prg_weave = 'weave';
my $prg_wget = 'wget';
my $prg_zip = 'zip';
my $prg_ziptimetree = $file_ziptimetree;
@@ -152,7 +162,7 @@ info("Build modules: @list_modules");
### Format generation
if (@list_modules > 0) {
section('Format generation');
-
+
ensure_directory($dir_build);
chdir $dir_build;
run("$prg_pdflatex -ini -etex ../tex/latex-tds.ini");
@@ -163,13 +173,18 @@ if (@list_modules > 0) {
{
section('Download');
- sub download_ctan ($$) {
+ sub download_ctan_file ($$) {
my $file = shift;
my $ctan_path = shift;
$ctan_path .= '/' if $ctan_path ne '';
ensure_directory($dir_incoming_ctan);
- download("$dir_incoming_ctan/$file.zip",
- "$url_ctan/$ctan_path$file.zip");
+ download("$dir_incoming_ctan/$file",
+ "$url_ctan/$ctan_path$file");
+ }
+ sub download_ctan ($$) {
+ my $file = shift;
+ my $ctan_path = shift;
+ download_ctan_file("$file.zip", $ctan_path);
}
sub download_ams ($$) {
my $file = shift;
@@ -203,6 +218,13 @@ if (@list_modules > 0) {
download_ctan('amsrefs', 'macros/latex/contrib');
download_ctan('psnfss', 'macros/latex/required');
download_ctan('tds', '');
+ download_ctan('texware', 'systems/knuth/dist');
+ download_ctan('mfware', 'systems/knuth/dist');
+ download_ctan('etc', 'systems/knuth/dist');
+ download_ctan('web', 'systems/knuth/dist');
+ download_ctan('tex', 'systems/knuth/dist');
+ download_ctan('mf', 'systems/knuth/dist');
+ download_ctan('errata', 'systems/knuth/dist');
download_ams('amslatex', '');
download_ams('amsrefs-tds', 'amslatex/amsrefs');
download_ams('amsrefs-ctan', 'amslatex/amsrefs');
@@ -216,13 +238,16 @@ section('Remove previous build');
my $distribfile = "$dir_distrib/$pkg.zip";
unlink $distribfile if -f $distribfile;
}
+ if ($opt_all) {
+ unlink $file_ctan_distrib if -f $file_ctan_distrib;
+ }
}
### Unpack
section('Unpacking');
{
my $texmf_ams = "$dir_build/amslatex/texmf";
-
+
sub unpacking ($$$) {
my $pkg = shift;
my $zipfile = shift;
@@ -249,9 +274,16 @@ section('Unpacking');
my $dir = "$dir_build/psnfss";
$modules{'psnfss'} or return 1;
unpacking('psnfss',
- "$dir/$name.zip",
+ "$dir/$name.zip",
"$dir/texmf");
}
+ sub unpack_knuth ($) {
+ my $pkg = 'knuth';
+ my $dir = "$dir_build/$pkg";
+ my $zipfile = "$dir_incoming_ctan/$_[0].zip";
+ $modules{'knuth'} or return 1;
+ run("$prg_unzip -j $zipfile -d$dir");
+ }
ensure_directory($dir_build);
unpack_ctan('base');
@@ -264,9 +296,20 @@ section('Unpacking');
"$dir_build/amslatex");
unpack_ams('amslatex');
}
+ -f "$dir_build/amslatex/classes/instr-l.tex" or
+ run("$prg_unzip -j $dir_incoming_ams/amslatex.zip"
+ . " source/latex/amscls/instr-l.tex"
+ . " -d $dir_build/amslatex/classes/");
unpack_psnfss('lw35nfss');
unpack_psnfss('freenfss');
unpack_ctan('tds');
+ unpack_knuth('texware');
+ unpack_knuth('mfware');
+ unpack_knuth('etc');
+ unpack_knuth('web');
+ unpack_knuth('tex');
+ unpack_knuth('mf');
+ unpack_knuth('errata');
}
### Patches
@@ -283,7 +326,27 @@ section('Patches');
run("$prg_checksum psfonts.dtx");
chdir $cwd;
}
-
+
+ if ($modules{'knuth'}) {
+ chdir "$dir_build/knuth";
+ my @files = qw[
+ trip.fot
+ tripin.log
+ trip.log
+ trip.typ
+ ];
+ run("$prg_chmod -x @files");
+ @files = qw[
+ trap.fot
+ trapin.log
+ trap.log
+ trap.pl
+ trap.typ
+ ];
+ run("$prg_chmod -x @files");
+ chdir $cwd;
+ }
+
# if ($modules{'babel'}) {
# map { patch("babel/$_"); } qw[
# ];
@@ -302,6 +365,15 @@ section('Install source');
install "texmf/source/$fmt/$pkg", @list;
chdir $cwd;
}
+ sub install_generic_source ($$@) {
+ my $pkg = shift;
+ my $dir = shift;
+ my @list = @_;
+ $modules{$pkg} or return 1;
+ chdir "$dir_build/$pkg";
+ install "texmf/source/$dir", @list;
+ chdir $cwd;
+ }
sub install_source ($@) {
my $pkg = shift;
my @list = @_;
@@ -355,6 +427,65 @@ section('Install source');
tds.sed
tds.tex
]);
+ install_generic_source('knuth', 'knuth/texware', qw[
+ dvitype.web
+ pltotf.web
+ pooltype.web
+ tftopl.web
+ ]);
+ install_generic_source('knuth', 'knuth/mfware', qw[
+ gftodvi.web
+ gftype.web
+ gftopk.web
+ mft.web
+ ]);
+ install_generic_source('knuth', 'knuth/etc', qw[
+ vptovf.web
+ vftovp.web
+ ]);
+ install_generic_source('knuth', 'knuth/web', qw[
+ tangle.web
+ weave.web
+ webman.tex
+ ]);
+ install_generic_source('knuth', 'knuth/tex', qw[
+ glue.web
+ tex.web
+ trip.fot
+ tripin.log
+ trip.log
+ tripman.tex
+ tripos.tex
+ trip.pl
+ trip.tex
+ trip.typ
+ ]);
+ install_generic_source('knuth', 'knuth/mf', qw[
+ mf.web
+ trap.fot
+ trapin.log
+ trap.log
+ trap.mf
+ trap.pl
+ trap.typ
+ trapman.tex
+ ]);
+ install_generic_source('knuth', 'knuth/errata', qw[
+ errata.one
+ errata.two
+ errata.three
+ errata.four
+ errata.five
+ errata.six
+ errata.seven
+ errata.eight
+ errata.nine
+ errata.ten
+ errata.eleven
+ errata.tex
+ errorlog.tex
+ logmac.tex
+ ]);
}
### Patch source files after source install
@@ -362,7 +493,7 @@ section('Paches after source install');
{
if ($modules{'base'}) {
chdir "$dir_build/base";
-
+
# ltdirchk.dtx must be patched to fool it in
# not having texsys.cfg
{
@@ -378,7 +509,7 @@ section('Paches after source install');
close(OUT);
close(IN);
}
-
+
# base: TDS:makeindex/base -> TDS:makeindex/latex
{
my $file_ins = 'docstrip.ins';
@@ -393,9 +524,22 @@ section('Paches after source install');
close(OUT);
close(IN);
}
-
+
chdir $cwd;
}
+
+ if ($modules{'knuth'}) {
+
+ foreach my $file (qw[
+ webman.tex
+ tripman.tex
+ trapman.tex
+ logmac.tex
+ ]) {
+ run("$prg_patch $dir_build/knuth/$file <$dir_patch/$file.diff");
+ }
+
+ }
}
### Docstrip
@@ -573,6 +717,22 @@ section('Install tex doc');
chdir $cwd;
}
+ if ($modules{'knuth'}) {
+ chdir "$dir_build/knuth";
+ install('texmf/doc/knuth/tex', qw[
+ texbook.tex
+ ]);
+ install('texmf/doc/knuth/mf', qw[
+ mfbook.tex
+ ]);
+ install('texmf/doc/knuth/errata', qw[
+ cm85.bug
+ mf84.bug
+ tex82.bug
+ ]);
+ chdir $cwd;
+ }
+
my $dummy = <<'END_DUMMY';
if ($modules{'babel'}) {
chdir "$dir_build/babel";
@@ -1045,6 +1205,128 @@ END_TEXT
chdir $cwd;
}
+### Generate documentation for knuth
+if ($modules{'knuth'}) {
+ section('Documentation: knuth');
+
+ chdir "$dir_build/knuth";
+
+ my $knuth_drv = "$cwd/$dir_tex/knuth.drv";
+
+ sub generate_web_doc ($@) {
+ my $dir = shift;
+ my @list = @_;
+
+ foreach my $entry (@list) {
+ symlink $knuth_drv, "$entry.drv";
+ run("$prg_weave $entry.web")
+ unless $entry eq 'webman'
+ or $entry eq 'tripman'
+ or $entry eq 'trapman';
+ run("$prg_pdftex -draftmode $entry.drv");
+ run("$prg_pdftex $entry.drv");
+ install_gen_pdf('knuth', $dir, $entry);
+ }
+ }
+
+ generate_web_doc('texware', qw[
+ dvitype
+ pltotf
+ pooltype
+ tftopl
+ ]);
+ generate_web_doc('mfware', qw[
+ gftodvi
+ gftype
+ gftopk
+ mft
+ ]);
+ generate_web_doc('etc', qw[
+ vptovf
+ vftovp
+ ]);
+ generate_web_doc('web', qw[
+ tangle
+ weave
+ webman
+ ]);
+ generate_web_doc('tex', qw[
+ glue
+ tex
+ ]);
+ generate_web_doc('mf', qw[
+ mf
+ ]);
+
+ run("$prg_pdftex tripman");
+ install_gen_pdf('knuth', 'tex', 'tripman');
+
+ run("$prg_pdftex trapman");
+ install_gen_pdf('knuth', 'mf', 'trapman');
+
+ symlink "$cwd/$dir_tex/errorlog.drv", 'errorlog.drv';
+ run("$prg_pdftex errorlog.drv");
+ install_gen_pdf('knuth', 'errata', 'errorlog');
+
+ # last bug date is used for errata.tex's today
+ {
+ open(IN, '<', 'errata.tex') or die "$error Cannot open `errata.tex'!\n";
+ my @lines = <IN>;
+ close(IN);
+
+ my ($day, $month, $year) = (0, 0, 0);
+ sub xdays {
+ my $y = shift;
+ my $m = shift;
+ $m -= 1;
+ my $d = shift;
+ return $y*12*31 + $m*31 +$d;
+ }
+ foreach $_ (@lines) {
+ next unless /^\\bugonpage/;
+ next unless m|\((\d\d)/(\d\d)/(\d\d)\)\s*$|;
+ my ($d, $m, $y) = ($2, $1, $3);
+ $y += 1900;
+ $y += 100 if $y < 1970;
+ if (xdays($y, $m, $d) > xdays($year, $month, $day)) {
+ $year = $y;
+ $month = $m;
+ $day = $d;
+ }
+ }
+
+ open(OUT, '>', 'errata.new') or die "$error Cannot open `errata.new'!\n";
+ print OUT "\\year=$year\n";
+ print OUT "\\month=$month\n";
+ print OUT "\\day=$day\n";
+ print OUT "\\input errata.tex\n";
+ print OUT "\\endinput\n";
+ close(OUT);
+ }
+ foreach my $entry (qw[
+ one
+ two
+ three
+ four
+ five
+ six
+ seven
+ eight
+ nine
+ ten
+ eleven
+ new
+ ]) {
+ symlink "$cwd/$dir_tex/errata.drv", "errata_$entry.tex";
+ run("$prg_pdftex errata_$entry.tex");
+ }
+ symlink "$cwd/$dir_tex/errata.all", 'errata.all';
+ run("$prg_pdftex errata.all");
+ install_gen_pdf('knuth', 'errata', 'errata');
+
+ chdir $cwd;
+}
+
### Module source
if ($modules{'source'}) {
section('Module source');
@@ -1108,6 +1390,16 @@ section('Distrib');
print "!!! Warning: Missing TDS tree for `$pkg'!\n";
}
}
+
+ if ($opt_all) {
+ chdir $dir_distrib;
+ my $cmd = "$prg_zip -0 $file_ctan_distrib readme.txt";
+ for my $pkg (sort @pkg_list) {
+ $cmd .= " $pkg.tds.zip";
+ }
+ run($cmd);
+ chdir $cwd;
+ }
}
### Display result
@@ -1123,6 +1415,9 @@ section('Result');
print "!!! Warning: Missing distribution for `$pkg'!\n";
}
}
+ if ($opt_all) {
+ system("$prg_ls -l $file_ctan_distrib");
+ }
# display time
my $time_diff = time - $time_start;
diff --git a/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl b/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl
index e690fb84057..e9c2903699e 100755
--- a/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl
+++ b/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl
@@ -5,7 +5,7 @@ $^W=1; # turn warning on
#
# adjust_checksum.pl
#
-# Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+# Copyright (C) 2006-2008 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
#
# This work may be distributed and/or modified under the
# conditions of the LaTeX Project Public License, either
@@ -26,10 +26,10 @@ $^W=1; # turn warning on
#
my $file = "adjust_checksum.pl";
my $program = uc($&) if $file =~ /^\w+/;
-my $version = "1.3";
-my $date = "2007/09/25";
+my $version = "1.4";
+my $date = "2008/07/16";
my $author = "Heiko Oberdiek";
-my $copyright = "Copyright (c) 2002, 2006, 2007 by $author.";
+my $copyright = "Copyright (c) 2002, 2006-2008 by $author.";
#
# Reqirements: Perl5, Linux
# History:
@@ -37,6 +37,7 @@ my $copyright = "Copyright (c) 2002, 2006, 2007 by $author.";
# 2006/02/12 v1.1: Fix for \Checksum{0}.
# 2007/06/15 v1.2: -draftmode added.
# 2007/09/25 v1.3: ltxdoc.cfg added to speed up.
+# 2008/07/16 v1.4: Use of package `syntonly' for speed.
#
my $prg_latex = 'latex -draftmode';
@@ -115,7 +116,9 @@ close(OUT);
### run latex
print "*** Running LaTeX ...\n";
-system("(cd $tempdir; $prg_latex --interaction=batchmode $latexfile)");
+my $argcode = "'\\AtBeginDocument{\\usepackage{syntonly}\\syntaxonly}"
+ . "\\input{$latexfile}'";
+system("(cd $tempdir; $prg_latex --interaction=batchmode $argcode)");
my $logfile = $tempdtxfile;
$logfile =~ s/\.[^\.]+$//;
diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/logmac.tex.diff b/Master/texmf-dist/source/latex/latex-tds/patch/logmac.tex.diff
new file mode 100644
index 00000000000..7541ceff009
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/patch/logmac.tex.diff
@@ -0,0 +1,134 @@
+*** logmac.tex.org 1991-10-19 05:33:44.000000000 +0100
+--- logmac.tex 2008-07-11 01:00:43.000000000 +0200
+***************
+*** 42,54 ****
+ \catcode`\ =12 % tabs are ordinary characters
+ \catcode`@=\active % @ signs denote a TeX section reference
+ {\obeylines \gdef@#1
+! {\global\setbox\texsec=\hbox{\S$#1$}\lookahead}}
+ \chardef\@=`\@
+ {\catcode`X=\active \gdef X{\X}}
+ \def\X{{\eightbf X}}
+ \def\lightX{\hbox{\eightrm X}}
+! \def\>#1\relax{\global\setbox\predec=\hbox{\let\X=\lightX
+! $#1\mapsto{}$}} % previous bug ref
+
+ \def\checkvalid#1{\expandafter\ifx\csname#1!\endcsname\okay\else\invalidcode\fi}
+ \def\okay{\okay}
+--- 42,103 ----
+ \catcode`\ =12 % tabs are ordinary characters
+ \catcode`@=\active % @ signs denote a TeX section reference
+ {\obeylines \gdef@#1
+! {%
+! \global\setbox\texsec=\hbox{%
+! \S$\texlinks{#1}$%
+! }%
+! \lookahead %
+! }%
+! }
+! \def\texlinks#1{%
+! \dotexlinks#1,\END
+! }
+! \def\dotexlinks#1,#2\END{%
+! {%
+! \pdfstartlink attr{%
+! /Border[0 0 0]%
+! } user {%
+! /Subtype/Link%
+! /F 4%
+! /A<<%
+! /S/GoToR%
+! /F(../tex/tex.pdf)%
+! /D(#1)%
+! >>%
+! }\relax
+! \TeXLinkColor #1\Black
+! \pdfendlink
+! }%
+! \ifx\eject#2\eject
+! \else
+! ,%
+! \dotexlinks#2\END
+! \fi
+! }
+! \def\TeXLinkColor{%
+! \pdfliteral{0 0 1 rg}%
+! }
+ \chardef\@=`\@
+ {\catcode`X=\active \gdef X{\X}}
+ \def\X{{\eightbf X}}
+ \def\lightX{\hbox{\eightrm X}}
+! \def\>#1\relax{%
+! \global\setbox\predec=\hbox{%
+! \let\X=\lightX
+! $%
+! \begingroup
+! \def\hbox##1{##1}%
+! \def\eightrm{}%
+! \xdef\linkname{#1}%
+! \endgroup
+! \pdfstartlink attr{/Border[0 0 0]} goto name{\linkname}\relax
+! \LinkColor#1\Black
+! \pdfendlink
+! \mapsto{}$%
+! }%
+! } % previous bug ref
+! \def\LinkColor{\pdfliteral{1 0 0 rg}}
+! \def\Black{\pdfliteral{0 g}}
+
+ \def\checkvalid#1{\expandafter\ifx\csname#1!\endcsname\okay\else\invalidcode\fi}
+ \def\okay{\okay}
+***************
+*** 82,90 ****
+ \global\setbox\code=\hbox to\codesize{\enspace
+ \hskip0pt plus 3fil\rm#1\hskip0pt plus1fil}%
+ \begingroup\rm\catcode`X=\active\itemnumber}
+! \def\itemnumber#1.{\catcode`X=11\setbox0=\hbox to\itemnosize{\bf\hss#1\relax}%
+! \setbox2=\hbox{\bf#1\relax}\ifdim\wd2>\wd0 \setbox0=\box2 \fi
+! \textindent{\hfil\box\predec\box0}}
+ \def\commentline{\fin\afterassignment\begincomment\let\next}
+ \def\begincomment{\begingroup\let\tt=\sltt
+ \let\MF=\slMF\sl\textindent{\hfil\copy\cbox}}
+--- 131,172 ----
+ \global\setbox\code=\hbox to\codesize{\enspace
+ \hskip0pt plus 3fil\rm#1\hskip0pt plus1fil}%
+ \begingroup\rm\catcode`X=\active\itemnumber}
+! \def\itemnumber#1.{%
+! \catcode`X=11 %
+! \setbox0=\hbox to\itemnosize{%
+! \bf\hss#1\relax
+! }%
+! \setbox2=\hbox{\bf#1\relax}%
+! \ifdim\wd2>\wd0 %
+! \setbox0=\box2 %
+! \fi
+! \textindent{%
+! \hfil
+! \box\predec
+! \box0 %
+! \rlap{%
+! \enspace
+! \kern-\parindent
+! \vbox to 0pt{%
+! \kern-2.5ex\relax
+! \def\getnum##1\>##2\END{##1}%
+! \def\eightbf{}%
+! \edef\linkname{\getnum#1\>\END}%
+! \def\firstofone##1{##1}%
+! \edef\linkname{\expandafter\firstofone\linkname}%
+! \expandafter\ifx\csname :\linkname:\endcsname\empty
+! \immediate\write16{%
+! * Warning: Destination `\linkname' already used!%
+! }%
+! \else
+! \expandafter\xdef\csname :\linkname:\endcsname{}%
+! \pdfdest name{\linkname}fitbh\relax
+! \kern2.5ex\relax
+! \fi
+! }%
+! }%
+! }%
+! }
+ \def\commentline{\fin\afterassignment\begincomment\let\next}
+ \def\begincomment{\begingroup\let\tt=\sltt
+ \let\MF=\slMF\sl\textindent{\hfil\copy\cbox}}
diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/trapman.tex.diff b/Master/texmf-dist/source/latex/latex-tds/patch/trapman.tex.diff
new file mode 100644
index 00000000000..f271e42bd56
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/patch/trapman.tex.diff
@@ -0,0 +1,204 @@
+*** trapman.tex.org 1993-09-21 23:41:30.000000000 +0200
+--- trapman.tex 2008-07-10 22:45:58.000000000 +0200
+***************
+*** 24,29 ****
+--- 24,44 ----
+ % if you're unlucky it will appear on a page by itself!
+ {\obeyspaces\global\let =\ }
+
++ \pdfinfo{%
++ /Title(A torture test for METAFONT)%
++ /Author(Donald E. Knuth)%
++ }
++ \pdfcatalog{%
++ /PageLabels<<%
++ /Nums[0<</P(0)>>1<</S/D/St 1>>]%
++ >>%
++ /PageMode/UseOutlines
++ }
++ \pdfpagewidth=7.5in\relax % 8.5in - 2*.5in
++ \pdfhorigin=.5in\relax
++ \pdfpageheight=10in\relax % 11in - 2*.5in
++ \pdfvorigin=.5in\relax
++
+ \output{\shipout\box255\global\advance\pageno by 1} % for the title page only
+ \null
+ \vfill
+***************
+*** 62,69 ****
+ \box255}
+ \global\advance\pageno by 1}
+ \let\runninghead=\mark
+! \outer\def\section#1.{\noindent{\bf#1.}\quad
+! \runninghead{\uppercase{#1} }\ignorespaces}
+
+ \section Introduction.
+ People often think that their programs are ``debugged'' when large applications
+--- 77,121 ----
+ \box255}
+ \global\advance\pageno by 1}
+ \let\runninghead=\mark
+!
+! \newcount\destcount
+! \destcount=1\relax
+!
+! \outer\def\section#1.{%
+! \noindent
+! \vbox to 0pt{%
+! \kern-2.5ex\relax
+! \pdfdest num\destcount fitbh\relax
+! \def\.##1{##1}%
+! \def\MF{METAFONT}%
+! \pdfoutline goto num\destcount{#1}\relax
+! \global\advance\destcount by 1\relax
+! \kern2.5ex\relax
+! }%
+! {\bf#1.}\quad
+! \runninghead{\uppercase{#1} }\ignorespaces
+! }
+!
+! \def\LinkColor{%
+! \pdfliteral{1 0 0 rg}%
+! }
+! \def\Black{%
+! \pdfliteral{0 g}%
+! }
+! \def\appA{2}
+! \def\appB{3}
+! \def\appC{4}
+! \def\appD{5}
+! \def\appE{6}
+! \def\appF{7}
+! \def\appG{8}
+!
+! \def\appref#1{%
+! \leavevmode
+! \pdfstartlink attr{/Border[0 0 0]} goto num\csname app#1\endcsname\relax
+! \LinkColor\hbox{Appendix}~#1\Black
+! \pdfendlink
+! }
+
+ \section Introduction.
+ People often think that their programs are ``debugged'' when large applications
+***************
+*** 175,208 ****
+ The remainder of this report consists of appendices, whose contents ought
+ to be described briefly here:
+
+! Appendix A explains in detail how to carry out a test of \MF, given
+ a tape that contains copies of the other appendices.
+
+! Appendix B is \.{TRAP.MF}, the fiendish test file that has already
+ been mentioned. People who think that they understand \MF\ are challenged
+ to see if they know what \MF\ is supposed to do with this file.
+ People who know only a little about \MF\ might still find it
+ interesting to study Appendix~B, just to get some insights into the
+ methodology advocated here.
+
+! Appendix C is \.{TRAPIN.LOG}, a correct transcript file \.{TRAP.LOG}
+ that results if \.{INIMF} is applied to \.{TRAP.MF}. (\.{INIMF} is
+ the name of a version of \MF\ that does certain initializations;
+ this run of \.{INIMF} also creates a binary base file called \.{TRAP.BASE}.)
+
+! Appendix D is a correct transcript file \.{TRAP.LOG} that results if
+ \.{INIMF} or any other version of \MF\ is applied to \.{TRAP.MF}
+ with base file \.{TRAP.BASE}.
+
+! Appendix E is \.{TRAP.TYP}, the symbolic version of a correct output
+ file \.{TRAP.72270GF} that was produced at the same time as the \.{TRAP.LOG}
+ file of Appendix~D.
+
+! Appendix F is \.{TRAP.PL}, the symbolic version of a correct output
+ file \.{TRAP.TFM} that was produced at the same time as the \.{TRAP.LOG}
+ file of Appendix~D.
+
+! Appendix G is \.{TRAP.FOT}, an abbreviated version of Appendix D that
+ appears on the user's terminal during the run that produces \.{TRAP.LOG},
+ \.{TRAP.72270GF}, and \.{TRAP.TFM}.
+
+--- 227,260 ----
+ The remainder of this report consists of appendices, whose contents ought
+ to be described briefly here:
+
+! \appref A explains in detail how to carry out a test of \MF, given
+ a tape that contains copies of the other appendices.
+
+! \appref B is \.{TRAP.MF}, the fiendish test file that has already
+ been mentioned. People who think that they understand \MF\ are challenged
+ to see if they know what \MF\ is supposed to do with this file.
+ People who know only a little about \MF\ might still find it
+ interesting to study Appendix~B, just to get some insights into the
+ methodology advocated here.
+
+! \appref C is \.{TRAPIN.LOG}, a correct transcript file \.{TRAP.LOG}
+ that results if \.{INIMF} is applied to \.{TRAP.MF}. (\.{INIMF} is
+ the name of a version of \MF\ that does certain initializations;
+ this run of \.{INIMF} also creates a binary base file called \.{TRAP.BASE}.)
+
+! \appref D is a correct transcript file \.{TRAP.LOG} that results if
+ \.{INIMF} or any other version of \MF\ is applied to \.{TRAP.MF}
+ with base file \.{TRAP.BASE}.
+
+! \appref E is \.{TRAP.TYP}, the symbolic version of a correct output
+ file \.{TRAP.72270GF} that was produced at the same time as the \.{TRAP.LOG}
+ file of Appendix~D.
+
+! \appref F is \.{TRAP.PL}, the symbolic version of a correct output
+ file \.{TRAP.TFM} that was produced at the same time as the \.{TRAP.LOG}
+ file of Appendix~D.
+
+! \appref G is \.{TRAP.FOT}, an abbreviated version of \appref D that
+ appears on the user's terminal during the run that produces \.{TRAP.LOG},
+ \.{TRAP.72270GF}, and \.{TRAP.TFM}.
+
+***************
+*** 369,375 ****
+ \section Appendix E: The \.{TRAP.TYP} file.
+ Here is another major component of the test. It shows the output of \.{GFtype}
+ applied to the file \.{TRAP.72270GF} that is created at the same time
+! Appendix D was produced.
+ \runninghead{APPENDIX E: \.{TRAP.TYP} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+--- 421,427 ----
+ \section Appendix E: The \.{TRAP.TYP} file.
+ Here is another major component of the test. It shows the output of \.{GFtype}
+ applied to the file \.{TRAP.72270GF} that is created at the same time
+! \appref D was produced.
+ \runninghead{APPENDIX E: \.{TRAP.TYP} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+***************
+*** 381,387 ****
+ \section Appendix F: The \.{TRAP.PL} file.
+ In this case we have the output of \.{TFtoPL}
+ applied to the file \.{TRAP.TFM} that is created at the same time
+! Appendix D was produced.
+ \runninghead{APPENDIX F: \.{TRAP.PL} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+--- 433,439 ----
+ \section Appendix F: The \.{TRAP.PL} file.
+ In this case we have the output of \.{TFtoPL}
+ applied to the file \.{TRAP.TFM} that is created at the same time
+! \appref D was produced.
+ \runninghead{APPENDIX F: \.{TRAP.PL} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+***************
+*** 391,397 ****
+ \vfill\eject
+
+ \section Appendix G: The \.{TRAP.FOT} file.
+! This shows what appeared on the terminal while Appendix D was being produced.
+ \runninghead{APPENDIX G: \.{TRAP.FOT} (CONTINUED)}
+
+ \vskip8pt
+--- 443,449 ----
+ \vfill\eject
+
+ \section Appendix G: The \.{TRAP.FOT} file.
+! This shows what appeared on the terminal while \appref D was being produced.
+ \runninghead{APPENDIX G: \.{TRAP.FOT} (CONTINUED)}
+
+ \vskip8pt
diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/tripman.tex.diff b/Master/texmf-dist/source/latex/latex-tds/patch/tripman.tex.diff
new file mode 100644
index 00000000000..dc02c18b04b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/patch/tripman.tex.diff
@@ -0,0 +1,215 @@
+*** tripman.tex.org 1992-01-13 23:55:40.000000000 +0100
+--- tripman.tex 2008-07-10 22:43:32.000000000 +0200
+***************
+*** 22,27 ****
+--- 22,42 ----
+ % if you're unlucky it will appear on a page by itself!
+ {\obeyspaces\global\let =\ }
+
++ \pdfinfo{%
++ /Title(A torture test for TeX)%
++ /Author(Donald E. Knuth)%
++ }
++ \pdfcatalog{%
++ /PageLabels<<%
++ /Nums[0<</P(0)>>1<</S/D/St 1>>]%
++ >>%
++ /PageMode/UseOutlines
++ }
++ \pdfpagewidth=7.5in\relax % 8.5in - 2*.5in
++ \pdfhorigin=.5in\relax
++ \pdfpageheight=10in\relax % 11in - 2*.5in
++ \pdfvorigin=.5in\relax
++
+ \output{\shipout\box255\global\advance\pageno by 1} % for the title page only
+ \null
+ \vfill
+***************
+*** 57,64 ****
+ \box255}
+ \global\advance\pageno by 1}
+ \let\runninghead=\mark
+! \outer\def\section#1.{\noindent{\bf#1.}\quad
+! \runninghead{\uppercase{#1} }\ignorespaces}
+
+ \section Introduction.
+ People often think that their programs are ``debugged'' when large applications
+--- 72,117 ----
+ \box255}
+ \global\advance\pageno by 1}
+ \let\runninghead=\mark
+!
+! \newcount\destcount
+! \destcount=1\relax
+!
+! \outer\def\section#1.{%
+! \noindent
+! \vbox to 0pt{%
+! \kern-2.5ex\relax
+! \pdfdest num\destcount fitbh\relax
+! \def\.##1{##1}%
+! \def\TeX{TeX}%
+! \pdfoutline goto num\destcount{#1}\relax
+! \global\advance\destcount by 1\relax
+! \kern2.5ex\relax
+! }%
+! {\bf#1.}\quad
+! \runninghead{\uppercase{#1} }\ignorespaces
+! }
+!
+! \def\LinkColor{%
+! \pdfliteral{1 0 0 rg}%
+! }
+! \def\Black{%
+! \pdfliteral{0 g}%
+! }
+! \def\appA{2}
+! \def\appB{3}
+! \def\appC{4}
+! \def\appD{5}
+! \def\appE{6}
+! \def\appF{7}
+! \def\appG{8}
+! \def\appH{9}
+!
+! \def\appref#1{%
+! \leavevmode
+! \pdfstartlink attr{/Border[0 0 0]} goto num\csname app#1\endcsname\relax
+! \LinkColor\hbox{Appendix}~#1\Black
+! \pdfendlink
+! }
+
+ \section Introduction.
+ People often think that their programs are ``debugged'' when large applications
+***************
+*** 170,208 ****
+ The remainder of this report consists of appendices, whose contents ought
+ to be described briefly here:
+
+! Appendix A explains in detail how to carry out a test of \TeX, given
+ a tape that contains copies of the other appendices.
+
+! Appendix B is \.{TRIP.TEX}, the fiendish test file that has already
+ been mentioned. People who think that they understand \TeX\ are challenged
+ to see if they know what \TeX\ is supposed to do with this file.
+ People who know only a little about \TeX\ might still find it
+ interesting to study Appendix~B, just to get some insights into the
+ methodology advocated here.
+
+! Appendix C is \.{TRIP.PL}, the property-list description of a
+ special font called \.{trip}. This is the only font used by \.{TRIP.TEX}.
+ There are no graphic characters associated with \.{trip} that could
+ possibly be printed; indeed, \.{TRIP.PL} describes the properties of a font
+ that is as weird as the ``document'' described by \.{TRIP.TEX}.
+
+! Appendix D is \.{TRIPIN.LOG}, a correct transcript file \.{TRIP.LOG}
+ that results if \.{INITEX} is applied to \.{TRIP.TEX}. (\.{INITEX} is
+ the name of a version of \TeX\ that does certain initializations;
+ this run of \.{INITEX} also creates a binary format file called \.{TRIP.FMT}.)
+
+! Appendix E is a correct transcript file \.{TRIP.LOG} that results if
+ \.{INITEX} or any other version of \TeX\ is applied to \.{TRIP.TEX}
+ with format \.{TRIP.FMT}.
+
+! Appendix F is \.{TRIP.TYP}, the symbolic version of a correct output
+ file \.{TRIP.DVI} that was produced at the same time as the \.{TRIP.LOG}
+ file of Appendix~E.
+
+! Appendix G is \.{TRIPOS.TEX}, a short file written out and read in
+ by \TeX\ when it processes \.{TRIP.TEX}.
+
+! Appendix H is \.{TRIP.FOT}, an abbreviated version of Appendix E that
+ appears on the user's terminal during the run that produces \.{TRIP.LOG}
+ and \.{TRIP.DVI}.
+
+--- 223,261 ----
+ The remainder of this report consists of appendices, whose contents ought
+ to be described briefly here:
+
+! \appref A explains in detail how to carry out a test of \TeX, given
+ a tape that contains copies of the other appendices.
+
+! \appref B is \.{TRIP.TEX}, the fiendish test file that has already
+ been mentioned. People who think that they understand \TeX\ are challenged
+ to see if they know what \TeX\ is supposed to do with this file.
+ People who know only a little about \TeX\ might still find it
+ interesting to study Appendix~B, just to get some insights into the
+ methodology advocated here.
+
+! \appref C is \.{TRIP.PL}, the property-list description of a
+ special font called \.{trip}. This is the only font used by \.{TRIP.TEX}.
+ There are no graphic characters associated with \.{trip} that could
+ possibly be printed; indeed, \.{TRIP.PL} describes the properties of a font
+ that is as weird as the ``document'' described by \.{TRIP.TEX}.
+
+! \appref D is \.{TRIPIN.LOG}, a correct transcript file \.{TRIP.LOG}
+ that results if \.{INITEX} is applied to \.{TRIP.TEX}. (\.{INITEX} is
+ the name of a version of \TeX\ that does certain initializations;
+ this run of \.{INITEX} also creates a binary format file called \.{TRIP.FMT}.)
+
+! \appref E is a correct transcript file \.{TRIP.LOG} that results if
+ \.{INITEX} or any other version of \TeX\ is applied to \.{TRIP.TEX}
+ with format \.{TRIP.FMT}.
+
+! \appref F is \.{TRIP.TYP}, the symbolic version of a correct output
+ file \.{TRIP.DVI} that was produced at the same time as the \.{TRIP.LOG}
+ file of Appendix~E.
+
+! \appref G is \.{TRIPOS.TEX}, a short file written out and read in
+ by \TeX\ when it processes \.{TRIP.TEX}.
+
+! \appref H is \.{TRIP.FOT}, an abbreviated version of \appref E that
+ appears on the user's terminal during the run that produces \.{TRIP.LOG}
+ and \.{TRIP.DVI}.
+
+***************
+*** 384,390 ****
+ \section Appendix F: The \.{TRIP.TYP} file.
+ Here is another major component of the test. It shows the output of \.{DVItype}
+ applied to the file \.{TRIP.DVI} that was created at the same time
+! Appendix E was produced.
+ \runninghead{APPENDIX F: \.{TRIP.TYP} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+--- 437,443 ----
+ \section Appendix F: The \.{TRIP.TYP} file.
+ Here is another major component of the test. It shows the output of \.{DVItype}
+ applied to the file \.{TRIP.DVI} that was created at the same time
+! \appref E was produced.
+ \runninghead{APPENDIX F: \.{TRIP.TYP} (CONTINUED)}
+
+ {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt
+***************
+*** 395,401 ****
+
+ \section Appendix G: The \.{TRIPOS.TEX} file.
+ This short file was written out once and read in twice, during the time
+! Appendix E was being produced. There are only three lines, the first of
+ which is blank.
+ \runninghead{APPENDIX G: \.{TRIPOS.TEX} (CONTINUED)}
+
+--- 448,454 ----
+
+ \section Appendix G: The \.{TRIPOS.TEX} file.
+ This short file was written out once and read in twice, during the time
+! \appref E was being produced. There are only three lines, the first of
+ which is blank.
+ \runninghead{APPENDIX G: \.{TRIPOS.TEX} (CONTINUED)}
+
+***************
+*** 404,410 ****
+ \vfill\eject
+
+ \section Appendix H: The \.{TRIP.FOT} file.
+! This shows what appeared on the terminal while Appendix E was being produced.
+ \runninghead{APPENDIX H: \.{TRIP.FOT} (CONTINUED)}
+
+ \vskip8pt
+--- 457,463 ----
+ \vfill\eject
+
+ \section Appendix H: The \.{TRIP.FOT} file.
+! This shows what appeared on the terminal while \appref E was being produced.
+ \runninghead{APPENDIX H: \.{TRIP.FOT} (CONTINUED)}
+
+ \vskip8pt
diff --git a/Master/texmf-dist/source/latex/latex-tds/patch/webman.tex.diff b/Master/texmf-dist/source/latex/latex-tds/patch/webman.tex.diff
new file mode 100644
index 00000000000..c3a827ac8ff
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/patch/webman.tex.diff
@@ -0,0 +1,340 @@
+*** webman.tex.org 1990-09-06 02:00:00.000000000 +0200
+--- webman.tex 2008-07-10 15:03:49.000000000 +0200
+***************
+*** 13,25 ****
+ \def\pb{\.{|...|}}
+ \def\lpile{\def\cr{\hfill\endline}\matrix} % I only use \lpile by itself
+
+! \outer\def\section #1.{\penalty-50\vskip 12pt plus 3pt minus 3pt
+! \noindent{\bf #1.}\quad\ignorespaces}
+
+ \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill}
+ \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno}
+ \def\runninghead{{\tentt WEB} USER MANUAL}
+
+ % This verbatim mode assumes that no ? appears in the text being copied.
+ \def\verbatim{\begingroup
+ \def\do##1{\catcode`##1=12 } \dospecials
+--- 13,76 ----
+ \def\pb{\.{|...|}}
+ \def\lpile{\def\cr{\hfill\endline}\matrix} % I only use \lpile by itself
+
+! \newcount\destcount
+! \destcount=1\relax
+!
+! \def\bkminfo{}
+! \outer\def\section #1.{%
+! \penalty-50\vskip 12pt plus 3pt minus 3pt
+! \noindent
+! \vbox to 0pt{%
+! \kern-2.5ex\relax
+! \pdfdest num\destcount fitbh\relax
+! \def\.##1{##1}%
+! \ifx\bkminfo\empty
+! \pdfoutline goto num\destcount{#1}\relax
+! \else
+! \pdfoutline goto num\destcount{#1 (\bkminfo)}\relax
+! \fi
+! \gdef\bkminfo{}%
+! \global\advance\destcount by 1\relax
+! \kern2.5ex\relax
+! }%
+! {\bf #1.}\quad\ignorespaces
+! }
+
+ \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill}
+ \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno}
+ \def\runninghead{{\tentt WEB} USER MANUAL}
+
++ \pdfinfo{%
++ /Author(Donald E. Knuth)%
++ /Title(WEB User Manual)%
++ }
++
++ \def\LinkColor{%
++ \pdfliteral{1 0 0 rg}%
++ }
++ \def\Black{%
++ \pdfliteral{0 g}%
++ }
++ \def\appA{7}
++ \def\appB{8}
++ \def\appC{9}
++ \def\appD{0}
++ \def\appE{0}
++ \def\appF{10}
++ \def\appG{11}
++ \def\appH{12}
++
++ \def\appref#1{%
++ \leavevmode
++ \ifnum\csname app#1\endcsname>0 %
++ \pdfstartlink attr{/Border[0 0 0]} goto num\csname app#1\endcsname\relax
++ \LinkColor\hbox{Appendix}~#1\Black
++ \pdfendlink
++ \else
++ Appendix~#1%
++ \fi
++ }
++
+ % This verbatim mode assumes that no ? appears in the text being copied.
+ \def\verbatim{\begingroup
+ \def\do##1{\catcode`##1=12 } \dospecials
+***************
+*** 624,630 ****
+ `\.{@\{}' is converted into `\.[', since \PASCAL\ does not allow
+ nested comments. Incidentally, module numbers are automatically inserted
+ as meta-comments into the \PASCAL\ program, in order to help correlate the
+! outputs of \.{WEAVE} and \.{TANGLE} (see Appendix~C\null). Meta-comments
+ can be used to put conditional text into a \PASCAL\ program; this helps to
+ overcome one of the limitations of \.{WEB}, since the simple macro
+ processing routines of \.{TANGLE} do not include the dynamic evaluation of
+--- 675,681 ----
+ `\.{@\{}' is converted into `\.[', since \PASCAL\ does not allow
+ nested comments. Incidentally, module numbers are automatically inserted
+ as meta-comments into the \PASCAL\ program, in order to help correlate the
+! outputs of \.{WEAVE} and \.{TANGLE} (see \appref C\null). Meta-comments
+ can be used to put conditional text into a \PASCAL\ program; this helps to
+ overcome one of the limitations of \.{WEB}, since the simple macro
+ processing routines of \.{TANGLE} do not include the dynamic evaluation of
+***************
+*** 757,763 ****
+ characters as output if the input consists entirely of ASCII characters.
+
+ 2. If you have an extended character set, all of the characters listed
+! in Appendix C of {\sl The \TeX book\/} can be used in strings. But you should
+ stick to standard ASCII characters if you want to write programs that will
+ be useful to all the poor souls out there who don't have extended
+ character sets.
+--- 808,814 ----
+ characters as output if the input consists entirely of ASCII characters.
+
+ 2. If you have an extended character set, all of the characters listed
+! in \appref C of {\sl The \TeX book\/} can be used in strings. But you should
+ stick to standard ASCII characters if you want to write programs that will
+ be useful to all the poor souls out there who don't have extended
+ character sets.
+***************
+*** 890,912 ****
+ to time.
+ \section Appendices.
+ The basic ideas of \.{WEB} can be understood most easily by looking at
+! examples of ``real'' programs. Appendix~A shows the \.{WEB} input that
+! generated modules 55--59 of the \.{WEAVE} program; Appendix~B shows the
+! corresponding \TeX\ code output by \.{WEAVE}; and Appendix~C shows excerpts
+ from the corresponding \PASCAL\ code output by \.{TANGLE}.
+
+ The complete webs for \.{WEAVE} and \.{TANGLE} appear as the bulk of this
+! report, in Appendices D and~E. The reader should first compare Appendix~A
+! to the corresponding portion of Appendix~D; then the same material should
+ be compared to Appendices B and~C. Finally, if time permits, the reader may
+ enjoy studying the complete programs in Appendices D and~E, since \.{WEAVE}
+ and \.{TANGLE} contain several interesting aspects, and since an attempt
+ has been made in these appendices to evolve a style of programming that
+ makes good use of the \.{WEB} language.
+
+! Finally, Appendix F is the `\.{webmac}' file that sets \TeX\ up to accept
+! the output of \.{WEAVE}; Appendix~G discusses how to use some of its macros
+! to vary the output formats; and Appendix~H discusses what needs to be done
+ when \.{WEAVE} and \.{TANGLE} are installed in a new operating environment.
+ \section Performance statistics.
+ The programs in Appendices D and E will optionally keep statistics on
+--- 941,963 ----
+ to time.
+ \section Appendices.
+ The basic ideas of \.{WEB} can be understood most easily by looking at
+! examples of ``real'' programs. \appref A shows the \.{WEB} input that
+! generated modules 55--59 of the \.{WEAVE} program; \appref B shows the
+! corresponding \TeX\ code output by \.{WEAVE}; and \appref C shows excerpts
+ from the corresponding \PASCAL\ code output by \.{TANGLE}.
+
+ The complete webs for \.{WEAVE} and \.{TANGLE} appear as the bulk of this
+! report, in Appendices D and~E. The reader should first compare \appref A
+! to the corresponding portion of \appref D; then the same material should
+ be compared to Appendices B and~C. Finally, if time permits, the reader may
+ enjoy studying the complete programs in Appendices D and~E, since \.{WEAVE}
+ and \.{TANGLE} contain several interesting aspects, and since an attempt
+ has been made in these appendices to evolve a style of programming that
+ makes good use of the \.{WEB} language.
+
+! Finally, \appref F is the `\.{webmac}' file that sets \TeX\ up to accept
+! the output of \.{WEAVE}; \appref G discusses how to use some of its macros
+! to vary the output formats; and \appref H discusses what needs to be done
+ when \.{WEAVE} and \.{TANGLE} are installed in a new operating environment.
+ \section Performance statistics.
+ The programs in Appendices D and E will optionally keep statistics on
+***************
+*** 985,992 ****
+ }}
+ \eject
+ \def\runninghead{APPENDIX A --- {\tentt WEB} FILE FORMAT}
+ \section Appendix A.
+! This excerpt from \.{WEAVE.WEB} produced modules 55--59 in Appendix~D.
+ Note that some of the lines are indented to show the program structure.
+ The indentation is ignored by \.{WEAVE} and \.{TANGLE}, but users find
+ that \.{WEB} files are quite readable if they have some such indentation.
+--- 1036,1044 ----
+ }}
+ \eject
+ \def\runninghead{APPENDIX A --- {\tentt WEB} FILE FORMAT}
++ \def\bkminfo{WEB file format}
+ \section Appendix A.
+! This excerpt from \.{WEAVE.WEB} produced modules 55--59 in \appref D.
+ Note that some of the lines are indented to show the program structure.
+ The indentation is ignored by \.{WEAVE} and \.{TANGLE}, but users find
+ that \.{WEB} files are quite readable if they have some such indentation.
+***************
+*** 1057,1064 ****
+ \endgroup
+ \vfill\eject
+ \def\runninghead{APPENDIX B --- TRANSLATION BY {\tentt WEAVE}}
+ \section Appendix B.
+! This excerpt from \.{WEAVE.TEX} corresponds to Appendix A.
+
+ % I've inserted \vfill's here at the blank lines, to squeeze this on one page!
+ \begingroup \def\tt{\eighttt} \baselineskip9pt
+--- 1109,1117 ----
+ \endgroup
+ \vfill\eject
+ \def\runninghead{APPENDIX B --- TRANSLATION BY {\tentt WEAVE}}
++ \def\bkminfo{Translation by weave}
+ \section Appendix B.
+! This excerpt from \.{WEAVE.TEX} corresponds to \appref A.
+
+ % I've inserted \vfill's here at the blank lines, to squeeze this on one page!
+ \begingroup \def\tt{\eighttt} \baselineskip9pt
+***************
+*** 1139,1144 ****
+--- 1192,1198 ----
+ \endgroup
+ \eject
+ \def\runninghead{APPENDIX C --- TRANSLATION BY {\tentt TANGLE}}
++ \def\bkminfo{Translation by tangle}
+ \section Appendix C.
+ The \.{TANGLE} processor converts \.{WEAVE.WEB} into a syntactically
+ correct (but not very pretty) \PASCAL\ program \.{WEAVE.PAS}.
+***************
+*** 1458,1470 ****
+ opposite sides of each sheet.
+
+ \point 6. The \.{\\title} macro will appear at the top of each page
+! in small caps. For example, Appendix~D was produced after saying
+ `\.{\\def\\title\{WEAVE\}}'.
+
+ \point 7. The first page usually is assigned page number 1.
+ To start on page 16, with contents
+ on page 15, say this: `\.{\\def\\contentspagenumber\{15\}}
+! \.{\\pageno=\\contentspagenumber} \.{\\advance\\pageno by 1}'. (Appendix~D
+ was generated that way.)
+
+ \point 8. The macro \.{\\iftitle} will suppress the header line if it is
+--- 1512,1524 ----
+ opposite sides of each sheet.
+
+ \point 6. The \.{\\title} macro will appear at the top of each page
+! in small caps. For example, \appref D was produced after saying
+ `\.{\\def\\title\{WEAVE\}}'.
+
+ \point 7. The first page usually is assigned page number 1.
+ To start on page 16, with contents
+ on page 15, say this: `\.{\\def\\contentspagenumber\{15\}}
+! \.{\\pageno=\\contentspagenumber} \.{\\advance\\pageno by 1}'. (\appref D
+ was generated that way.)
+
+ \point 8. The macro \.{\\iftitle} will suppress the header line if it is
+***************
+*** 1475,1484 ****
+ Two macros are provided to give flexibility to the table of
+ contents: \.{\\topofcontents} is invoked just before the contents
+ info is read, and \.{\\botofcontents} is invoked just after.
+! For example, Appendix~D was produced with the following definitions:
+ $$\lpile{\.{\\def\\topofcontents\{\\null\\vfill}\cr
+ \.{ { }\\titlefalse \% include headline on the contents page}\cr
+! \.{ { }\\def\\rheader\{\\mainfont Appendix D\\hfil 15\}}\cr
+ \.{ { }\\centerline\{\\titlefont The \{\\ttitlefont WEAVE\}{ }processor\}}\cr
+ \.{ { }\\vskip 15pt \\centerline\{(Version 4)\}{ }\\vfill\}}\cr}$$
+ Redefining \.{\\rheader}, which is the headline for right-hand pages,
+--- 1529,1538 ----
+ Two macros are provided to give flexibility to the table of
+ contents: \.{\\topofcontents} is invoked just before the contents
+ info is read, and \.{\\botofcontents} is invoked just after.
+! For example, \appref D was produced with the following definitions:
+ $$\lpile{\.{\\def\\topofcontents\{\\null\\vfill}\cr
+ \.{ { }\\titlefalse \% include headline on the contents page}\cr
+! \.{ { }\\def\\rheader\{\\mainfont \appref D\\hfil 15\}}\cr
+ \.{ { }\\centerline\{\\titlefont The \{\\ttitlefont WEAVE\}{ }processor\}}\cr
+ \.{ { }\\vskip 15pt \\centerline\{(Version 4)\}{ }\\vfill\}}\cr}$$
+ Redefining \.{\\rheader}, which is the headline for right-hand pages,
+***************
+*** 1487,1493 ****
+
+ \point 9. Data for the table of contents is written to a file that
+ is read after the indexes have been \TeX ed; there's one line of data
+! for every starred module. For example, when Appendix~D was being generated,
+ a file \.{CONTENTS.TEX} containing
+ $$\lpile{\.{\\Z \{{ }Introduction\}\{1\}\{16\}}\cr
+ \.{\\Z \{{ }The character set\}\{11\}\{19\}}\cr}$$
+--- 1541,1547 ----
+
+ \point 9. Data for the table of contents is written to a file that
+ is read after the indexes have been \TeX ed; there's one line of data
+! for every starred module. For example, when \appref D was being generated,
+ a file \.{CONTENTS.TEX} containing
+ $$\lpile{\.{\\Z \{{ }Introduction\}\{1\}\{16\}}\cr
+ \.{\\Z \{{ }The character set\}\{11\}\{19\}}\cr}$$
+***************
+*** 1579,1585 ****
+ \.{TANGLE.PAS}, and \.{WEBMAC.TEX}. The tape will probably also contain an
+ example change file \.{TANGLE.CH}.
+ \step(2) Look at the sections of \.{TANGLE} that are listed under ``system
+! dependencies'' in the index of Appendix~E above, and figure out what changes
+ (if any) will be needed for your system.
+ \step(3) Make a change file \.{TANGLE.CH} that contains the changes of~(2);
+ do not change your copy of \.{TANGLE.WEB}, leave it intact. (The
+--- 1633,1639 ----
+ \.{TANGLE.PAS}, and \.{WEBMAC.TEX}. The tape will probably also contain an
+ example change file \.{TANGLE.CH}.
+ \step(2) Look at the sections of \.{TANGLE} that are listed under ``system
+! dependencies'' in the index of \appref E above, and figure out what changes
+ (if any) will be needed for your system.
+ \step(3) Make a change file \.{TANGLE.CH} that contains the changes of~(2);
+ do not change your copy of \.{TANGLE.WEB}, leave it intact. (The
+***************
+*** 1605,1622 ****
+ working \.{TANGLE} program.
+ \step(7) Make a change file \.{WEAVE.CH} analogous to (3), but this time
+ consider the system-dependent parts of \.{WEAVE} that are listed in
+! the index to Appendix~D.
+ \step(8) Run \.{TANGLE} on \.{WEAVE.WEB} and your \.{WEAVE.CH}, obtaining
+ \.{WEAVE.PAS}.
+ \step(9) Use \PASCAL\ on \.{WEAVE.PAS} to make a running \.{WEAVE} program.
+ \step(10) Run \.{WEAVE} on \.{TANGLE.WEB} and \.{TANGLE.CH} to produce
+ \.{TANGLE.TEX}.
+ \step(11) Run \TeX\ on \.{TANGLE.TEX}, obtaining a listing analogous to
+! Appendix~E. This listing will incorporate your changes.
+ \step(12) Run \.{WEAVE} on \.{WEAVE.WEB} and your \.{WEAVE.CH} to produce
+ \.{WEAVE.TEX}.
+ \step(13) Run \TeX\ on \.{WEAVE.TEX}, obtaining a listing analogous to
+! Appendix~D that incorporates your changes.
+
+ \yskip\noindent
+ This description assumes that you already have a working \TeX82 system.
+--- 1659,1676 ----
+ working \.{TANGLE} program.
+ \step(7) Make a change file \.{WEAVE.CH} analogous to (3), but this time
+ consider the system-dependent parts of \.{WEAVE} that are listed in
+! the index to \appref D.
+ \step(8) Run \.{TANGLE} on \.{WEAVE.WEB} and your \.{WEAVE.CH}, obtaining
+ \.{WEAVE.PAS}.
+ \step(9) Use \PASCAL\ on \.{WEAVE.PAS} to make a running \.{WEAVE} program.
+ \step(10) Run \.{WEAVE} on \.{TANGLE.WEB} and \.{TANGLE.CH} to produce
+ \.{TANGLE.TEX}.
+ \step(11) Run \TeX\ on \.{TANGLE.TEX}, obtaining a listing analogous to
+! \appref E. This listing will incorporate your changes.
+ \step(12) Run \.{WEAVE} on \.{WEAVE.WEB} and your \.{WEAVE.CH} to produce
+ \.{WEAVE.TEX}.
+ \step(13) Run \TeX\ on \.{WEAVE.TEX}, obtaining a listing analogous to
+! \appref D that incorporates your changes.
+
+ \yskip\noindent
+ This description assumes that you already have a working \TeX82 system.
diff --git a/Master/texmf-dist/source/latex/latex-tds/readme.txt b/Master/texmf-dist/source/latex/latex-tds/readme.txt
index af793ae6dff..8f13e23341d 100644
--- a/Master/texmf-dist/source/latex/latex-tds/readme.txt
+++ b/Master/texmf-dist/source/latex/latex-tds/readme.txt
@@ -1,4 +1,4 @@
-readme.txt for project latex-tds, 2008/07/07
+readme.txt for project latex-tds, 2008/07/25
TABLE OF CONTENTS
=================
@@ -71,6 +71,13 @@ Module list
* psnfss CTAN:macros/latex/required/psnfss.zip
* babel CTAN:macros/latex/required/babel.zip
* tds CTAN:tds.zip
+* knuth CTAN:systems/knuth/dist/errata.zip
+ CTAN:systems/knuth/dist/etc.zip
+ CTAN:systems/knuth/dist/mfware.zip
+ CTAN:systems/knuth/dist/texware.zip
+ CTAN:systems/knuth/dist/web.zip
+ CTAN:systems/knuth/dist/tex.zip
+ CTAN:systems/knuth/dist/mf.zip
Author
------
@@ -221,7 +228,11 @@ Documentation driver
amslatex and babel bundle
tex/babel.tex doc driver with patches for babel.drv
tex/doc_lppl.tex doc driver for base/lppl.tex
+ tex/errata.drv doc driver for knuth/errata/errata_*.pdf
+ tex/errata.all doc driver for knuth/errata/errata.pdf
+ tex/errorlog.drv doc driver for knuth/errata/errorlog.tex
tex/greek-usage.tex doc driver with patches for babel/usage.tex
+ tex/knuth.drv doc driver for knuth/{texware,mfware,etc}/*.web
tex/ltnews.tex master file that merges all base/ltnews*.tex
tex/ltxcheck.drv doc driver with patches for ltxcheck.tex
tex/psnfss2e.drv doc driver with patches for psnfss2e.tex
@@ -232,6 +243,10 @@ Documentation driver
Patches
-------
patch/classes.dtx.diff patch for base/classes.dtx
+ patch/logmac.tex.diff patch for knuth/errata/logmac.tex
+ patch/tripman.tex.diff patch for knuth/tex/tripman.tex
+ patch/trapman.tex.diff patch for knuth/mf/trapman.tex
+ patch/webman.tex.diff patch for knuth/web/webman.tex
F. DESIGN PRINCIPLES
@@ -320,6 +335,48 @@ Babel
Also the name `babel.pdf' is much more useful (texdoc).
* ...
+Knuth
+-----
+* Current used CTAN -> TDS mapping:
+ CTAN:systems/knuth/dist --> TDS:<toplevel>/knuth
+* Unsure where to put trip/trap files. Currently they are
+ put in TDS:source, because the documentation files
+ (tripman.pdf, trapman.pdf) are in TDS:doc. They lists the
+ trip/trap files already.
+* Not covered is
+ CTAN:systems/knuth/dist/lib/
+ In TeX Live 2007/2008 the files are installed at different
+ locations:
+ texmf-dist/fonts/source/public/mflogo/logo10.mf
+ texmf-dist/fonts/source/public/mflogo/logo8.mf
+ texmf-dist/fonts/source/public/mflogo/logo9.mf
+ texmf-dist/fonts/source/public/mflogo/logobf10.mf
+ texmf-dist/fonts/source/public/mflogo/logo.mf
+ texmf-dist/fonts/source/public/mflogo/logosl10.mf
+ texmf-dist/fonts/source/public/misc/grayf.mf
+ texmf-dist/fonts/source/public/misc/manfnt.mf
+ texmf-dist/fonts/source/public/misc/slant.mf
+ texmf-dist/metafont/base/expr.mf
+ texmf-dist/metafont/base/io.mf
+ texmf-dist/metafont/base/null.mf
+ texmf-dist/metafont/base/plain.mf
+ texmf-dist/metafont/misc/3test.mf
+ texmf-dist/metafont/misc/6test.mf
+ texmf-dist/metafont/misc/rtest.mf
+ texmf-dist/metafont/misc/test.mf
+ texmf-dist/metafont/misc/waits.mf
+ texmf-dist/metafont/misc/ztest.mf
+ texmf-dist/mft/base/cmbase.mft
+ texmf-dist/mft/base/plain.mft
+ texmf-dist/tex/generic/misc/null.tex
+ texmf-dist/tex/plain/base/manmac.tex
+ texmf-dist/tex/plain/base/mftmac.tex
+ texmf-dist/tex/plain/base/plain.tex
+ texmf-dist/tex/plain/base/story.tex
+ texmf-dist/tex/plain/base/testfont.tex
+ texmf-dist/tex/plain/base/webmac.tex
+ texmf/tex/generic/hyphen/hyphen.tex
+
H. BUILD HINTS
==============
@@ -424,3 +481,12 @@ I. HISTORY
* Babel documentation: table of contents reformatted.
2008/07/07
* Update of babel (2008/07/06).
+2008/07/10
+ * Module knuth added.
+ * Update of babel (2008/07/07).
+2008/07/11
+ * Fixes and additions for module knuth.
+2008/07/25
+ * amslatex: instr-l.tex vanished from CTAN (but not at AMS side).
+ * Some unwanted spaces in generated PDF files fixed.
+ (Caused by a wrong package file that was found on my system first.)
diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/errata.all b/Master/texmf-dist/source/latex/latex-tds/tex/errata.all
new file mode 100644
index 00000000000..082fb91d3bf
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/tex/errata.all
@@ -0,0 +1,100 @@
+% errata.all
+% 2008/07/11 v1.0 Driver file for merging of knuth/errata/errata.*
+% Copyright 2008 Heiko Oberdiek.
+%
+% This file is part of project `latex-tds'.
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Heiko Oberdiek.
+%
+% See `readme.txt' for a list of all files belonging to the
+% project `latex-tds' and additional information.
+%
+% 2008/07/11 v1.0
+%
+\pdfinfo{%
+ /Author(Donald E. Knuth)%
+ /Title(Bugs in Computers and \string&\space Typesetting)%
+}
+\pdfcatalog{%
+ /PageMode/UseOutlines
+}
+\pdfhorigin=0pt\relax
+\pdfvorigin=0pt\relax
+\newcount\i
+\newcount\m
+\newcount\e
+\e=0 %
+\def\labels{}
+\def\err#1#2{%
+ \advance\e by 1 %
+ \edef\labels{%
+ \labels
+ \the\numexpr\pageno - 1\relax<</P(\the\e-)/S/D>>%
+ }%
+ \pdfoutline user{%
+ <<%
+ /S/GoTo%
+ /D[\pdfpageref\pageno\space 0 R /FitBH 600]%
+ >>%
+ }{\the\e\space#2}%
+ \setbox0=\hbox{%
+ \pdfximage{errata_#1.pdf}%
+ \pdfrefximage\pdflastximage
+ }%
+ \m=\pdflastximagepages
+ \i=0 %
+ \loop
+ \ifnum\i<\m
+ \advance\i by 1 %
+ \ifcase\i
+ \else
+ \setbox0=\hbox{%
+ \pdfximage page\i{errata_#1.pdf}%
+ \pdfrefximage\pdflastximage
+ }%
+ \fi
+ \pdfpagewidth=\wd0 %
+ \pdfpageheight=\dimexpr\ht0 + \dp0\relax
+ \shipout\box0 %
+ \advancepageno
+ \repeat
+}
+\def\-{\string\205}
+\def\comp{Computers \string& Typesetting}
+\err{one}{The TeXbook, first printing}
+\err{two}{The TeXbook, second printing}
+\err{three}{\comp, 1986\-1987}
+\err{four}{\comp, 1987\-1988}
+\err{five}{\comp, 1989}
+\err{six}{\comp, 1990}
+\err{seven}{\comp, 1991}
+\err{eight}{\comp, 1992}
+\err{nine}{\comp\space A, 1996}
+\err{ten}{\comp, 2000}
+\err{eleven}{\comp, 2001}
+\begingroup
+ \newread\r
+ \openin\r=errata.new\relax
+ \read\r to \test
+ \closein\r
+ \test
+ \xdef\latest{\the\year}%
+\endgroup
+\err{new}{\comp, \latest}
+
+\pdfcatalog{%
+ /PageLabels<<%
+ /Nums[\labels]%
+ >>%
+}
+\end
diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/errata.drv b/Master/texmf-dist/source/latex/latex-tds/tex/errata.drv
new file mode 100644
index 00000000000..ac5d742fe53
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/tex/errata.drv
@@ -0,0 +1,51 @@
+% errata.drv
+% 2008/07/11 v1.0 Driver file for knuth/errata/errata.*
+% Copyright 2008 Heiko Oberdiek.
+%
+% This file is part of project `latex-tds'.
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Heiko Oberdiek.
+%
+% See `readme.txt' for a list of all files belonging to the
+% project `latex-tds' and additional information.
+%
+% 2008/07/11 v1.0
+%
+\errorcontextlines=\maxdimen
+\input ifpdf.sty\relax
+\ifpdf
+\else
+ \input infwarerr.sty\relax
+ \catcode`\@=11 %
+ \@PackageError{errata.drv}{You need pdfTeX in PDF mode}\@ehd
+ \expandafter\end
+\fi
+
+\input atbegshi.sty\relax
+\AtBeginShipout{%
+ \pdfpagewidth=\dimexpr\wd\AtBeginShipoutBox + 72bp\relax
+ \pdfpageheight=\dimexpr\ht\AtBeginShipoutBox
+ + \dp\AtBeginShipoutBox + 72bp\relax
+}
+\pdfhorigin=.5in\relax
+\pdfpageheight=\dimexpr 44pc + 3pc + 72bp\relax
+\pdfvorigin=.5in\relax
+
+\begingroup
+ \edef\file{\jobname}%
+ \catcode`\_=12 %
+ \def\x#1_#2\END{\endgroup
+ \input #1.#2\relax
+ }%
+\expandafter\x\file\END
+\endinput
diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/errorlog.drv b/Master/texmf-dist/source/latex/latex-tds/tex/errorlog.drv
new file mode 100644
index 00000000000..a304453186d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/tex/errorlog.drv
@@ -0,0 +1,58 @@
+% errorlog.drv
+% 2008/07/11 v1.0 Driver file for knuth/errata/errorlog.tex
+% Copyright 2008 Heiko Oberdiek.
+%
+% This file is part of project `latex-tds'.
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Heiko Oberdiek.
+%
+% See `readme.txt' for a list of all files belonging to the
+% project `latex-tds' and additional information.
+%
+% 2008/07/11 v1.0
+%
+\errorcontextlines=\maxdimen
+\input ifpdf.sty\relax
+\ifpdf
+\else
+ \input infwarerr.sty\relax
+ \catcode`\@=11 %
+ \@PackageError{errorlog.drv}{You need pdfTeX in PDF mode}\@ehd
+ \expandafter\end
+\fi
+
+% Original paper size is probably letter (default of plain format).
+% But decrease margins for better online viewing.
+% /CropBox setting does not work for all viewers (AR, but not xdvi).
+\iftrue
+ \pdfpagewidth=472.5bp\relax % 33.5pc + 2*.5in
+ \pdfhorigin=0.5in\relax
+ \pdfpageheight=645.85bp\relax % 48pc + 2*.5in
+ \pdfvorigin=0.5in\relax
+ \def\voffsetbp{-36}%
+\else
+ \pdfpagewidth=544.5bp\relax
+ \pdfpageheight=717.85bp\relax
+ \def\voffsetbp{0}%
+ \pdfpageattr{%
+ /CropBox[36 36 508.5 681.85]%
+ }%
+\fi
+
+\pdfinfo{%
+ /Author(Donald E. Knuth)%
+ /Title(The errors of TeX)%
+}
+
+\input \jobname.tex\relax
+\endinput
diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/knuth.drv b/Master/texmf-dist/source/latex/latex-tds/tex/knuth.drv
new file mode 100644
index 00000000000..9f75d84eeb2
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latex-tds/tex/knuth.drv
@@ -0,0 +1,294 @@
+% knuth.drv
+% 2008/07/10 v1.0 Driver file for knuth/{texware,mfware,etc}/*.web
+% Copyright 2008 Heiko Oberdiek.
+%
+% This file is part of project `latex-tds'.
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Heiko Oberdiek.
+%
+% See `readme.txt' for a list of all files belonging to the
+% project `latex-tds' and additional information.
+%
+% 2008/07/10 v1.0
+%
+\errorcontextlines=\maxdimen
+\input ifpdf.sty\relax
+\ifpdf
+\else
+ \input infwarerr.sty\relax
+ \catcode`\@=11 %
+ \@PackageError{knuth.drv}{You need pdfTeX in PDF mode}\@ehd
+ \expandafter\end
+\fi
+\input pdfwebmac.tex\relax % Han The Thanh's enriched version of webmac.tex
+
+% Original paper size is probably letter (default of plain format).
+% But decrease margins for better online viewing.
+% /CropBox setting does not work for all viewers (AR, but not xdvi).
+\iftrue
+ \pdfpagewidth=7.5in\relax % 8.5in - 2*0.5in
+ \pdfhorigin=0.5in\relax
+ \pdfpageheight=10in\relax % 11in - 2*0.5in
+ \pdfvorigin=0.5in\relax
+ \def\voffsetbp{-36}%
+\else
+ \pdfpagewidth=8.5in\relax
+ \pdfpageheight=11in\relax
+ \def\voffsetbp{0}%
+ \pdfpageattr{%
+ /CropBox[36 36 576 756]% .5in .5in 8in 10.5in
+ }%
+\fi
+
+% Definition of color macros
+\def\pdfsetrgbcolor#1{%
+ \pdfliteral{#1 rg}%
+}
+\def\pdfsetgraycolor#1{%
+ \pdfliteral{#1 g}%
+}
+\def\Black{%
+ \pdfsetgraycolor{0}%
+}
+\def\LinkColor{%
+ \pdfsetrgbcolor{1 0 0}%
+}
+
+\newif\ifusename
+\usenamefalse
+\begingroup
+ \edef\x{\jobname}%
+ \edef\y{\detokenize{tex}}%
+ \ifx\x\y
+ \global\usenametrue
+ \fi
+\endgroup
+\def\numname#1{%
+ \ifusename
+ name{\number#1}%
+ \else
+ num #1 %
+ \fi
+}
+
+% Redefinition of pdfwebmac macros
+\def\startsection{%
+ \Q
+ {%
+ \let\*=\empty
+ \pdfdest \numname{\modstar}xyz%
+ }%
+ \noindent
+ {%
+ \let\*=\lapstar
+ \bf\modstar.\quad
+ }%
+}
+\def\n#1{%
+ \leavevmode
+ \ifnum#1>0 % test for valid section numbers that start with 1
+ \pdfstartlink attr{/Border[0 0 0]} goto \numname{#1}\relax
+ \LinkColor #1\Black
+ \pdfendlink
+ \else
+ #1%
+ \fi
+}
+\newcount\seclistnum
+\let\ORGfin\fin
+\def\fin{%
+ \ORGfin
+ \seclistnum=\numexpr\modno+1\relax
+ \pdfdest \numname{\seclistnum}fitbh\relax
+ \pdfoutline goto \numname{\seclistnum}{Names of the sections}\relax
+ \iftrue
+ \def\entry##1##2{%
+ \pdfoutline
+ attr{/C[0 0 1]}
+ user{%
+ <<%
+ /S/GoToR%
+ /F(../##1/##2.pdf)%
+ /D[0/FitBH \the\numexpr 720+\voffsetbp\relax]% 10in/9.5in
+ >>%
+ }%
+ {[##1/##2]}\relax
+ }%
+ \entry{tex}{tex}%
+ \entry{tex}{tripman}%
+ \entry{tex}{glue}%
+ \entry{texware}{pooltype}%
+ \entry{texware}{tftopl}%
+ \entry{texware}{pltotf}%
+ \entry{texware}{dvitype}%
+ \entry{mf}{mf}%
+ \entry{mf}{trapman}%
+ \entry{mfware}{gftype}%
+ \entry{mfware}{gftopk}%
+ \entry{mfware}{gftodvi}%
+ \entry{mfware}{mft}%
+ \entry{etc}{vftovp}%
+ \entry{etc}{vptovf}%
+ \entry{web}{weave}%
+ \entry{web}{tangle}%
+ \entry{web}{webman}%
+ \fi
+}
+\def\con{%
+ \begingroup
+ \def\lowercase##1{##1}%
+ \def\,{}%
+ \def\TeX{TeX}%
+ \def\eightlogo{}%
+ \xdef\infotitle{\title}%
+ \def\firstofone##1{##1}%
+ \xdef\infotitle{\expandafter\firstofone\infotitle}%
+ \def\filter##1$##2\END{%
+ ##1%
+ \ifx\eject##2\eject
+ \else
+ \filter##2\END
+ \fi
+ }%
+ \xdef\infotitle{\expandafter\filter\infotitle$\END}%
+ \endgroup
+ \pdfinfo{%
+ /Title(\infotitle)%
+ /Author(Donald E. Knuth)%
+ }%
+ \par\vfill\eject % finish the section names
+ \rightskip 0pt %
+ \hyphenpenalty 50 %
+ \tolerance 200 %
+ \setpage
+ \output{\normaloutput\page\lheader\rheader}%
+ \titletrue % prepare to output the table of contents
+ \global\pageno=\contentspagenumber
+ \def\rhead{TABLE OF CONTENTS}%
+ \message{Table of contents:}%
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}%
+ \def\Z##1##2##3{%
+ \line{%
+ \pdfstartlink attr{/Border [0 0 0]} goto \numname{##2}\relax
+ \LinkColor
+ \ignorespaces##1 %
+ \leaders\hbox to .5em{.\hfil}\hfil\ ##2
+ \Black
+ \pdfendlink
+ \hbox to3em{\hss##3}%
+ }%
+ }%
+ \readcontents\relax % read the contents info
+ \botofcontents % print the contents page(s) and terminate
+ \makeoutlines
+ \eject % \titletrue is necessary during output and
+ % \con is maybe called in a group, therefore
+ % the output is forced here.
+ \makepagelabels
+ \global\advance\pageno by 1 %
+ \end
+}
+
+% Adding PDF page labels
+\def\makepagelabels{%
+ \ifnum\contentspagenumber=1 %
+ \else
+ \ifnum\contentspagenumber=0 %
+ \pdfcatalog{%
+ /PageLabels<<%
+ /Nums[0<</P(0)>>1<</S/D/St 1>>]%
+ >>%
+ }%
+ \else
+ \pdfcatalog{%
+ /PageLabels<<%
+ /Nums[0<</S/D/St \contentspagenumber>>]%
+ >>%
+ }%
+ \fi
+ \fi
+}
+
+% Move contents page to the front
+\def\contentsfile{\jobname.toc}
+\def\readcontents{\input\contentsfile\relax}
+\def\makeoutlines{%
+ \def\?##1]{}%
+ \def\Z##1##2##3{%
+ \pdfoutline goto \numname{##2}{##2. ##1}\relax
+ }%
+ \readcontents
+}%
+\newread\testread
+\openin\testread=\contentsfile\relax
+\ifeof\testread
+\else
+ \let\ORGcon\con
+ \def\con{%
+ \begingroup
+ \let\end\relax
+ \ORGcon
+ \endgroup
+ \let\con\end
+ }%
+ \expandafter\let\csname ORGN\expandafter\endcsname
+ \csname N\endcsname
+ \expandafter\outer\expandafter\def\csname N\endcsname{%
+ \con
+ \advance\pageno by -1\relax
+ \expandafter\let\csname N\expandafter\endcsname
+ \csname ORGN\endcsname
+ \csname N\endcsname
+ }%
+ \begingroup
+ \def\num{0}%
+ \edef\x{\jobname}%
+ \edef\y{\detokenize{tex}}%
+ \ifx\x\y
+ \def\num{1}%
+ \else
+ \edef\y{\detokenize{mf}}%
+ \ifx\x\y
+ \def\num{1}%
+ \fi
+ \fi
+ \expandafter\endgroup\ifnum\num=1 %
+ \def\contentspagenumber{2}%
+ \let\ORGpageno\pageno
+ \def\pageno{%
+ \let\pageno\ORGpageno
+ \expandafter\let\csname ORGN\expandafter\endcsname
+ \csname N\endcsname
+ \expandafter\outer\expandafter\def\csname N\endcsname{%
+ \con
+ \advance\pageno by -1\relax
+ \expandafter\let\csname N\expandafter\endcsname
+ \csname ORGN\endcsname
+ \csname N\endcsname
+ }%
+ \pageno
+ }%
+ \fi
+\fi
+
+% Patch \input to disable `\input webmac'
+\let\ORGinput\input
+\def\input #1\relax{%
+ \def\input webmac {%
+ \let\input\ORGinput
+ }%
+ \ORGinput #1 %
+}
+\input \jobname.tex\relax
+\endinput
diff --git a/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex b/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex
index 6cd80bfb873..1c869965b83 100644
--- a/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex
+++ b/Master/texmf-dist/source/latex/latex-tds/tex/tools.tex
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{tools.tex}%
- [2008/07/07 Tools overview (HO)]
+ [2008/07/25 Tools overview (HO)]
% Copyright 2006-2008 Heiko Oberdiek
%
% This file is part of project `latex-tds'.