summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-14 03:02:44 +0000
committerNorbert Preining <norbert@preining.info>2020-09-14 03:02:44 +0000
commit8286136dd8363bdb61246528fd58a970c7eb1256 (patch)
treeedbfb523c442b343c16c5876a0a40d466f5eda94 /web
parentce9a7b44d2a859ce796a88c893def7a033f0b8de (diff)
CTAN sync 202009140302
Diffstat (limited to 'web')
-rw-r--r--web/pwebmac/README.md2
-rw-r--r--web/pwebmac/index.md68
-rwxr-xr-xweb/pwebmac/makeall319
3 files changed, 240 insertions, 149 deletions
diff --git a/web/pwebmac/README.md b/web/pwebmac/README.md
index cfb33f4cdd..92335dcbea 100644
--- a/web/pwebmac/README.md
+++ b/web/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/web/pwebmac/index.md b/web/pwebmac/index.md
index b8edf09a54..0df2b9d9f5 100644
--- a/web/pwebmac/index.md
+++ b/web/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/web/pwebmac/makeall b/web/pwebmac/makeall
index 3df890bf19..035141119b 100755
--- a/web/pwebmac/makeall
+++ b/web/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