diff options
author | Karl Berry <karl@freefriends.org> | 2020-09-20 20:55:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-09-20 20:55:58 +0000 |
commit | cdb63c66ef268b69bc8be277e5cba2524bb062c8 (patch) | |
tree | e4c42f510d24383f09f4218b9a54149335ac9fce | |
parent | 7cdf81be2042a29d303ccfc6ce4d129646c8adde (diff) |
pwebmac
git-svn-id: svn://tug.org/texlive/trunk@56383 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/plain/pwebmac/README.md | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/plain/pwebmac/index.md | 68 | ||||
-rw-r--r-- | Master/texmf-dist/doc/plain/pwebmac/makeall | 319 |
3 files changed, 240 insertions, 149 deletions
diff --git a/Master/texmf-dist/doc/plain/pwebmac/README.md b/Master/texmf-dist/doc/plain/pwebmac/README.md index cfb33f4cddf..92335dcbead 100644 --- a/Master/texmf-dist/doc/plain/pwebmac/README.md +++ b/Master/texmf-dist/doc/plain/pwebmac/README.md @@ -29,4 +29,4 @@ clickable links and bookmarks (depending on your PDF viewer). The `pwebmac` package is free software and may be used without constraints. -This is version “4.5.5” of the `pwebmac` package — 2020-07-08, AS. +This is version “4.5.6” of the `pwebmac` package — 2020-09-13, AS. diff --git a/Master/texmf-dist/doc/plain/pwebmac/index.md b/Master/texmf-dist/doc/plain/pwebmac/index.md index b8edf09a548..0df2b9d9f50 100644 --- a/Master/texmf-dist/doc/plain/pwebmac/index.md +++ b/Master/texmf-dist/doc/plain/pwebmac/index.md @@ -25,51 +25,65 @@ typographically, or politically incorrect, please notify the maintainers at ## Canonical Knuthian WEB programs -* `errata/` +* `errata/` \[ + [The Errors of TeX](errata/errorlog.pdf) \| + [The TeXbook, 1^st^\ printing](errata/errata.one.pdf) \| + [The TeXbook, 2^nd^\ printing](errata/errata.two.pdf) \| + [Computers&Typesetting, 15\ June\ 1987](errata/errata.three.pdf) \| + [Computers&Typesetting, 20\ February\ 1989](errata/errata.four.pdf) \| + [Computers&Typesetting, 30\ September\ 1989](errata/errata.five.pdf) \| + [Computers&Typesetting, 31\ December\ 1990](errata/errata.six.pdf) \| + [Computers&Typesetting, 15\ March\ 1992](errata/errata.seven.pdf) \| + [Computers&Typesetting, pre-Millennium\ ed.](errata/errata.eight.pdf) \| + [The TeXbook, September 1996](errata/errata.nine.pdf) \| + [Computers&Typesetting, 1^st^\ Millennium\ ed.](errata/errata.ten.pdf) \| + [Computers&Typesetting, 2^nd^\ Millennium\ ed.](errata/errata.eleven.pdf) \| + [Computers&Typesetting, present](errata/errata.pdf) \] * `etc/` \[ - [`VFtoVP`](etc/vftovp.pdf)<sub>[chg](etc/vftovp-changes.pdf)</sub> \| - [`VPtoVF`](etc/vptovf.pdf)<sub>[chg](etc/vptovf-changes.pdf)</sub> \] + [`VFtoVP`](etc/vftovp.pdf)~[chg](etc/vftovp-changes.pdf)~ \| + [`VPtoVF`](etc/vptovf.pdf)~[chg](etc/vptovf-changes.pdf)~ \] * `mf/` \[ - [`Metafont`](mf/mf.pdf)<sub>[chg](mf/mf-changes.pdf)</sub> \| + [`Metafont`](mf/mf.pdf)~[chg](mf/mf-changes.pdf)~ \| [`TRAPMAN`](mf/trapman.pdf) \] * `mfware/` \[ - [`GFtype`](mfware/gftype.pdf)<sub>[chg](mfware/gftype-changes.pdf)</sub> \| - [`GFtoPK`](mfware/gftopk.pdf)<sub>[chg](mfware/gftopk-changes.pdf)</sub> \| - [`GFtoDVI`](mfware/gftodvi.pdf)<sub>[chg](mfware/gftodvi-changes.pdf)</sub> \| - [`MFT`](mfware/mft.pdf)<sub>[chg](mfware/mft-changes.pdf)</sub> \] + [`GFtype`](mfware/gftype.pdf)~[chg](mfware/gftype-changes.pdf)~ \| + [`GFtoPK`](mfware/gftopk.pdf)~[chg](mfware/gftopk-changes.pdf)~ \| + [`GFtoDVI`](mfware/gftodvi.pdf)~[chg](mfware/gftodvi-changes.pdf)~ \| + [`MFT`](mfware/mft.pdf)~[chg](mfware/mft-changes.pdf)~ \] * `tex/` \[ - [`TeX`](tex/tex.pdf)<sub>[chg](tex/tex-changes.pdf)</sub> \| + [`GLUE`](tex/glue.pdf) \| + [`TeX`](tex/tex.pdf)~[chg](tex/tex-changes.pdf)~ \| [`TRIPMAN`](tex/tripman.pdf) \] * `texware/` \[ - [`POOLtype`](texware/pooltype.pdf)<sub>[chg](texware/pooltype-changes.pdf)</sub> \| - [`TFtoPL`](texware/tftopl.pdf)<sub>[chg](texware/tftopl-changes.pdf)</sub> \| - [`PLtoTF`](texware/pltotf.pdf)<sub>[chg](texware/pltotf-changes.pdf)</sub> \| - [`DVItype`](texware/dvitype.pdf)<sub>[chg](texware/dvitype-changes.pdf)</sub> \] + [`POOLtype`](texware/pooltype.pdf)~[chg](texware/pooltype-changes.pdf)~ \| + [`TFtoPL`](texware/tftopl.pdf)~[chg](texware/tftopl-changes.pdf)~ \| + [`PLtoTF`](texware/pltotf.pdf)~[chg](texware/pltotf-changes.pdf)~ \| + [`DVItype`](texware/dvitype.pdf)~[chg](texware/dvitype-changes.pdf)~ \] * `web/` \[ [`WEBMAN`](web/webman.pdf) \| - [`WEAVE`](web/weave.pdf)<sub>[chg](web/weave-changes.pdf)</sub> \| - [`TANGLE`](web/tangle.pdf)<sub>[chg](web/tangle-changes.pdf)</sub> \] + [`WEAVE`](web/weave.pdf)~[chg](web/weave-changes.pdf)~ \| + [`TANGLE`](web/tangle.pdf)~[chg](web/tangle-changes.pdf)~ \] ## Complementary WEB programs * `other/` \[ - [`DVIcopy`](other/dvicopy.pdf)<sub>[chg](other/dvicopy-changes.pdf)</sub> \| - [`PatGen`](other/patgen.pdf)<sub>[chg](other/patgen-changes.pdf)</sub> \| - [`PKtoGF`](other/pktogf.pdf)<sub>[chg](other/pktogf-changes.pdf)</sub> \| - [`PKtype`](other/pktype.pdf)<sub>[chg](other/pktype-changes.pdf)</sub> \] -* `bibtex/` \[ [`BibTeX`](bibtex/bibtex.pdf)<sub>[chg](bibtex/bibtex-changes.pdf)</sub> \] -* `pdftex/` \[ [`pdfTeX`](pdftex/pdftex.pdf)<sub>[chg](pdftex/pdftex-changes.pdf)</sub> \] -* `xetex/` \[ [`XeTeX`](xetex/xetex.pdf)<sub>[chg](xetex/xetex-changes.pdf)</sub> \] + [`DVIcopy`](other/dvicopy.pdf)~[chg](other/dvicopy-changes.pdf)~ \| + [`PatGen`](other/patgen.pdf)~[chg](other/patgen-changes.pdf)~ \| + [`PKtoGF`](other/pktogf.pdf)~[chg](other/pktogf-changes.pdf)~ \| + [`PKtype`](other/pktype.pdf)~[chg](other/pktype-changes.pdf)~ \] +* `bibtex/` \[ [`BibTeX`](bibtex/bibtex.pdf)~[chg](bibtex/bibtex-changes.pdf)~ \] +* `pdftex/` \[ [`pdfTeX`](pdftex/pdftex.pdf)~[chg](pdftex/pdftex-changes.pdf)~ \] +* `xetex/` \[ [`XeTeX`](xetex/xetex.pdf)~[chg](xetex/xetex-changes.pdf)~ \] ## CWEB programs * `cweb/` \[ [`CWEBMAN`](cweb/cwebman.pdf) \| - [`COMMON`](cweb/common.pdf)<sub>[chg](cweb/common-changes.pdf)</sub> \| - [`CTANGLE`](cweb/ctangle.pdf)<sub>[chg](cweb/ctangle-changes.pdf)</sub> \| - [`CWEAVE`](cweb/cweave.pdf)<sub>[chg](cweb/cweave-changes.pdf)</sub> \| + [`COMMON`](cweb/common.pdf)~[chg](cweb/common-changes.pdf)~ \| + [`CTANGLE`](cweb/ctangle.pdf)~[chg](cweb/ctangle-changes.pdf)~ \| + [`CWEAVE`](cweb/cweave.pdf)~[chg](cweb/cweave-changes.pdf)~ \| [`CTWILL`](cweb/ctwill.pdf) \] -* `ctie/` \[ [`CTIE`](ctie/ctie.pdf)<sub>[chg](ctie/ctie-changes.pdf)</sub> \] -* `tie/` \[ [`TIE`](tie/tie.pdf)<sub>[chg](tie/tie-changes.pdf)</sub> \] +* `ctie/` \[ [`CTIE`](ctie/ctie.pdf)~[chg](ctie/ctie-changes.pdf)~ \] +* `tie/` \[ [`TIE`](tie/tie.pdf)~[chg](tie/tie-changes.pdf)~ \] ## Happy C/WEB Programming! diff --git a/Master/texmf-dist/doc/plain/pwebmac/makeall b/Master/texmf-dist/doc/plain/pwebmac/makeall index 3df890bf197..035141119b2 100644 --- a/Master/texmf-dist/doc/plain/pwebmac/makeall +++ b/Master/texmf-dist/doc/plain/pwebmac/makeall @@ -1,22 +1,64 @@ #!/bin/sh -# Test driver for 'pwebmac.tex' in combination with various TeX engines. -# Production tool for all major WEB programs in TeX Live (invoked as -# './makeall --new --pdftocfront --tex={pdftex,xetex}'). -# Public domain. Originally written by Andreas Scherer, 2020. -LONGOPTS=changes,new,outdir:,pdftocfront,tex: -SHRTOPTS=cno:pt: +PROG=$(basename $0) -CHANGES=false # apply main changefile to WEB source -NEW=false # '\input pwebmac' instead of '\input webmac' +usage () +{ + cat << HELP +Usage: $PROG [options] + +Test driver for 'pwebmac.tex' in combination with various TeX engines. +Produce TeX output in DVI or PDF from a set of C/WEB programs included +in the 'TeX Live' source tree. + +Options are (--long options only with GNU getopt): + -c, --changes Apply change file to C/WEB source + -f, --files STRING Process only subset of C/WEB programs + -h, --help Print this help message and exit + -n, --new Use 'pwebmac' instead of 'webmac' + -o, --outdir ARG Create tarballs in path ARG + -p, --pdftocfront Place TOC page at the front (PDF only) + -t, --tex ARG Use TeX variant ARG={tex,pdftex,xetex} + +Public domain. Originally written by Andreas Scherer, 2020. +HELP +} + +LONGOPTS=changes,files:,help,new,outdir:,pdftocfront,tex: +SHRTOPTS=cf:hno:pt: + +CHANGES=false # apply changefile to C/WEB source +NEW=false # '\input pwebmac' instead of '\input webmac' for PDF et al. OUTDIR=. # path where the resulting tarballs are placed PDFTOCFRONT=false # push table-of-contents to front of PDF output TEX=tex # or 'pdftex' or 'xetex' +# Initial list of C/WEB sources to process, overridable with option '-f': +KNUTHWHERE=$(locate /bibtex.web) +if [ -z "$KNUTHWHERE" ] +then echo "$PROG: Can't locate the TeX Live source tree!" >&2; exit 1 +fi +KNUTHWARE=$(dirname $KNUTHWHERE) + +FILES="$KNUTHWARE/*.web pdftex.web xetex.web" +WEBINPUTS=$KNUTHWARE//: + +FILES="$FILES common ctangle cweave ctwill ctie tie" +CWEBINPUTS=$KNUTHWARE//: + +KNUTHWHERE=$(locate /glue.web) +if [ -n "$KNUTHWHERE" ] +then + FILES="$FILES $KNUTHWHERE" + WEBINPUTS=$(dirname $KNUTHWHERE):$KNUTHWARE//: +fi + +export WEBINPUTS CWEBINPUTS + getopt -T >/dev/null if [ $? -eq 4 ] # Check for Linux-getopt with extensions -then OPTS=$(getopt -n downloadable-programs -o $SHRTOPTS -l $LONGOPTS -- "$@") +then OPTS=$(getopt -n $PROG -o $SHRTOPTS -l $LONGOPTS -- "$@") else OPTS=$(getopt $SHRTOPTS $*) fi @@ -29,31 +71,27 @@ while true do case "$1" in -c | --changes ) CHANGES=true; shift ;; + -f | --files ) FILES="$2"; shift 2 ;; + -h | --help ) usage; exit 0 ;; -n | --new ) NEW=true; shift ;; -o | --outdir ) OUTDIR="$2"; shift 2 ;; -p | --pdftocfront ) PDFTOCFRONT=true; shift ;; -t | --tex ) TEX=$2; shift 2 ;; -- ) shift; break ;; - * ) break ;; + * ) usage; exit 1 ;; esac done -KNUTHWHERE=$(locate /bibtex.web) -KNUTHWARE=$(dirname $KNUTHWHERE) - -export CWEBINPUTS=$KNUTHWARE//: -export WEBINPUTS=$KNUTHWARE//: - if [ xetex = $TEX ] then CWEAVE="cweave -f -lp+" else CWEAVE="cweave -f" fi CTWILL="ctwill -f +lpdf" +PAX="pax -wvzf" +SED_I="sed -i" # non-GNU-sed requires an extra '' argument for '-i' option. # WEB and CWEB programs we want to get formatted -for f in \ - $KNUTHWARE/*.web pdftex.web xetex.web \ - common ctangle cweave ctwill ctie tie +for f in $FILES do f=$(basename $f .web) @@ -62,38 +100,46 @@ do # apply tons of editorial changes to 'ctwill.w' ctie -m $f.w cweave.w $f-w2c.ch $f-mini.ch cp -an $KNUTHWARE/cwebdir/*.bux . - $CTWILL $f - $CTWILL $f + $CTWILL $f # prime the pump + $CTWILL $f # get decent answers + + elif [ glue = $f ] + then + weave $f # no 'glue.ch' at this time elif $CHANGES then case $f in + # CWEB programs have individual changefiles common ) $CWEAVE $f comm-w2c ;; ctangle ) $CWEAVE $f ctang-w2c ;; cweave ) $CWEAVE $f cweav-w2c ;; ctie ) $CWEAVE $f $f-k ;; tie ) $CWEAVE $f $f-w2c ;; - * ) # pdftex.ch and xetex.ch for TeX Live are assembled here + # main WEB programs have complex change files + tex | mf | pdftex | xetex ) WEBINPUTS=$KNUTHWARE/../../Work//:$WEBINPUTS: \ - weave $f $f ;; + weave $f $f-final ;; + + # all other WEB codes have singular changefiles + * ) weave $f $f ;; esac - # FIX: XeTeX uses '\pdfTeX' from section 114, which - # is not changed and thus 'disappears' + # FIX: XeTeX uses '\pdfTeX' from section 114, which is not + # changed and thus 'disappears'; repeat in preamble. if [ xetex = $f ] then - sed -i -e "s/\(\\\\let\\\\maybe\)/\\\\def\\\\pdfTeX{pdf\\\\TeX}\n\1/" \ + $SED_I -e "s/\(\\\\let\\\\maybe\)/\\\\def\\\\pdfTeX{pdf\\\\TeX}\n\1/" \ $f.tex fi # only document changed modules/sections - sed -i -e "s/\(\\\\let\\\\maybe=\)\\\\iftrue/\1\\\\iffalse/" \ + $SED_I -e "s/\(\\\\let\\\\maybe=\)\\\\iftrue/\1\\\\iffalse/" \ $f.tex else case $f in c* | tie ) $CWEAVE $f ;; - * ) weave $f ;; esac fi @@ -101,22 +147,22 @@ do if $NEW then # use extended WEB macros for TeX Live PDF documentation - sed -i -e "1 s/\\\\input webmac/\\\\input pwebmac/" $f.tex + $SED_I -e "1 s/\\\\input webmac/\\\\input pwebmac/" $f.tex # timestamp on table-of-contents page or the first page case $f in c* | tie ) ;; # do nothing for CWEB programs bibtex | patgen | tangle | weave ) - sed -i -e "s/\(\\\\def\\\\title\)/\\\\datecontentspage\n\1/" $f.tex ;; + $SED_I -e "s/\(\\\\def\\\\title\)/\\\\datecontentspage\n\1/" $f.tex ;; mf | tex | pdftex | xetex ) - sed -i -e "s/\(\\\\def\\\\botofcontents\)/\\\\datethis\n\1/" $f.tex + $SED_I -e "s/\(\\\\def\\\\botofcontents\)/\\\\datethis\n\1/" $f.tex # amend '\N' redefinition for PDF outlines in # Metafont and TeX (also pdfTeX and XeTeX) # 'pwebmac' defines headers differently - sed -i -e "s/\(\\\\outer\\\\def\\\\N.*{\)/\1%/" \ + $SED_I -e "s/\(\\\\outer\\\\def\\\\N.*{\)/\1%/" \ -e "s/\\\\def\\\\rhead\(.*}\)/\\\\gtitle=\1\\\\MN#1.\\\\vfill\\\\eject/" \ $f.tex @@ -124,7 +170,7 @@ do cat > texmf-pdf.patch << FI \ifacro{\toksF={}\makeoutlinetoks{[#2] #3}\outlinedone\outlinedone}\fi FI - sed -i -e "/\\\\outer\\\\def\\\\N/ { + $SED_I -e "/\\\\outer\\\\def\\\\N/ { r texmf-pdf.patch }" $f.tex @@ -132,12 +178,12 @@ FI \ifpdf\special{pdf: outline 0 << /Title (\the\toksE) /Dest [ @thispage /FitH @ypos ] >>}\fi FI - sed -i -e "/ \\\\edef\\\\next/ { + $SED_I -e "/ \\\\edef\\\\next/ { r texmf-pdf.patch }" $f.tex rm texmf-pdf.patch ;; - * ) sed -i -e "s/\(\\\\def\\\\botofcontents\)/%\1/" \ + * ) $SED_I -e "s/\(\\\\def\\\\botofcontents\)/%\1/" \ -e "s/ \\\\centerline{\(\\\\hsize\)/\\\\def\\\\covernote{\1/" \ -e "s/\(Publishing Company.}}\)}/\1\n\\\\datecontentspage/" \ -e "s/\(trademark of the American Mathematical Society.}}\)}/\1\n\\\\datecontentspage/" \ @@ -147,38 +193,51 @@ FI # replace former convention to indicate "not a title page" # to include page headers for table-of-contents - # FIX: most of the WEB codes will be corrected. - sed -i -e "s/\\\\def\\\\titlepage{F}/\\\\titlefalse/" $f.tex + # FIX: most of the WEB codes will be corrected upstream. + $SED_I -e "s/\\\\def\\\\titlepage{F}/\\\\titlefalse/" $f.tex - # special treatment for individual (C)WEB programs + # special treatment for individual C/WEB programs case $f in # purge conflict between bibtex.web and webmac.tex # 'E' no longer free to be active character # fix table-of-contents page for bibtex # FIX: don't wait for Oren Patashnik. - bibtex ) sed -i -e "s/titlefalse/titletrue/" $f.tex + bibtex ) $SED_I -e "s/titlefalse/titletrue/" $f.tex if ! $CHANGES then - sed -i -e "71,78d" $f.tex + $SED_I -e "71,78d" $f.tex + fi ;; + + # FIX: 'glue.web' obviously uses an old 'webmac.tex'. + glue ) $SED_I -e "s/\(\\\\def\\\\title{GLUE}\)/\1\n\\\\pageno=\\\\contentspagenumber \\\\advance\\\\pageno by1\\\\relax/" \ + -e "s/titlefalse/titletrue/" $f.tex ;; + + # FIX: pdfTeX uses '\pdfTeX' in section names; these should + # appear correctly in the bookmarks, too. + pdftex ) + if $NEW && [ tex != $TEX ] + then + $SED_I -e "s/\(\\\\def\\\\pdfTeX{pdf\\\\TeX}\)/\1 \\\\sanitizecommand\\\\pdfTeX{pdfTeX}\\\\sanitizecommand\\\\eTeX{e-TeX}/" \ + $f.tex fi ;; # make room for new material in weave.web # FIX: should be fixed upstream. - tangle ) sed -i -e "s/number{123}/number{125}/" $f.tex ;; + tangle ) $SED_I -e "s/number{123}/number{125}/" $f.tex ;; - # FIX: purge obsolete macros from XeTeX - xetex ) sed -i -e "/\\\\input xewebmac/d" $f.tex ;; + # FIX: purge obsolete macros from XeTeX. + xetex ) $SED_I -e "/\\\\input xewebmac/d" $f.tex ;; # Use nicer format for C comments and assignment common | ctangle | cweave | ctie | tie ) # sans ctwill - sed -i -e "1 s/\(cwebmac\)/\1\n\\\\input Xcwebmac/" \ + $SED_I -e "1 s/\(cwebmac\)/\1\n\\\\input Xcwebmac/" \ $f.tex ;; esac # shift table-of-contents pages to the front in PDF if $PDFTOCFRONT && [ ctwill != $f ] then - sed -i -e "0,/\\\\N[1{]/s/\(\\\\N[1{]\)/\\\\input pdfwebtocfront\n\n\1/" \ + $SED_I -e "0,/\\\\N[1{]/s/\(\\\\N[1{]\)/\\\\input pdfwebtocfront\n\n\1/" \ $f.tex # only XeTeX can process XETEX.WEB @@ -202,93 +261,111 @@ FI fi done -# Finally, build the remaining documents -# * TeX and Metafont test routines -# * WEB and CWEB manuals -if ! $CHANGES -then - export TEXINPUTS=./:$(kpsewhich --var-value=TEXMFDIST)//:$KNUTHWARE// - - rm -f trapman.tex webman.tex cwebman.tex - - # FIX: Prepare 'trapman' for automatic processing; several input - # files are renamed in TeX Live (in fact, there are additional - # files for MetaPost). - f=$(kpsewhich -engine tex trapman) - tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch - - # Prepare 'webman' with section links and bookmarks. - f=$(kpsewhich -engine tex webman) - tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch - - # Prepare 'cwebman' with footnotes describing the extended CWEB. - f=$(kpsewhich -engine tex cwebman) - tie -m $(basename $f) $f $(basename $f .tex)-w2c.ch - - for f in trip trap web cweb - do - $TEX ${f}man - done -fi - if $PDFTOCFRONT then - # create tarballs for publication + # create tarballs w/o changes for publication if $CHANGES then for f in *.pdf do case $f in - *-changes.pdf ) rm -f $f + *-changes.pdf ) rm -f $f; continue ;; esac mv $f $(basename $f .pdf)-changes.pdf done - pax vftovp-changes.pdf vptovf-changes.pdf \ - -wvzf "$OUTDIR/etc-changes.tar.gz" -s ,^,etc/, - pax mf-changes.pdf -wvzf "$OUTDIR/mf-changes.tar.gz" -s ,^,mf/, - pax gftodvi-changes.pdf gftopk-changes.pdf \ - gftype-changes.pdf mft-changes.pdf \ - -wvzf "$OUTDIR/mfware-changes.tar.gz" -s ,^,mfware/, - pax tex-changes.pdf -wvzf "$OUTDIR/tex-changes.tar.gz" -s ,^,tex/, - pax dvitype-changes.pdf pltotf-changes.pdf \ - pooltype-changes.pdf tftopl-changes.pdf \ - -wvzf "$OUTDIR/texware-changes.tar.gz" -s ,^,texware/, - pax tangle-changes.pdf weave-changes.pdf \ - -wvzf "$OUTDIR/web-changes.tar.gz" -s ,^,web/, - pax bibtex-changes.pdf \ - -wvzf "$OUTDIR/bibtex-changes.tar.gz" -s ,^,bibtex/, - pax dvicopy-changes.pdf patgen-changes.pdf \ - pktogf-changes.pdf pktype-changes.pdf \ - -wvzf "$OUTDIR/other-changes.tar.gz" -s ,^,other/, - pax pdftex-changes.pdf \ - -wvzf "$OUTDIR/pdftex-changes.tar.gz" -s ,^,pdftex/, - pax xetex-changes.pdf \ - -wvzf "$OUTDIR/xetex-changes.tar.gz" -s ,^,xetex/, - pax ctie-changes.pdf \ - -wvzf "$OUTDIR/ctie-changes.tar.gz" -s ,^,ctie/, - pax tie-changes.pdf \ - -wvzf "$OUTDIR/tie-changes.tar.gz" -s ,^,tie/, - pax common-changes.pdf ctangle-changes.pdf cweave-changes.pdf \ - -wvzf "$OUTDIR/cweb-changes.tar.gz" -s ,^,cweb/, + $PAX "$OUTDIR/etc-changes.tar.gz" -s ,^,etc/, \ + vftovp-changes.pdf vptovf-changes.pdf + $PAX "$OUTDIR/mf-changes.tar.gz" -s ,^,mf/, \ + mf-changes.pdf + $PAX "$OUTDIR/mfware-changes.tar.gz" -s ,^,mfware/, \ + gftodvi-changes.pdf gftopk-changes.pdf \ + gftype-changes.pdf mft-changes.pdf + $PAX "$OUTDIR/tex-changes.tar.gz" -s ,^,tex/, \ + tex-changes.pdf + $PAX "$OUTDIR/texware-changes.tar.gz" -s ,^,texware/, \ + dvitype-changes.pdf pltotf-changes.pdf \ + pooltype-changes.pdf tftopl-changes.pdf + $PAX "$OUTDIR/web-changes.tar.gz" -s ,^,web/, \ + tangle-changes.pdf weave-changes.pdf + $PAX "$OUTDIR/bibtex-changes.tar.gz" -s ,^,bibtex/, \ + bibtex-changes.pdf + $PAX "$OUTDIR/other-changes.tar.gz" -s ,^,other/, \ + dvicopy-changes.pdf patgen-changes.pdf \ + pktogf-changes.pdf pktype-changes.pdf + $PAX "$OUTDIR/pdftex-changes.tar.gz" -s ,^,pdftex/, \ + pdftex-changes.pdf + $PAX "$OUTDIR/xetex-changes.tar.gz" -s ,^,xetex/, \ + xetex-changes.pdf + $PAX "$OUTDIR/ctie-changes.tar.gz" -s ,^,ctie/, \ + ctie-changes.pdf + $PAX "$OUTDIR/tie-changes.tar.gz" -s ,^,tie/, \ + tie-changes.pdf + $PAX "$OUTDIR/cweb-changes.tar.gz" -s ,^,cweb/, \ + common-changes.pdf ctangle-changes.pdf \ + cweave-changes.pdf else - pax vftovp.pdf vptovf.pdf -wvzf "$OUTDIR/etc.tar.gz" -s ,^,etc/, - pax mf.pdf trapman.pdf -wvzf "$OUTDIR/mf.tar.gz" -s ,^,mf/, - pax gftodvi.pdf gftopk.pdf gftype.pdf mft.pdf \ - -wvzf "$OUTDIR/mfware.tar.gz" -s ,^,mfware/, - pax tex.pdf tripman.pdf -wvzf "$OUTDIR/tex.tar.gz" -s ,^,tex/, - pax dvitype.pdf pltotf.pdf pooltype.pdf tftopl.pdf \ - -wvzf "$OUTDIR/texware.tar.gz" -s ,^,texware/, - pax webman.pdf tangle.pdf weave.pdf \ - -wvzf "$OUTDIR/web.tar.gz" -s ,^,web/, - pax bibtex.pdf -wvzf "$OUTDIR/bibtex.tar.gz" -s ,^,bibtex/, - pax dvicopy.pdf patgen.pdf pktogf.pdf pktype.pdf \ - -wvzf "$OUTDIR/other.tar.gz" -s ,^,other/, - pax pdftex.pdf -wvzf "$OUTDIR/pdftex.tar.gz" -s ,^,pdftex/, - pax xetex.pdf -wvzf "$OUTDIR/xetex.tar.gz" -s ,^,xetex/, - pax ctie.pdf -wvzf "$OUTDIR/ctie.tar.gz" -s ,^,ctie/, - pax tie.pdf -wvzf "$OUTDIR/tie.tar.gz" -s ,^,tie/, - pax cwebman.pdf common.pdf ctangle.pdf cweave.pdf ctwill.pdf \ - -wvzf "$OUTDIR/cweb.tar.gz" -s ,^,cweb/, + # Finally, build the remaining documents + # * TeX and Metafont test routines + # * WEB and CWEB manuals + export TEXINPUTS=.:$(kpsewhich --var-value=TEXMFDIST)//:$KNUTHWARE// + + rm -f trapman.tex webman.tex cwebman.tex errorlog.tex + + # FIX: Prepare 'trapman' for automatic processing; several + # input files are renamed in TeX Live (in fact, there are + # additional files for MetaPost). + f=$(kpsewhich -engine tex trapman) + tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch + + # Prepare 'webman' with section links and bookmarks. + f=$(kpsewhich -engine tex webman) + tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch + + # Prepare 'cwebman' with footnotes describing the extended CWEB. + f=$(kpsewhich -engine tex cwebman) + tie -m $(basename $f) $f $(basename $f .tex)-w2c.ch + + # FIX: Prepare 'errorlog.tex' for automatic processing; + # requires a 'meta-bug' to be fixed. + f=$(kpsewhich -engine tex errorlog) + tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch + touch pages.tex # let 'manmac' produce output at all + + for f in tripman trapman webman cwebman errorlog + do + $TEX $f + done + + for f in one two three four five six seven eight nine ten \ + eleven # twelve + do + $TEX errata.$f + mv errata.pdf errata.$f.pdf + done + + $TEX errata + + $PAX "$OUTDIR/errata.tar.gz" -s ,^,errata/, \ + errorlog.pdf errata.*.pdf errata.pdf + $PAX "$OUTDIR/etc.tar.gz" -s ,^,etc/, vftovp.pdf vptovf.pdf + $PAX "$OUTDIR/mf.tar.gz" -s ,^,mf/, mf.pdf trapman.pdf + $PAX "$OUTDIR/mfware.tar.gz" -s ,^,mfware/, \ + gftodvi.pdf gftopk.pdf gftype.pdf mft.pdf + $PAX "$OUTDIR/tex.tar.gz" -s ,^,tex/, \ + glue.pdf tex.pdf tripman.pdf + $PAX "$OUTDIR/texware.tar.gz" -s ,^,texware/, \ + dvitype.pdf pltotf.pdf pooltype.pdf tftopl.pdf + $PAX "$OUTDIR/web.tar.gz" -s ,^,web/, \ + webman.pdf tangle.pdf weave.pdf + $PAX "$OUTDIR/bibtex.tar.gz" -s ,^,bibtex/, bibtex.pdf + $PAX "$OUTDIR/other.tar.gz" -s ,^,other/, \ + dvicopy.pdf patgen.pdf pktogf.pdf pktype.pdf + $PAX "$OUTDIR/pdftex.tar.gz" -s ,^,pdftex/, pdftex.pdf + $PAX "$OUTDIR/xetex.tar.gz" -s ,^,xetex/, xetex.pdf + $PAX "$OUTDIR/ctie.tar.gz" -s ,^,ctie/, ctie.pdf + $PAX "$OUTDIR/tie.tar.gz" -s ,^,tie/, tie.pdf + $PAX "$OUTDIR/cweb.tar.gz" -s ,^,cweb/, \ + cwebman.pdf common.pdf ctangle.pdf cweave.pdf ctwill.pdf fi fi |