From 65f8da71e44b1576ce22edb029a75ef670d1c969 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 26 Jul 2008 00:11:51 +0000 Subject: latex-tds update (25jul08) git-svn-id: svn://tug.org/texlive/trunk@9777 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/latex-tds/build.pl | 321 ++++++++++++++++++- .../source/latex/latex-tds/lib/adjust_checksum.pl | 13 +- .../source/latex/latex-tds/patch/logmac.tex.diff | 134 ++++++++ .../source/latex/latex-tds/patch/trapman.tex.diff | 204 +++++++++++++ .../source/latex/latex-tds/patch/tripman.tex.diff | 215 +++++++++++++ .../source/latex/latex-tds/patch/webman.tex.diff | 340 +++++++++++++++++++++ .../texmf-dist/source/latex/latex-tds/readme.txt | 68 ++++- .../source/latex/latex-tds/tex/errata.all | 100 ++++++ .../source/latex/latex-tds/tex/errata.drv | 51 ++++ .../source/latex/latex-tds/tex/errorlog.drv | 58 ++++ .../source/latex/latex-tds/tex/knuth.drv | 294 ++++++++++++++++++ .../source/latex/latex-tds/tex/tools.tex | 2 +- 12 files changed, 1780 insertions(+), 20 deletions(-) create mode 100644 Master/texmf-dist/source/latex/latex-tds/patch/logmac.tex.diff create mode 100644 Master/texmf-dist/source/latex/latex-tds/patch/trapman.tex.diff create mode 100644 Master/texmf-dist/source/latex/latex-tds/patch/tripman.tex.diff create mode 100644 Master/texmf-dist/source/latex/latex-tds/patch/webman.tex.diff create mode 100644 Master/texmf-dist/source/latex/latex-tds/tex/errata.all create mode 100644 Master/texmf-dist/source/latex/latex-tds/tex/errata.drv create mode 100644 Master/texmf-dist/source/latex/latex-tds/tex/errorlog.drv create mode 100644 Master/texmf-dist/source/latex/latex-tds/tex/knuth.drv (limited to 'Master/texmf-dist/source') 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 = ; + 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 +# Copyright (C) 2006-2008 by Heiko Oberdiek # # 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<>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<>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:/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<>% + }% + \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<>1<>]% + >>% + }% + \else + \pdfcatalog{% + /PageLabels<<% + /Nums[0<>]% + >>% + }% + \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'. -- cgit v1.2.3