texlive[56383] Master/texmf-dist/doc/plain/pwebmac: pwebmac

commits+karl at tug.org commits+karl at tug.org
Sun Sep 20 22:55:58 CEST 2020


Revision: 56383
          http://tug.org/svn/texlive?view=revision&revision=56383
Author:   karl
Date:     2020-09-20 22:55:58 +0200 (Sun, 20 Sep 2020)
Log Message:
-----------
pwebmac

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/plain/pwebmac/README.md
    trunk/Master/texmf-dist/doc/plain/pwebmac/index.md
    trunk/Master/texmf-dist/doc/plain/pwebmac/makeall

Modified: trunk/Master/texmf-dist/doc/plain/pwebmac/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/plain/pwebmac/README.md	2020-09-19 23:47:39 UTC (rev 56382)
+++ trunk/Master/texmf-dist/doc/plain/pwebmac/README.md	2020-09-20 20:55:58 UTC (rev 56383)
@@ -29,4 +29,4 @@
 
 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.

Modified: trunk/Master/texmf-dist/doc/plain/pwebmac/index.md
===================================================================
--- trunk/Master/texmf-dist/doc/plain/pwebmac/index.md	2020-09-19 23:47:39 UTC (rev 56382)
+++ trunk/Master/texmf-dist/doc/plain/pwebmac/index.md	2020-09-20 20:55:58 UTC (rev 56383)
@@ -25,51 +25,65 @@
 
 ## 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!

Modified: trunk/Master/texmf-dist/doc/plain/pwebmac/makeall
===================================================================
--- trunk/Master/texmf-dist/doc/plain/pwebmac/makeall	2020-09-19 23:47:39 UTC (rev 56382)
+++ trunk/Master/texmf-dist/doc/plain/pwebmac/makeall	2020-09-20 20:55:58 UTC (rev 56383)
@@ -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 @@
 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,12 +100,17 @@
 		# 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 ;;
@@ -74,26 +117,29 @@
 			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,7 +147,7 @@
 	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
@@ -108,15 +154,15 @@
 			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 @@
 				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 @@
   \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,31 +193,44 @@
 
 	# 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
 
@@ -178,7 +237,7 @@
 	# 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
 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
 



More information about the tex-live-commits mailing list.