diff --git a/books/Makefile b/books/Makefile
deleted file mode 100644
index d91e0ea..0000000
--- a/books/Makefile
+++ /dev/null
@@ -1,205 +0,0 @@
-AXIOM=/usr/local/axiom/mnt/fedora5
-TANGLE=${AXIOM}/bin/lib/notangle
-WEAVE=${AXIOM}/bin/lib/noweave 
-LATEX=latex
-MAKEINDEX=makeindex
-DVIPS=dvips -Ppdf
-PS2PDF=ps2pdf
-RM=rm -f
-
-all: 
-
-remake: bookvol0 bookvol1 bookvol2 bookvol3 bookvol4 bookvol5 bookvol6 \
-        bookvol7 bookvol8 bookvol9 bookvol10 bookvol11 bookvol12 toc
-
-toc:
-	@echo "\\documentclass{book}" >toc.tex
-	@echo "\\begin{document}" >>toc.tex
-	@echo "{\\bf Volume ~ 0}: Axiom {\\sl Jenks and Sutor}\\\\" >toc.toc
-	@echo "{\\bf Volume ~ 1}: Axiom {\\sl Tutorial}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 2}: Axiom {\\sl Users Guide}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 3}: Axiom {\\sl Programmers Guide}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 4}: Axiom {\\sl Developers Guide}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 5}: Axiom {\\sl Interpreter}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 6}: Axiom {\\sl Command}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 7}: Axiom {\\sl Hyperdoc}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 8}: Axiom {\\sl Graphics}\\\\" >>toc.toc
-	@echo "{\\bf Volume ~ 9}: Axiom {\\sl Compiler}\\\\" >>toc.toc
-	@echo "{\\bf Volume 10}: Axiom {\\sl Algebra}\\\\" >>toc.toc
-	@echo "{\\bf Volume 11}: Axiom {\\sl Browser}\\\\" >>toc.toc
-	@echo "{\\bf Volume 12}: Axiom {\\sl Crystal}\\\\" >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\tableofcontents" >>toc.tex
-	@echo "\\end{document}" >>toc.tex
-	@echo "\\section*{Volume 0: Axiom Jenks and Sutor}" >>toc.toc
-	@cat bookvol0.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 1: Axiom Tutorial}" >>toc.toc
-	@cat bookvol1.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 2: Axiom Users Guide}" >>toc.toc
-	@cat bookvol2.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 3: Axiom Programmers Guide}" >>toc.toc
-	@cat bookvol3.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 4: Axiom Developers Guide}" >>toc.toc
-	@cat bookvol4.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 5: Axiom Interpreter}" >>toc.toc
-	@cat bookvol5.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 6: Axiom Command}" >>toc.toc
-	@cat bookvol6.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 7: Axiom Hyperdoc}" >>toc.toc
-	@cat bookvol7.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 8: Axiom Graphics}" >>toc.toc
-	@cat bookvol8.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 9: Axiom Compiler}" >>toc.toc
-	@cat bookvol9.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 10: Axiom Algebra}" >>toc.toc
-	@cat bookvol10.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 11: Axiom Browser}" >>toc.toc
-	@cat bookvol11.toc >>toc.toc
-	@echo "\\newpage" >>toc.toc
-	@echo "\\section*{Volume 12: Axiom Crystal}" >>toc.toc
-	@cat bookvol12.toc >>toc.toc
-	@${LATEX} toc.tex
-	@${DVIPS} toc.dvi 2>/dev/null
-	@${PS2PDF} toc.ps >/dev/null
-	@${RM} -f *.toc toc.aux toc.dvi toc.log toc.ps toc.tex toc.toc
-
-bookvol0: 
-	@${LATEX} bookvol0.pamphlet
-	@${LATEX} bookvol0.pamphlet >/dev/null
-	@${DVIPS} bookvol0.dvi 2>/dev/null
-	@${PS2PDF} bookvol0.ps >/dev/null
-	@${RM} bookvol0.aux bookvol0.dvi bookvol0.log bookvol0.ps \
-               bookvol0.idx bookvol0.tex
-
-bookvol1:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol1.pamphlet >bookvol1.tex)
-	@${LATEX} bookvol1.tex
-	@${LATEX} bookvol1.tex >/dev/null
-	@${DVIPS} bookvol1.dvi 2>/dev/null
-	@${PS2PDF} bookvol1.ps >/dev/null
-	@${RM} bookvol1.aux bookvol1.dvi bookvol1.log bookvol1.ps \
-               bookvol1.idx bookvol1.tex
-
-bookvol2:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol2.pamphlet >bookvol2.tex)
-	@${LATEX} bookvol2.tex
-	@${LATEX} bookvol2.tex >/dev/null
-	@${DVIPS} bookvol2.dvi 2>/dev/null
-	@${PS2PDF} bookvol2.ps >/dev/null
-	@${RM} bookvol2.aux bookvol2.dvi bookvol2.log bookvol2.ps \
-               bookvol2.idx bookvol2.tex
-
-bookvol3:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol3.pamphlet >bookvol3.tex)
-	@${LATEX} bookvol3.tex
-	@${LATEX} bookvol3.tex >/dev/null
-	@${DVIPS} bookvol3.dvi 2>/dev/null
-	@${PS2PDF} bookvol3.ps >/dev/null
-	@${RM} bookvol3.aux bookvol3.dvi bookvol3.log bookvol3.ps \
-               bookvol3.idx bookvol3.tex
-
-bookvol4:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol4.pamphlet >bookvol4.tex)
-	@${LATEX} bookvol4.tex
-	@${LATEX} bookvol4.tex >/dev/null
-	@${DVIPS} bookvol4.dvi 2>/dev/null
-	@${PS2PDF} bookvol4.ps >/dev/null
-	@${RM} bookvol4.aux bookvol4.dvi bookvol4.log bookvol4.ps \
-               bookvol4.idx bookvol4.tex
-
-bookvol5:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol5.pamphlet >bookvol5.tex)
-	@${LATEX} bookvol5.tex
-	@${LATEX} bookvol5.tex >/dev/null
-	@${DVIPS} bookvol5.dvi 2>/dev/null
-	@${PS2PDF} bookvol5.ps >/dev/null
-	@${RM} bookvol5.aux bookvol5.dvi bookvol5.log bookvol5.ps \
-               bookvol5.idx bookvol5.tex
-
-bookvol6:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol6.pamphlet >bookvol6.tex)
-	@${LATEX} bookvol6.tex
-	@${LATEX} bookvol6.tex >/dev/null
-	@${DVIPS} bookvol6.dvi 2>/dev/null
-	@${PS2PDF} bookvol6.ps >/dev/null
-	@${RM} bookvol6.aux bookvol6.dvi bookvol6.log bookvol6.ps \
-               bookvol6.idx bookvol6.tex
-
-bookvol7:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol7.pamphlet >bookvol7.tex)
-	@${LATEX} bookvol7.tex
-	@${LATEX} bookvol7.tex >/dev/null
-	@${DVIPS} bookvol7.dvi 2>/dev/null
-	@${PS2PDF} bookvol7.ps >/dev/null
-	@${RM} bookvol7.aux bookvol7.dvi bookvol7.log bookvol7.ps \
-               bookvol7.idx bookvol7.tex
-
-bookvol8:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol8.pamphlet >bookvol8.tex)
-	@${LATEX} bookvol8.tex
-	@${LATEX} bookvol8.tex >/dev/null
-	@${DVIPS} bookvol8.dvi 2>/dev/null
-	@${PS2PDF} bookvol8.ps >/dev/null
-	@${RM} bookvol8.aux bookvol8.dvi bookvol8.log bookvol8.ps \
-               bookvol8.idx bookvol8.tex
-
-bookvol9:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol9.pamphlet >bookvol9.tex)
-	@${LATEX} bookvol9.tex
-	@${LATEX} bookvol9.tex >/dev/null
-	@${DVIPS} bookvol9.dvi 2>/dev/null
-	@${PS2PDF} bookvol9.ps >/dev/null
-	@${RM} bookvol9.aux bookvol9.dvi bookvol9.log bookvol9.ps \
-               bookvol9.idx bookvol9.tex
-
-bookvol10:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol10.pamphlet >bookvol10.tex)
-	@${LATEX} bookvol10.tex
-	@${LATEX} bookvol10.tex >/dev/null
-	@${DVIPS} bookvol10.dvi 2>/dev/null
-	@${PS2PDF} bookvol10.ps >/dev/null
-	@${RM} bookvol10.aux bookvol10.dvi bookvol10.log bookvol10.ps \
-	       bookvol10.idx bookvol10.tex
-
-bookvol11:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol11.pamphlet >bookvol11.tex)
-	@${LATEX} bookvol11.tex
-	@${LATEX} bookvol11.tex >/dev/null
-	@${DVIPS} bookvol11.dvi 2>/dev/null
-	@${PS2PDF} bookvol11.ps >/dev/null
-	@${RM} bookvol11.aux bookvol11.dvi bookvol11.log bookvol11.ps \
-	       bookvol11.idx bookvol11.tex
-
-bookvol12:
-	@(export AXIOM=${AXIOM} && \
-	  ${WEAVE} -delay bookvol12.pamphlet >bookvol12.tex)
-	@${LATEX} bookvol12.tex
-	@${LATEX} bookvol12.tex >/dev/null
-	@${DVIPS} bookvol12.dvi 2>/dev/null
-	@${PS2PDF} bookvol12.ps >/dev/null
-	@${RM} bookvol12.aux bookvol12.dvi bookvol12.log bookvol12.ps \
-	       bookvol12.idx bookvol12.tex
-
-
diff --git a/books/Makefile.pamphlet b/books/Makefile.pamphlet
new file mode 100644
index 0000000..27843db
--- /dev/null
+++ b/books/Makefile.pamphlet
@@ -0,0 +1,469 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{books/Makefile}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+This Makefile creates all the primary documentation for Axiom
+as pdf files in the final output tree.
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{The Makefile}
+<<*>>=
+PDF=${AXIOM}/doc
+IN=${SPD}/books
+LATEX=latex
+MAKEINDEX=makeindex
+DVIPS=dvips -Ppdf
+PS2PDF=ps2pdf
+RM=rm -f
+
+BOOKS=${PDF}/bookvol0.pdf ${PDF}/bookvol1.pdf ${PDF}/bookvol2.pdf \
+      ${PDF}/bookvol3.pdf ${PDF}/bookvol4.pdf ${PDF}/bookvol5.pdf \
+      ${PDF}/bookvol6.pdf ${PDF}/bookvol7.pdf ${PDF}/bookvol8.pdf \
+      ${PDF}/bookvol9.pdf ${PDF}/bookvol10.pdf ${PDF}/bookvol11.pdf \
+      ${PDF}/bookvol12.pdf 
+
+all: ${BOOKS} ${PDF}/toc.pdf
+
+@
+\section{Volume 0: Axiom Jenks and Sutor}
+This is the reconstructed Jenks and Sutor volume.
+<<*>>=
+${PDF}/bookvol0.pdf: ${IN}/bookvol0.pamphlet ${PDF}/axiom.sty
+	@echo 0 making ${PDF}/bookvol0.pdf from ${IN}/bookvol0.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol0.pamphlet ${PDF} ; \
+	  cp -pr ${IN}/ps ${PDF} ; \
+	  ${WEAVE} -delay bookvol0.pamphlet >bookvol0.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol0.tex ; \
+	    ${LATEX} bookvol0.tex >/dev/null ; \
+	    ${DVIPS} bookvol0.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol0.ps >/dev/null ; \
+	    ${RM} bookvol0.aux bookvol0.dvi bookvol0.log bookvol0.ps \
+                  bookvol0.idx bookvol0.tex bookvol0.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol0.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol0.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol0.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol0.ps >${TMP}/trace  ; \
+	    ${RM} bookvol0.aux bookvol0.dvi bookvol0.log bookvol0.ps \
+                  bookvol0.idx bookvol0.tex bookvol0.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 1: Axiom Tutorial}
+This is the tutorial volume. ISBN 1-411-66587-X. 
+Hardcopy is available from Amazon.com or Lulu.com.
+<<*>>=
+${PDF}/bookvol1.pdf: ${IN}/bookvol1.pamphlet ${PDF}/axiom.sty
+	@echo 1 making ${PDF}/bookvol1.pdf from ${IN}/bookvol1.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol1.pamphlet ${PDF} ; \
+	  cp -pr ${IN}/ps ${PDF} ; \
+	  ${WEAVE} -delay bookvol1.pamphlet >bookvol1.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol1.tex ; \
+	    ${LATEX} bookvol1.tex >/dev/null ; \
+	    ${DVIPS} bookvol1.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol1.ps >/dev/null ; \
+	    ${RM} bookvol1.aux bookvol1.dvi bookvol1.log bookvol1.ps \
+                  bookvol1.idx bookvol1.tex bookvol1.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol1.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol1.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol1.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol1.ps >${TMP}/trace  ; \
+	    ${RM} bookvol1.aux bookvol1.dvi bookvol1.log bookvol1.ps \
+                  bookvol1.idx bookvol1.tex bookvol1.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 2: Axiom Users Guide}
+This is a more detailed explanation with current information
+for Axiom users.
+<<*>>=
+${PDF}/bookvol2.pdf: ${IN}/bookvol2.pamphlet ${PDF}/axiom.sty
+	@echo 2 making ${PDF}/bookvol2.pdf from ${IN}/bookvol2.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol2.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol2.pamphlet >bookvol2.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol2.tex ; \
+	    ${LATEX} bookvol2.tex >/dev/null ; \
+	    ${DVIPS} bookvol2.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol2.ps >/dev/null ; \
+	    ${RM} bookvol2.aux bookvol2.dvi bookvol2.log bookvol2.ps \
+                  bookvol2.idx bookvol2.tex bookvol2.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol2.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol2.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol2.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol2.ps >${TMP}/trace  ; \
+	    ${RM} bookvol2.aux bookvol2.dvi bookvol2.log bookvol2.ps \
+                  bookvol2.idx bookvol2.tex bookvol2.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 3: Axiom Programmers Guide}
+This is information about the language and algebra hierarchy
+for Spad language programmers.
+<<*>>=
+${PDF}/bookvol3.pdf: ${IN}/bookvol3.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol3.pdf from ${IN}/bookvol3.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol3.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol3.pamphlet >bookvol3.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol3.tex ; \
+	    ${LATEX} bookvol3.tex >/dev/null ; \
+	    ${DVIPS} bookvol3.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol3.ps >/dev/null ; \
+	    ${RM} bookvol3.aux bookvol3.dvi bookvol3.log bookvol3.ps \
+                  bookvol3.idx bookvol3.tex bookvol3.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol3.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol3.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol3.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol3.ps >${TMP}/trace  ; \
+	    ${RM} bookvol3.aux bookvol3.dvi bookvol3.log bookvol3.ps \
+                  bookvol3.idx bookvol3.tex bookvol3.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 4: Axiom Developers Guide}
+This is a collection of userful information for developers.
+<<*>>=
+${PDF}/bookvol4.pdf: ${IN}/bookvol4.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol4.pdf from ${IN}/bookvol4.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol4.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol4.pamphlet >bookvol4.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol4.tex ; \
+	    ${LATEX} bookvol4.tex >/dev/null ; \
+	    ${DVIPS} bookvol4.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol4.ps >/dev/null ; \
+	    ${RM} bookvol4.aux bookvol4.dvi bookvol4.log bookvol4.ps \
+                  bookvol4.idx bookvol4.tex bookvol4.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol4.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol4.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol4.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol4.ps >${TMP}/trace  ; \
+	    ${RM} bookvol4.aux bookvol4.dvi bookvol4.log bookvol4.ps \
+                  bookvol4.idx bookvol4.tex bookvol4.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 5: Axiom Interpreter}
+This is the source code and explanation for the interpreter.
+<<*>>=
+${PDF}/bookvol5.pdf: ${IN}/bookvol5.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol5.pdf from ${IN}/bookvol5.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol5.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol5.pamphlet >bookvol5.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol5.tex ; \
+	    ${LATEX} bookvol5.tex >/dev/null ; \
+	    ${DVIPS} bookvol5.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol5.ps >/dev/null ; \
+	    ${RM} bookvol5.aux bookvol5.dvi bookvol5.log bookvol5.ps \
+                  bookvol5.idx bookvol5.tex bookvol5.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol5.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol5.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol5.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol5.ps >${TMP}/trace  ; \
+	    ${RM} bookvol5.aux bookvol5.dvi bookvol5.log bookvol5.ps \
+                  bookvol5.idx bookvol5.tex bookvol5.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 6: Axiom Command}
+This covers the axiom commands, sman, and some other system related issues.
+<<*>>=
+${PDF}/bookvol6.pdf: ${IN}/bookvol6.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol6.pdf from ${IN}/bookvol6.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol6.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol6.pamphlet >bookvol6.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol6.tex ; \
+	    ${LATEX} bookvol6.tex >/dev/null ; \
+	    ${DVIPS} bookvol6.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol6.ps >/dev/null ; \
+	    ${RM} bookvol6.aux bookvol6.dvi bookvol6.log bookvol6.ps \
+                  bookvol6.idx bookvol6.tex bookvol6.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol6.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol6.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol6.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol6.ps >${TMP}/trace  ; \
+	    ${RM} bookvol6.aux bookvol6.dvi bookvol6.log bookvol6.ps \
+                  bookvol6.idx bookvol6.tex bookvol6.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 7: Axiom Hyperdoc}
+This is the source and explanation for the X11 hyperdoc subsystem
+<<*>>=
+${PDF}/bookvol7.pdf: ${IN}/bookvol7.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol7.pdf from ${IN}/bookvol7.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol7.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol7.pamphlet >bookvol7.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol7.tex ; \
+	    ${LATEX} bookvol7.tex >/dev/null ; \
+	    ${DVIPS} bookvol7.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol7.ps >/dev/null ; \
+	    ${RM} bookvol7.aux bookvol7.dvi bookvol7.log bookvol7.ps \
+                  bookvol7.idx bookvol7.tex bookvol7.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol7.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol7.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol7.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol7.ps >${TMP}/trace  ; \
+	    ${RM} bookvol7.aux bookvol7.dvi bookvol7.log bookvol7.ps \
+                  bookvol7.idx bookvol7.tex bookvol7.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 8: Axiom Graphics}
+This is the source and explanation for the X11 graphics subsystem
+<<*>>=
+${PDF}/bookvol8.pdf: ${IN}/bookvol8.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol8.pdf from ${IN}/bookvol8.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol8.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol8.pamphlet >bookvol8.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol8.tex ; \
+	    ${LATEX} bookvol8.tex >/dev/null ; \
+	    ${DVIPS} bookvol8.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol8.ps >/dev/null ; \
+	    ${RM} bookvol8.aux bookvol8.dvi bookvol8.log bookvol8.ps \
+                  bookvol8.idx bookvol8.tex bookvol8.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol8.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol8.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol8.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol8.ps >${TMP}/trace  ; \
+	    ${RM} bookvol8.aux bookvol8.dvi bookvol8.log bookvol8.ps \
+                  bookvol8.idx bookvol8.tex bookvol8.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 9: Axiom Compiler}
+This is the source and explanation for the spad compiler.
+<<*>>=
+${PDF}/bookvol9.pdf: ${IN}/bookvol9.pamphlet ${PDF}/axiom.sty
+	@echo making ${PDF}/bookvol9.pdf from ${IN}/bookvol9.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol9.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol9.pamphlet >bookvol9.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol9.tex ; \
+	    ${LATEX} bookvol9.tex >/dev/null ; \
+	    ${DVIPS} bookvol9.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol9.ps >/dev/null ; \
+	    ${RM} bookvol9.aux bookvol9.dvi bookvol9.log bookvol9.ps \
+                  bookvol9.idx bookvol9.tex bookvol9.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol9.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol9.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol9.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol9.ps >${TMP}/trace  ; \
+	    ${RM} bookvol9.aux bookvol9.dvi bookvol9.log bookvol9.ps \
+                  bookvol9.idx bookvol9.tex bookvol9.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 10: Axiom Algebra}
+This ia multi-volumne set covering the algebra.
+<<*>>=
+${PDF}/bookvol10.pdf: ${IN}/bookvol10.pamphlet ${PDF}/axiom.sty
+	@echo 10 making ${PDF}/bookvol10.pdf from ${IN}/bookvol10.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol10.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol10.pamphlet >bookvol10.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol10.tex ; \
+	    ${LATEX} bookvol10.tex >/dev/null ; \
+	    ${DVIPS} bookvol10.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol10.ps >/dev/null ; \
+	    ${RM} bookvol10.aux bookvol10.dvi bookvol10.log bookvol10.ps \
+                  bookvol10.idx bookvol10.tex bookvol10.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol10.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol10.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol10.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol10.ps >${TMP}/trace  ; \
+	    ${RM} bookvol10.aux bookvol10.dvi bookvol10.log bookvol10.ps \
+                  bookvol10.idx bookvol10.tex bookvol10.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 11: Axiom Browser}
+This is the source and explanation of the new Firefox browser front end.
+<<*>>=
+${PDF}/bookvol11.pdf: ${IN}/bookvol11.pamphlet ${PDF}/axiom.sty
+	@echo 11 making ${PDF}/bookvol11.pdf from ${IN}/bookvol11.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol11.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol11.pamphlet >bookvol11.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol11.tex ; \
+	    ${LATEX} bookvol11.tex >/dev/null ; \
+	    ${DVIPS} bookvol11.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol11.ps >/dev/null ; \
+	    ${RM} bookvol11.aux bookvol11.dvi bookvol11.log bookvol11.ps \
+                  bookvol11.idx bookvol11.tex bookvol11.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol11.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol11.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol11.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol11.ps >${TMP}/trace  ; \
+	    ${RM} bookvol11.aux bookvol11.dvi bookvol11.log bookvol11.ps \
+                  bookvol11.idx bookvol11.tex bookvol11.pamphlet ; \
+	  fi )
+
+@
+\section{Volume 12: Axiom Crystal}
+This is the design documents for the crystal interface.
+<<*>>=
+${PDF}/bookvol12.pdf: ${IN}/bookvol12.pamphlet ${PDF}/axiom.sty
+	@echo 12 making ${PDF}/bookvol12.pdf from ${IN}/bookvol12.pamphlet
+	@(cd ${PDF} ; \
+	  cp ${IN}/bookvol12.pamphlet ${PDF} ; \
+	  ${WEAVE} -delay bookvol12.pamphlet >bookvol12.tex ; \
+	  if [ -z "${NOISE}" ] ; then \
+	    ${LATEX} bookvol12.tex ; \
+	    ${LATEX} bookvol12.tex >/dev/null ; \
+	    ${DVIPS} bookvol12.dvi 2>/dev/null ; \
+	    ${PS2PDF} bookvol12.ps >/dev/null ; \
+	    ${RM} bookvol12.aux bookvol12.dvi bookvol12.log bookvol12.ps \
+                  bookvol12.idx bookvol12.tex bookvol12.pamphlet ; \
+	  else \
+	    ${LATEX} bookvol12.tex >${TMP}/trace ; \
+	    echo ...first latex complete ; \
+	    ${LATEX} bookvol12.tex >${TMP}/trace ; \
+	    ${DVIPS} bookvol12.dvi 2>${TMP}/trace  ; \
+	    ${PS2PDF} bookvol12.ps >${TMP}/trace  ; \
+	    ${RM} bookvol12.aux bookvol12.dvi bookvol12.log bookvol12.ps \
+                  bookvol12.idx bookvol12.tex bookvol12.pamphlet ; \
+	  fi )
+
+@
+\section{Combined Table of Contents}
+This is the table of contents from the existing volumes combined into
+one document for easy reference.
+<<*>>=
+${PDF}/toc.pdf: ${BOOKS}
+	@echo 13 making ${PDF}/toc.pdf
+	@(cd ${PDF} ; \
+	echo "\\documentclass{book}" >toc.tex ; \
+	echo "\\begin{document}" >>toc.tex ; \
+	echo "{\\bf Volume ~ 0}: Axiom {\\sl Jenks and Sutor}\\\\" >toc.toc ; \
+	echo "{\\bf Volume ~ 1}: Axiom {\\sl Tutorial}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 2}: Axiom {\\sl Users Guide}\\\\" >>toc.toc ; \
+	echo \
+         "{\\bf Volume ~ 3}: Axiom {\\sl Programmers Guide}\\\\" >>toc.toc ; \
+	echo \
+         "{\\bf Volume ~ 4}: Axiom {\\sl Developers Guide}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 5}: Axiom {\\sl Interpreter}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 6}: Axiom {\\sl Command}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 7}: Axiom {\\sl Hyperdoc}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 8}: Axiom {\\sl Graphics}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume ~ 9}: Axiom {\\sl Compiler}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume 10}: Axiom {\\sl Algebra}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume 11}: Axiom {\\sl Browser}\\\\" >>toc.toc ; \
+	echo "{\\bf Volume 12}: Axiom {\\sl Crystal}\\\\" >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\tableofcontents" >>toc.tex ; \
+	echo "\\end{document}" >>toc.tex ; \
+	echo "\\section*{Volume 0: Axiom Jenks and Sutor}" >>toc.toc ; \
+	cat bookvol0.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 1: Axiom Tutorial}" >>toc.toc ; \
+	cat bookvol1.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 2: Axiom Users Guide}" >>toc.toc ; \
+	cat bookvol2.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 3: Axiom Programmers Guide}" >>toc.toc ; \
+	cat bookvol3.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 4: Axiom Developers Guide}" >>toc.toc ; \
+	cat bookvol4.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 5: Axiom Interpreter}" >>toc.toc ; \
+	cat bookvol5.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 6: Axiom Command}" >>toc.toc ; \
+	cat bookvol6.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 7: Axiom Hyperdoc}" >>toc.toc ; \
+	cat bookvol7.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 8: Axiom Graphics}" >>toc.toc ; \
+	cat bookvol8.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 9: Axiom Compiler}" >>toc.toc ; \
+	cat bookvol9.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 10: Axiom Algebra}" >>toc.toc ; \
+	cat bookvol10.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 11: Axiom Browser}" >>toc.toc ; \
+	cat bookvol11.toc >>toc.toc ; \
+	echo "\\newpage" >>toc.toc ; \
+	echo "\\section*{Volume 12: Axiom Crystal}" >>toc.toc ; \
+	cat bookvol12.toc >>toc.toc ; \
+	if [ -z "${NOISE}" ] ; then \
+	  ${LATEX} toc.tex ; \
+	  ${DVIPS} toc.dvi 2>/dev/null ; \
+	  ${PS2PDF} toc.ps >/dev/null ; \
+	  ${RM} -f *.toc toc.aux toc.dvi toc.log toc.ps toc.tex toc.toc ; \
+	else \
+	  ${LATEX} toc.tex >${TMP}/trace ; \
+	  ${DVIPS} toc.dvi 2>${TMP}/trace ; \
+	  ${PS2PDF} toc.ps >${TMP}/trace ; \
+	  ${RM} -f *.toc toc.aux toc.dvi toc.log toc.ps toc.tex toc.toc ; \
+	fi )
+
+${PDF}/axiom.sty: ${SRC}/scripts/tex/axiom.sty
+	@echo 14 making ${PDF}/axiom.sty from ${SRC}/scripts/tex/axiom.sty
+	@cp ${SRC}/scripts/tex/axiom.sty ${PDF}/axiom.sty
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} CMUCL {\bf http://www.cons.org/cmucl}
+\bibitem{2} GCL {\bf http://savannah.gnu.org/projects/gcl}
+\bibitem{3} Codemist Ltd, ``Alta'', Horsecombe Vale Combs Down
+Bath BA2 5QR UK Tel. +44-1225-837430 
+{\bf http://www.codemist.co.uk}
+\bibitem{4} \$SPAD/zips/noweb-2.10a.tgz, the noweb source tree
+\bibitem{5} \$SPAD/zips/advi-1.2.0.tar.gz, the advi source tree
+\end{thebibliography}
+\end{document}
+
diff --git a/books/axiom.sty b/books/axiom.sty
deleted file mode 100755
index 3581b97..0000000
--- a/books/axiom.sty
+++ /dev/null
@@ -1,1026 +0,0 @@
-% axiom.sty -- LaTeX support for Axiom
-% DON'T edit this file!  Use src/doc/axiom.sty.pamphlet instead.
-
-\usepackage{alltt}
-
-\newenvironment{chunk}[1]{%   we need the chunkname as an argument
-\noindent%                    make sure we are in column 1
-{\small $<<${#1}$>>=$}%       <<some random string>>=
-\begin{alltt}%                use the verbatim
-\small}%                      with a small font
-{\end{alltt}%                 the end{chunk} ends the verbatim
-\par{}%                       we add a newline
-\noindent{}%                  start in column 1
-@%                            put an @
-\par%                         and a newline
-\normalsize}%                 and return to the rest of the document
-
-{\obeyspaces\AtBeginDocument{\global\let =\ }} % from texbook, p 381
-\def\nwopt@nomargintag{\let\nwmargintag=\@gobble}
-\def\nwopt@margintag{%
-  \def\nwmargintag##1{\leavevmode\llap{##1\kern\nwmarginglue\kern\codemargin}}}
-\def\nwopt@margintag{%
-  \def\nwmargintag##1{\leavevmode\kern-\codemargin\nwthemargintag{##1}\kern\codemargin}}
-\def\nwthemargintag#1{\llap{#1\kern\nwmarginglue}}
-\nwopt@margintag
-\newdimen\nwmarginglue
-\nwmarginglue=0.3in
-\def\nwtagstyle{\footnotesize\Rm}
-% make \hsize in code sufficient for 88 columns
-\setbox0=\hbox{\tt m}
-\newdimen\codehsize
-\codehsize=91\wd0 % 88 columns wasn't enough; I don't know why
-\newdimen\codemargin
-\codemargin=0pt
-\newdimen\nwdefspace
-\nwdefspace=\codehsize
-% need to use \textwidth in {\LaTeX} to handle styles with
-% non-standard margins (David Bruce).  Don't know why we sometimes
-% wanted \hsize.  27 August 1997.
-%% \advance\nwdefspace by -\hsize\relax
-\ifx\textwidth\undefined
-  \advance\nwdefspace by -\hsize\relax
-\else
-  \advance\nwdefspace by -\textwidth\relax
-\fi
-\chardef\other=12
-\def\setupcode{%
-  \chardef\\=`\\
-  \chardef\{=`\{
-  \chardef\}=`\}
-  \catcode`\$=\other
-  \catcode`\&=\other
-  \catcode`\#=\other
-  \catcode`\%=\other
-  \catcode`\~=\other
-  \catcode`\_=\other
-  \catcode`\^=\other
-  \catcode`\"=\other    % fixes problem with german.sty
-  \obeyspaces\Tt
-}
-\let\nwlbrace=\{
-\let\nwrbrace=\}
-\def\nwendquote{\relax\ifhmode\spacefactor=1000 \fi}
-{\catcode`\^^M=\active % make CR an active character
-  \gdef\newlines{\catcode`\^^M=\active % make CR an active character
-         \def^^M{\par\startline}}%
-  \gdef\eatline#1^^M{\relax}%
-}
-%%% DON'T   \gdef^^M{\par\startline}}% in case ^^M appears in a \write
-\def\startline{\noindent\hskip\parindent\ignorespaces}
-\def\nwnewline{\ifvmode\else\hfil\break\leavevmode\hbox{}\fi}
-\def\setupmodname{%
-  \catcode`\$=3
-  \catcode`\&=4
-  \catcode`\#=6
-  \catcode`\%=14
-  \catcode`\~=13
-  \catcode`\_=8
-  \catcode`\^=7
-  \catcode`\ =10
-  \catcode`\^^M=5
-  \let\{\nwlbrace
-  \let\}\nwrbrace
-  % bad news --- don't know what catcode to give "
-  \Rm}
-\def\LA{\begingroup\maybehbox\bgroup\setupmodname\It$\langle$}
-\def\RA{\/$\rangle$\egroup\endgroup}
-\def\code{\leavevmode\begingroup\setupcode\newlines}
-\def\edoc{\endgroup}
-\let\maybehbox\relax
-\newbox\equivbox
-\setbox\equivbox=\hbox{$\equiv$}
-\newbox\plusequivbox
-\setbox\plusequivbox=\hbox{$\mathord{+}\mathord{\equiv}$}
-% \moddef can't have an argument because there might be \code...\edoc
-\def\moddef{\leavevmode\kern-\codemargin\LA}
-\def\endmoddef{\RA\ifmmode\equiv\else\unhcopy\equivbox\fi
-               \nobreak\hfill\nobreak}
-\def\plusendmoddef{\RA\ifmmode\mathord{+}\mathord{\equiv}\else\unhcopy\plusequivbox\fi
-               \nobreak\hfill\nobreak}
-\def\chunklist{%
-\errhelp{I changed \chunklist to \nowebchunks.  
-I'll try to avoid such incompatible changes in the future.}%
-\errmessage{Use \string\nowebchunks\space instead of \string\chunklist}}
-\def\nowebchunks{\message{<Warning: You need noweave -x to use \string\nowebchunks>}}
-\def\nowebindex{\message{<Warning: You need noweave -index to use \string\nowebindex>}}
-% here is support for the new-style (capitalized) font-changing commands
-% thanks to Dave Love
-\ifx\documentstyle\undefined
-  \let\Rm=\rm \let\It=\it \let\Tt=\tt       % plain
-\else\ifx\selectfont\undefined
-  \let\Rm=\rm \let\It=\it \let\Tt=\tt       % LaTeX OFSS
-\else                                       % LaTeX NFSS
-  \def\Rm{\reset@font\rm}
-  \def\It{\reset@font\it}
-  \def\Tt{\reset@font\tt}
-  \def\Bf{\reset@font\bf}
-\fi\fi
-\ifx\reset@font\undefined \let\reset@font=\relax \fi
-\def\noweboptions#1{%
-  \def\@nwoptionlist{#1}%
-  \@for\@nwoption:=\@nwoptionlist\do{%
-    \@ifundefined{nwopt@\@nwoption}{%
-        \@latexerr{There is no such noweb option as '\@nwoption'}\@eha}{%
-        \csname nwopt@\@nwoption\endcsname}}}
-\codemargin=10pt
-\advance\codehsize by \codemargin       % make room for indentation of code
-\advance\nwdefspace by \codemargin      % and fix adjustment for def/use
-\def\setcodemargin#1{%
-  \advance\codehsize by -\codemargin       % make room for indentation of code
-  \advance\nwdefspace by -\codemargin   % and fix adjustment for def/use
-  \codemargin=#1
-  \advance\codehsize by \codemargin       % make room for indentation of code
-  \advance\nwdefspace by \codemargin    % and fix adjustment for
-                                        % def/use
-}
-\def\nwopt@shift{%
-  \dimen@=-0.8in
-  \if@twoside                 % Values for two-sided printing:
-     \advance\evensidemargin by \dimen@
-  \else                       % Values for one-sided printing:
-     \advance\evensidemargin by \dimen@
-     \advance\oddsidemargin by \dimen@
-  \fi
-%  \advance \marginparwidth -\dimen@
-}
-\let\nwopt@noshift\@empty
-\def\nwbegincode#1{%
-  \begingroup
-    \topsep \nwcodetopsep
-    \@beginparpenalty \@highpenalty
-    \@endparpenalty -\@highpenalty
-  \@begincode }
-\def\nwendcode{\endtrivlist \endgroup \filbreak} % keeps code on 1 page
-
-\newenvironment{webcode}{%
-  \@begincode
-}{%
-  \endtrivlist}
-\def\@begincode{%
-    \trivlist \item[]%
-    \leftskip\@totalleftmargin \advance\leftskip\codemargin
-    \rightskip\hsize \advance\rightskip -\codehsize
-    \parskip\z@ \parindent\z@ \parfillskip\@flushglue
-  \linewidth\codehsize
-    \@@par
-    \def\par{\leavevmode\null \@@par \penalty\nwcodepenalty}%
-    \obeylines
-    \@noligs   \ifx\verbatim@nolig@list\undefined\else
-                 \let\do=\nw@makeother \verbatim@nolig@list \do@noligs\`
-               \fi
-    \setupcode \frenchspacing \@vobeyspaces
-  \nowebsize \setupcode
-  \let\maybehbox\mbox }
-  \newskip\nwcodetopsep \nwcodetopsep = 3pt plus 1.2pt minus 1pt
-  \let\nowebsize=\normalsize
-  \def\nwopt@tinycode{\let\nowebsize=\tiny}
-  \def\nwopt@footnotesizecode{\let\nowebsize=\footnotesize}
-  \def\nwopt@scriptsizecode{\let\nowebsize=\scriptsize}
-  \def\nwopt@smallcode{\let\nowebsize=\small}
-  \def\nwopt@normalsizecode{\let\nowebsize=\normalsize}
-  \def\nwopt@largecode{\let\nowebsize=\large}
-  \def\nwopt@Largecode{\let\nowebsize=\Large}
-  \def\nwopt@LARGEcode{\let\nowebsize=\LARGE}
-  \def\nwopt@hugecode{\let\nowebsize=\huge}
-  \def\nwopt@Hugecode{\let\nowebsize=\Huge}
-\newcount\nwcodepenalty  \nwcodepenalty=\@highpenalty
-\def\nw@makeother#1{\catcode`#1=12 }
-\def\nwbegindocs#1{\ifvmode\noindent\fi}
-\let\nwenddocs=\relax
-\let\nwdocspar=\filbreak
-\raggedbottom
-\def\code{\leavevmode\begingroup\setupcode\@vobeyspaces\obeylines}
-\let\edoc=\endgroup
-\newdimen\@original@textwidth
-\def\ps@noweb{%
-  \@original@textwidth=\textwidth
-  \let\@mkboth\@gobbletwo
-  \def\@oddfoot{}\def\@evenfoot{}%       No feet.
-  \if@twoside         % If two-sided printing.
-    \def\@evenhead{\hbox to \@original@textwidth{%
-           \Rm \thepage\qquad{\Tt\leftmark}\hfil\today}}%        Left heading.
-    \def\@oddhead{\hbox to \@original@textwidth{%
-           \Rm \today\hfil{\Tt\leftmark}\qquad\thepage}}% Right heading.
-  \else               % If one-sided printing.
-    \def\@oddhead{\hbox to \@original@textwidth{%
-           \Rm \today\hfil{\Tt\leftmark}\qquad\thepage}}% Right heading.
-    \let\@evenhead\@oddhead
-  \fi
-  \let\chaptermark\@gobble
-  \let\sectionmark\@gobble
-  \let\subsectionmark\@gobble
-  \let\subsubsectionmark\@gobble
-  \let\paragraphmark\@gobble
-  \let\subparagraphmark\@gobble
-  \def\nwfilename{\begingroup\let\do\@makeother\dospecials
-                \catcode`\{=1 \catcode`\}=2 \nw@filename}
-  \def\nw@filename##1{\endgroup\markboth{##1}{##1}\let\nw@filename=\nw@laterfilename}%
-}
-\def\nw@laterfilename#1{\endgroup\clearpage \markboth{#1}{#1}}
-\let\nwfilename=\@gobble
-\def\nwcodecomment#1{\@@par\penalty\nwcodepenalty
-    \if@firstnwcodecomment
-      \vskip\nwcodecommentsep\penalty\nwcodepenalty\@firstnwcodecommentfalse
-    \fi%
-    \hspace{-\codemargin}{%
-        \rightskip=0pt plus1in
-        \interlinepenalty\nwcodepenalty
-        \let\\\relax\footnotesize\Rm #1\@@par\penalty\nwcodepenalty}}
-\def\@nwalsodefined#1{\nwcodecomment{\@nwlangdepdef\ \nwpageprep\ \@pagesl{#1}.}}
-\def\@nwused#1{\nwcodecomment{\@nwlangdepcud\ \nwpageprep\ \@pagesl{#1}.}}
-\def\@nwnotused#1{\nwcodecomment{\@nwlangdeprtc.}}
-\def\nwoutput#1{\nwcodecomment{\@nwlangdepcwf\ {\Tt \@stripstar#1*\stripped}.}}
-\def\@stripstar#1*#2\stripped{#1}
-\providecommand{\nwprevdefptr}[1]{%
-  \mbox{$\mathord{\triangleleft}\,\mathord{\mbox{\subpageref{#1}}}$}}
-\providecommand{\nwnextdefptr}[1]{%
-  \mbox{$\mathord{\mbox{\subpageref{#1}}}\,\mathord{\triangleright}$}}
-
-\providecommand{\@nwprevnextdefs}[2]{%
-  {\nwtagstyle
-  \ifx\relax#1\else ~~\nwprevdefptr{#1}\fi
-  \ifx\relax#2\else ~~\nwnextdefptr{#2}\fi}}
-\providecommand{\@nwusesondefline}[1]{{\nwtagstyle~~(\@pagenumsl{#1})}}
-\providecommand{\@nwstartdeflinemarkup}{\nobreak\hskip 1.5em plus 1fill\nobreak}
-\providecommand{\@nwenddeflinemarkup}{\nobreak\hskip \nwdefspace minus\nwdefspace\nobreak}
-\def\nwopt@longxref{%
-  \let\nwalsodefined\@nwalsodefined
-  \let\nwused\@nwused
-  \let\nwnotused\@nwnotused
-  \let\nwprevnextdefs\@gobbletwo
-  \let\nwusesondefline\@gobble
-  \let\nwstartdeflinemarkup\relax
-  \let\nwenddeflinemarkup\relax
-}
-\def\nwopt@shortxref{%
-  \let\nwalsodefined\@gobble
-  \let\nwused\@gobble
-  \let\nwnotused\@gobble
-  \let\nwprevnextdefs\@nwprevnextdefs
-  \let\nwusesondefline\@nwusesondefline
-  \let\nwstartdeflinemarkup\@nwstartdeflinemarkup
-  \let\nwenddeflinemarkup\@nwenddeflinemarkup
-}
-\def\nwopt@noxref{%
-  \let\nwalsodefined\@gobble
-  \let\nwused\@gobble
-  \let\nwnotused\@gobble
-  \let\nwprevnextdefs\@gobbletwo
-  \let\nwusesondefline\@gobble
-  \let\nwstartdeflinemarkup\relax
-  \let\nwenddeflinemarkup\relax
-}
-\nwopt@shortxref % to hell with backward compatibility!
-\newskip\nwcodecommentsep \nwcodecommentsep=3pt plus 1pt minus 1pt
-\newif\if@firstnwcodecomment\@firstnwcodecommenttrue
-\newcount\@nwlopage\newcount\@nwhipage  % range lo..hi-1
-\newcount\@nwlosub              % subpage of lo
-\newcount\@nwhisub              % subpage of hi
-\def\@nwfirstpage#1#2#3{% subpage page xref-tag
-  \@nwlopage=#2 \@nwlosub=#1
-  \def\@nwloxreftag{#3}%
-  \advance\@nwpagecount by \@ne
-  \@nwhipage=\@nwlopage\advance\@nwhipage by \@ne }
-\def\@nwnextpage#1#2#3{% subpage page xref-tag
-  \ifnum\@nwhipage=#2 
-    \advance\@nwhipage by \@ne 
-    \advance\@nwpagecount by \@ne
-    \@nwhisub=#1 
-    \def\@nwhixreftag{#3}\else
-  \ifnum#2<\@nwlopage \advance\@nwhipage by \m@ne
-                      \ifnum\@nwhipage=\@nwlopage
-                           \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                              {\@nwloxreftag}}}%
-                      \else
-                        \count@=\@nwhipage \advance\count@ by \m@ne
-                        \ifnum\count@=\@nwlopage % consecutive pages
-                            \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                              {\@nwloxreftag}}%
-                                          \noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                                              {\@nwhixreftag}}}%
-                        \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                                \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-                                \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                                  \count@=\@nwlopage \divide\count@ by 100
-                                  \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-                                  \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                                    \multiply\@nwpagetemp by 100
-                                    \advance \@nwhipage by -\@nwpagetemp
-                                    \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                                  \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                                  \fi
-                                \fi
-                              \fi%
-                        \fi
-                      \fi%
-                      \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa\@nwfirstpage{#1}{#2}{#3}\else
-  \ifnum#2>\@nwhipage \advance\@nwhipage by \m@ne
-                      \ifnum\@nwhipage=\@nwlopage
-                           \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                              {\@nwloxreftag}}}%
-                      \else
-                        \count@=\@nwhipage \advance\count@ by \m@ne
-                        \ifnum\count@=\@nwlopage % consecutive pages
-                            \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                              {\@nwloxreftag}}%
-                                          \noexpand\noexpand\noexpand\\%
-                                             {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                                              {\@nwhixreftag}}}%
-                        \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                                \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-                                \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                                  \count@=\@nwlopage \divide\count@ by 100
-                                  \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-                                  \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                                    \multiply\@nwpagetemp by 100
-                                    \advance \@nwhipage by -\@nwpagetemp
-                                    \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                                  \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                                  \fi
-                                \fi
-                              \fi%
-                        \fi
-                      \fi%
-                      \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa\@nwfirstpage{#1}{#2}{#3}\else
-    \@nwlosub=0 \@nwhisub=0
-  \fi\fi\fi
-  }
-\newcount\@nwpagetemp
-\newcount\@nwpagecount
-\def\@nwfirstpagel#1{% label
-  \@ifundefined{r@#1}{\@warning{Reference `#1' on page \thepage \space undefined}%
-                      \nwix@cons\nw@pages{\\{\bf ??}}}{%
-    \edef\@tempa{\noexpand\@nwfirstpage\subpagepair{#1}{#1}}\@tempa}}
-\def\@nwnextpagel#1{% label
-  \@ifundefined{r@#1}{\@warning{Reference `#1' on page \thepage \space undefined}%
-                      \nwix@cons\nw@pages{\\{\bf ??}}}{%
-    \edef\@tempa{\noexpand\@nwnextpage\subpagepair{#1}{#1}}\@tempa}}
-\def\@pagesl#1{%  list of labels
-  \gdef\nw@pages{}\@nwpagecount=0
-  \def\\##1{\@nwfirstpagel{##1}\let\\=\@nwnextpagel}#1%
-  \advance\@nwhipage by \m@ne
-  \ifnum\@nwhipage=\@nwlopage
-       \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}}%
-  \else
-    \count@=\@nwhipage \advance\count@ by \m@ne
-    \ifnum\count@=\@nwlopage % consecutive pages
-        \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}%
-                      \noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                          {\@nwhixreftag}}}%
-    \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-            \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-            \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-              \count@=\@nwlopage \divide\count@ by 100
-              \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-              \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                \multiply\@nwpagetemp by 100
-                \advance \@nwhipage by -\@nwpagetemp
-                \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \fi
-            \fi
-          \fi%
-    \fi
-  \fi%
-  \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa\def\\##1{\@nwhyperpagenum##1}%
-  \ifnum\@nwpagecount=1 \nwpageword \else \nwpagesword\fi~\commafy{\nw@pages}}
-\def\@nwhyperpagenum#1#2{\nwhyperreference{#2}{#1}}
-
-\def\@pagenumsl#1{%  list of labels -- doesn't include word `pages', commas, or `and'
-  \gdef\nw@pages{}\@nwpagecount=0
-  \def\\##1{\@nwfirstpagel{##1}\let\\=\@nwnextpagel}#1%
-  \advance\@nwhipage by \m@ne
-  \ifnum\@nwhipage=\@nwlopage
-       \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}}%
-  \else
-    \count@=\@nwhipage \advance\count@ by \m@ne
-    \ifnum\count@=\@nwlopage % consecutive pages
-        \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}%
-                      \noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                          {\@nwhixreftag}}}%
-    \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-            \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-            \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-              \count@=\@nwlopage \divide\count@ by 100
-              \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-              \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                \multiply\@nwpagetemp by 100
-                \advance \@nwhipage by -\@nwpagetemp
-                \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \fi
-            \fi
-          \fi%
-    \fi
-  \fi%
-  \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa%
-  \def\\##1{\@nwhyperpagenum##1\let\\=\@nwpagenumslrest}\nw@pages}
-\def\@nwpagenumslrest#1{~\@nwhyperpagenum#1}
-\def\subpages#1{% list of {{subpage}{page}}
-  \gdef\nw@pages{}\@nwpagecount=0
-  \def\\##1{\edef\@tempa{\noexpand\@nwfirstpage##1{}}\@tempa
-            \def\\####1{\edef\@tempa{\noexpand\@nwnextpage####1}\@tempa}}#1%
-  \advance\@nwhipage by \m@ne
-  \ifnum\@nwhipage=\@nwlopage
-       \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}}%
-  \else
-    \count@=\@nwhipage \advance\count@ by \m@ne
-    \ifnum\count@=\@nwlopage % consecutive pages
-        \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                          {\@nwloxreftag}}%
-                      \noexpand\noexpand\noexpand\\%
-                         {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                          {\@nwhixreftag}}}%
-    \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-            \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-            \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-              \count@=\@nwlopage \divide\count@ by 100
-              \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-              \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                \multiply\@nwpagetemp by 100
-                \advance \@nwhipage by -\@nwpagetemp
-                \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-              \fi
-            \fi
-          \fi%
-    \fi
-  \fi%
-  \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa\def\\##1{\@firstoftwo##1}%
-  \ifnum\@nwpagecount=1 \nwpageword \else \nwpagesword\fi~\commafy{\nw@pages}}
-\def\@nwaddrange{\advance\@nwhipage by \m@ne
-                 \ifnum\@nwhipage=\@nwlopage
-                      \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                        {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                         {\@nwloxreftag}}}%
-                 \else
-                   \count@=\@nwhipage \advance\count@ by \m@ne
-                   \ifnum\count@=\@nwlopage % consecutive pages
-                       \edef\@tempa{\noexpand\noexpand\noexpand\\%
-                                        {{\nwthepagenum{\number\@nwlosub}{\number\@nwlopage}}%
-                                         {\@nwloxreftag}}%
-                                     \noexpand\noexpand\noexpand\\%
-                                        {{\nwthepagenum{\number\@nwhisub}{\number\@nwhipage}}
-                                         {\@nwhixreftag}}}%
-                   \else \ifnum\@nwlopage<110 \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                           \count@=\@nwlopage \divide\count@ by 100 \multiply\count@ by 100
-                           \ifnum\count@=\@nwlopage \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}\else
-                             \count@=\@nwlopage \divide\count@ by 100
-                             \@nwpagetemp=\@nwhipage \divide\@nwpagetemp by 100
-                             \ifnum\count@=\@nwpagetemp %  lo--least 2 digits of hi
-                               \multiply\@nwpagetemp by 100
-                               \advance \@nwhipage by -\@nwpagetemp
-                               \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                             \else \edef\@tempa{\noexpand\noexpand\noexpand\\{{\number\@nwlopage--\number\@nwhipage}{}}}%
-                             \fi
-                           \fi
-                         \fi%
-                   \fi
-                 \fi%
-                 \edef\@tempa{\noexpand\nwix@cons\noexpand\nw@pages{\@tempa}}\@tempa}
-\def\nwpageword{\@nwlangdepchk}  % chunk, was page
-\def\nwpagesword{\@nwlangdepchks}  % chunk, was page
-\def\nwpageprep{\@nwlangdepin}     % in, was on
-\providecommand\nw@genericref[2]{% what to do, name of ref
-  \expandafter\nw@g@nericref\csname r@#2\endcsname#1{#2}}
-\providecommand\nw@g@nericref[3]{% control sequence, what to do, name
-  \ifx#1\relax
-    \ref{#3}% trigger the standard `undefined ref' mechanisms
-  \else
-    \expandafter#2#1.\\%
-  \fi}
-\def\nw@selectone#1#2#3\\{#1}
-\def\nw@selecttwo#1#2#3\\{#2}
-\def\nw@selectonetwo#1#2#3\\{{#1}{#2}}
-\providecommand{\subpageref}[1]{%
-  \nwhyperreference{#1}{\nw@genericref\@subpageref{#1}}}
-\def\@subpageref#1#2#3\\{%
-  \@ifundefined{2on#2}{#2}{\nwthepagenum{#1}{#2}}}
-\providecommand{\subpagepair}[1]{%  % produces {subpage}{page}
-  \@ifundefined{r@#1}%
-    {{0}{0}}%
-    {\nw@genericref\@subpagepair{#1}}}
-\def\@subpagepair#1#2#3\\{%
-  \@ifundefined{2on#2}{{0}{#2}}{{#1}{#2}}}
-\providecommand{\sublabel}[1]{%
-  \@bsphack
-  \nwblindhyperanchor{#1}%
-  \if@filesw {\let\thepage\relax
-   \def\protect{\noexpand\noexpand\noexpand}%
-   \edef\@tempa{\write\@auxout{\string
-      \newsublabel{#1}{{}{\thepage}}}}%
-   \expandafter}\@tempa
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-\providecommand{\nosublabel}[1]{%
-  \@bsphack\if@filesw {\let\thepage\relax
-   \def\protect{\noexpand\noexpand\noexpand}%
-   \edef\@tempa{\write\@auxout{\string
-      \newlabel{#1}{{0}{\thepage}}}}%
-   \expandafter}\@tempa
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-\providecommand\newsublabel{%
-  \nw@settrailers
-  \global\let\newsublabel\@newsublabel
-  \@newsublabel}
-\providecommand{\@newsublabel}[2]{%
-  \edef\this@page{\@cdr#2\@nil}%
-  \ifx\this@page\last@page\else
-    \sub@page=\z@
-  \fi
-  \edef\last@page{\this@page}
-  \advance\sub@page by \@ne
-  \ifnum\sub@page=\tw@
-    \global\@namedef{2on\this@page}{}%
-  \fi
-  \pendingsublabel{#1}%
-  \edef\@tempa##1{\noexpand\newlabel{##1}%
-    {{\number\sub@page}{\this@page}\nw@labeltrailers}}%
-  \pending@sublabels
-  \def\pending@sublabels{}}
-\providecommand\nw@settrailers{% -- won't work on first run
-  \@ifpackageloaded{nameref}%
-     {\gdef\nw@labeltrailers{{}{}{}}}%
-     {\gdef\nw@labeltrailers{}}}
-\renewcommand\nw@settrailers{% 
-  \@ifundefined{@secondoffive}%
-     {\gdef\nw@labeltrailers{}}%
-     {\gdef\nw@labeltrailers{{}{}{}}}}
-\providecommand{\nextchunklabel}[1]{%
-  \nwblindhyperanchor{#1}%   % looks slightly bogus --- nr
-  \@bsphack\if@filesw {\let\thepage\relax
-      \edef\@tempa{\write\@auxout{\string\pendingsublabel{#1}}}%
-      \expandafter}\@tempa
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-\providecommand\pendingsublabel[1]{%
-  \def\@tempa{\noexpand\@tempa}%
-  \edef\pending@sublabels{\noexpand\@tempa{#1}\pending@sublabels}}
-\def\pending@sublabels{}
-\def\last@page{\relax}
-\newcount\sub@page
-\def\@alphasubpagenum#1#2{#2\ifnum#1=0 \else\@alph{#1}\fi}
-\def\@nosubpagenum#1#2{#2}
-\def\@numsubpagenum#1#2{#2\ifnum#1=0 \else.\@arabic{#1}\fi}
-\def\nwopt@nosubpage{\let\nwthepagenum=\@nosubpagenum\nwopt@nomargintag}
-\def\nwopt@numsubpage{\let\nwthepagenum=\@numsubpagenum}
-\def\nwopt@alphasubpage{\let\nwthepagenum=\@alphasubpagenum}
-\nwopt@alphasubpage
-\newcount\@nwalph@n
-\let\@nwalph@d\@tempcnta
-\let\@nwalph@bound\@tempcntb
-\def\@nwlongalph#1{{%
-  \@nwalph@n=#1\advance\@nwalph@n by-1
-  \@nwalph@bound=26
-  \loop\ifnum\@nwalph@n<\@nwalph@bound\else
-     \advance\@nwalph@n by -\@nwalph@bound
-     \multiply\@nwalph@bound by 26
-  \repeat
-  \loop\ifnum\@nwalph@bound>1
-    \divide\@nwalph@bound by 26
-    \@nwalph@d=\@nwalph@n\divide\@nwalph@d by \@nwalph@bound
-    % d := d * bound ; n -:= d; d := d / bound --- saves a temporary
-    \multiply\@nwalph@d by \@nwalph@bound
-    \advance\@nwalph@n by -\@nwalph@d
-    \divide\@nwalph@d by \@nwalph@bound
-    \advance\@nwalph@d by 1 \@alph{\@nwalph@d}%
-  \repeat
-}}
-\newcount\nw@chunkcount
-\nw@chunkcount=\@ne
-\providecommand{\weblabel}[1]{%
-  \@bsphack
-  \nwblindhyperanchor{#1}%
-  \if@filesw {\let\thepage\relax
-   \def\protect{\noexpand\noexpand\noexpand}%
-   \edef\@tempa{\write\@auxout{\string
-      \newsublabel{#1}{{}{\number\nw@chunkcount}}}}%
-   \expandafter}\@tempa
-   \global\advance\nw@chunkcount by \@ne
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-\def\nwopt@webnumbering{%
-  \let\sublabel=\weblabel
-  \def\nwpageword{chunk}\def\nwpagesword{chunks}%
-  \def\nwpageprep{in}}
-% \nwindexdefn{printable name}{identifying label}{label of chunk}
-% \nwindexuse{printable name}{identifying label}{label of chunk}
-
-\def\nwindexdefn#1#2#3{\@auxix{\protect\nwixd}{#2}{#3}}
-\def\nwindexuse#1#2#3{\@auxix{\protect\nwixu}{#2}{#3}}
-
-\def\@auxix#1#2#3{% {marker}{id label}{subpage label}
-   \@bsphack\if@filesw {\let\nwixd\relax\let\nwixu\relax
-   \def\protect{\noexpand\noexpand\noexpand}%
-   \edef\@tempa{\write\@auxout{\string\nwixadd{#1}{#2}{#3}}}%
-   \expandafter}\@tempa
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-% \nwixadd{marker}{idlabel}{subpage label}
-\def\nwixadd#1#2#3{%
-  \@ifundefined{nwixl@#2}%
-    {\global\@namedef{nwixl@#2}{#1{#3}}}%
-    {\expandafter\nwix@cons\csname nwixl@#2\endcsname{#1{#3}}}}
-\def\@nwsubscriptident#1#2{\mbox{$\mbox{#1}_{\mathrm{\subpageref{#2}}}$}}
-\def\@nwnosubscriptident#1#2{#1}
-\def\@nwhyperident#1#2{\leavevmode\nwhyperreference{#2}{#1}}
-\def\nwopt@subscriptidents{%
-  \let\nwlinkedidentq\@nwsubscriptident
-  \let\nwlinkedidentc\@nwsubscriptident
-}
-\def\nwopt@nosubscriptidents{%
-  \let\nwlinkedidentq\@nwnosubscriptident
-  \let\nwlinkedidentc\@nwnosubscriptident
-}
-\def\nwopt@hyperidents{%
-  \let\nwlinkedidentq\@nwhyperident
-  \let\nwlinkedidentc\@nwhyperident
-}
-\def\nwopt@nohyperidents{%
-  \let\nwlinkedidentq\@nwnosubscriptident
-  \let\nwlinkedidentc\@nwnosubscriptident
-}
-\def\nwopt@subscriptquotedidents{%
-  \let\nwlinkedidentq\@nwsubscriptident
-}
-\def\nwopt@nosubscriptquotedidents{%
-  \let\nwlinkedidentq\@nwnosubscriptident
-}
-\def\nwopt@hyperquotedidents{%
-  \let\nwlinkedidentq\@nwhyperident
-}
-\def\nwopt@nohyperquotedidents{%
-  \let\nwlinkedidentq\@nwnosubscriptident
-}
-\nwopt@hyperidents
-\newcount\@commacount
-\def\commafy#1{%
-  {\nwix@listcount{#1}\@commacount=\nwix@counter
-   \let\@comma@each=\\%
-   \ifcase\@commacount\let\\=\@comma@each\or\let\\=\@comma@each\or
-     \def\\{\def\\{ \@nwlangdepand\ \@comma@each}\@comma@each}\else
-     \def\\{\def\\{, %
-                   \advance\@commacount by \m@ne
-                   \ifnum\@commacount=1 \@nwlangdepand~\fi\@comma@each}\@comma@each}\fi
-   #1}}
-\def\nwix@cons#1#2{% {list}{\marker{element}}
-  {\toks0=\expandafter{#1}\def\@tempa{#2}\toks2=\expandafter{\@tempa}%
-   \xdef#1{\the\toks0 \the\toks2 }}}
-\def\nwix@uses#1{% {label}
-  \def\nwixu{\\}\let\nwixd\@gobble\@nameuse{nwixl@#1}}
-\def\nwix@defs#1{% {label}
-  \def\nwixd{\\}\let\nwixu\@gobble\@nameuse{nwixl@#1}}
-\newcount\nwix@counter
-\def\nwix@listcount#1{% {list with \\}
-  {\count@=0
-   \def\\##1{\advance\count@ by \@ne }%
-   #1\global\nwix@counter=\count@ }}
-\def\nwix@usecount#1{\nwix@listcount{\nwix@uses{#1}}}
-\def\nwix@defcount#1{\nwix@listcount{\nwix@defs{#1}}}
-\def\nwix@id@defs#1{% index pair
-  {{\Tt \@car#1\@nil}%
-  \def\\##1{~\subpageref{##1}}\nwix@defs{\@cdr#1\@nil}}}
-\def\nwidentuses#1{% list of index pairs
-  \nwcodecomment{\@nwlangdepuss\ \let\\=\nwix@id@defs\commafy{#1}.}}
-\def\nwix@totaluses#1{% list of index pairs
-  {\count@=0
-   \def\\##1{\nwix@usecount{\@cdr##1\@nil}\advance\count@ by\nwix@counter}%
-   #1\global\nwix@counter\count@ }}
-\def\nwix@id@uses#1#2{% {ident}{label}
-  \nwix@usecount{#2}\ifnum\nwix@counter>0
-    {\advance\leftskip by \codemargin
-     \nwcodecomment{{\Tt #1}, \@nwlangdepusd\ \nwpageprep\ \@pagesl{\nwix@uses{#2}}.}}%
-  \else
-    \ifnw@hideunuseddefs\else
-      {\advance\leftskip by \codemargin \nwcodecomment{{\Tt #1}, \@nwlangdepnvu.}}%
-    \fi
-  \fi}
-\def\nwidentdefs#1{% list of index pairs
-  \ifnw@hideunuseddefs\nwix@totaluses{#1}\else\nwix@listcount{#1}\fi
-  \ifnum\nwix@counter>0
-    \nwcodecomment{\@nwlangdepdfs:}%
-    {\def\\##1{\nwix@id@uses ##1}#1}%
-  \fi}
-\newif\ifnw@hideunuseddefs\nw@hideunuseddefsfalse
-\def\nwopt@hideunuseddefs{\nw@hideunuseddefstrue}
-\def\nwopt@noidentxref{%
-  \let\nwidentdefs\@gobble
-  \let\nwidentuses\@gobble}
-\def\nw@underlinedefs{% {list with \nwixd, \nwixu}
-  \let\\=\relax\def\nw@comma{, }
-  \def\nwixd##1{\\\underline{\subpageref{##1}}\let\\\nw@comma}%
-  \def\nwixu##1{\\\subpageref{##1}\let\\\nw@comma}}
-
-\def\nw@indexline#1#2{%
-   {\indent {\Tt #1}: \nw@underlinedefs\@nameuse{nwixl@#2}\par}}
-
-\newenvironment{thenowebindex}{\parindent=-10pt \parskip=\z@ 
-        \advance\leftskip by 10pt 
-        \advance\rightskip by 0pt plus1in\par\@afterindenttrue
-    \def\\##1{\nw@indexline##1}}{}
-\def\nowebindex{%
-  \@ifundefined{nwixs@i}%
-     {\@warning{The \string\nowebindex\space is empty}}%
-     {\begin{thenowebindex}\@nameuse{nwixs@i}\end{thenowebindex}}}
-\def\nowebindex@external{%
-  {\let\nwixadds@c=\@gobble
-   \def\nwixadds@i##1{\nw@indexline##1}%
-   \def\nwixaddsx##1##2{\@nameuse{nwixadds@##1}{##2}}%
-   \begin{thenowebindex}\@input{\jobname.nwi}\end{thenowebindex}}}
-\def\nwixlogsorted#1#2{% list data
-   \@bsphack\if@filesw 
-     \toks0={#2}\immediate\write\@auxout{\string\nwixadds{#1}{\the\toks0}}
-   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
-\def\nwixadds#1#2{%
-  \@ifundefined{nwixs@#1}%
-    {\global\@namedef{nwixs@#1}{\\{#2}}}%
-    {\expandafter\nwix@cons\csname nwixs@#1\endcsname{\\{#2}}}}
-\let\nwixaddsx=\@gobbletwo
-\def\nwopt@externalindex{%
-  \ifx\nwixadds\@gobbletwo % already called
-  \else
-    \let\nwixaddsx=\nwixadds \let\nwixadds=\@gobbletwo
-    \let\nowebindex=\nowebindex@external
-    \let\nowebchunks=\nowebchunks@external
-  \fi}
-\def\nowebchunks{%
-  \@ifundefined{nwixs@c}%
-     {\@warning{The are no \string\nowebchunks}}%
-     {\begin{thenowebchunks}\@nameuse{nwixs@c}\end{thenowebchunks}}}
-\def\nowebchunks@external{%
-  {\let\nwixadds@i=\@gobble
-   \def\nwixadds@c##1{\nw@onechunk##1}%
-   \def\nwixaddsx##1##2{\@nameuse{nwixadds@##1}{##2}}%
-   \begin{thenowebchunks}\@input{\jobname.nwi}\end{thenowebchunks}}}
-    \@namedef{r@nw@notdef}{{0}{(\@nwlangdepnvd)}}
-\def\nw@chunkunderlinedefs{% {list of labels with \nwixd, \nwixu}
-  \let\\=\relax\def\nw@comma{, }
-  \def\nwixd##1{\\\underline{\subpageref{##1}}\let\\\nw@comma}%
-  \def\nwixu##1{\\\subpageref{##1}\let\\\nw@comma}}
-\def\nw@onechunk#1#2#3{% {name}{label of first definition}{list with \nwixd, \nwixu}
-  \@ifundefined{r@#2}{}{%
-    \indent\LA #1~{\nwtagstyle\subpageref{#2}}\RA 
-    \if@nwlongchunks{~\nw@chunkunderlinedefs#3}\fi\par}}
-\newenvironment{thenowebchunks}{\vskip3pt
-  \parskip=\z@\parindent=-10pt \advance\leftskip by 10pt
-  \advance\rightskip by 0pt plus10pt \@afterindenttrue
-  \def\\##1{\nw@onechunk##1}}{}
-\newif\if@nwlongchunks
-\@nwlongchunksfalse
-\let\nwopt@longchunks\@nwlongchunkstrue
-\providecommand\@nw@hyper@ref{\hyperreference} % naras
-\providecommand\@nw@hyper@anc{\blindhyperanchor} % naras
-\providecommand\@nw@hyperref@ref[2]{\hyperlink{noweb.#1}{#2}}  % nr
-\providecommand\@nw@hyperref@anc[1]{\hypertarget{noweb.#1}{\relax}}  % nr
-%%\renewcommand\@nw@hyperref@ref[2]{{#2}}  % nr
-%%\renewcommand\@nw@hyperref@anc[1]{}  % nr
-\providecommand\nwhyperreference{%
-  \@ifundefined{hyperlink}
-    {\@ifundefined{hyperreference}
-       {\global\let\nwhyperreference\@gobble}
-       {\global\let\nwhyperreference\@nw@hyper@ref}}
-    {\global\let\nwhyperreference\@nw@hyperref@ref}%
-  \nwhyperreference
-}
-
-\providecommand\nwblindhyperanchor{%
-  \@ifundefined{hyperlink}
-    {\@ifundefined{hyperreference}
-       {\global\let\nwblindhyperanchor\@gobble}
-       {\global\let\nwblindhyperanchor\@nw@hyper@anc}}
-    {\global\let\nwblindhyperanchor\@nw@hyperref@anc}%
-  \nwblindhyperanchor
-}
-\providecommand\nwanchorto{%
-  \begingroup\let\do\@makeother\dospecials
-     \catcode`\{=1 \catcode`\}=2 \nw@anchorto}
-\providecommand\nw@anchorto[1]{\endgroup\def\nw@next{#1}\nw@anchortofin}
-\providecommand\nw@anchortofin[1]{#1\footnote{See URL \texttt{\nw@next}.}}
-\let\nwanchorname\@gobble
-\newif\ifhtml
-\htmlfalse
-\let\nwixident=\relax
-\def\nwbackslash{\char92}
-\def\nwlbrace{\char123}
-\def\nwrbrace{\char125}
-\def\nwopt@english{%
-  \def\@nwlangdepdef{This definition is continued}%
-  \def\@nwlangdepcud{This code is used}%
-  \def\@nwlangdeprtc{Root chunk (not used in this document)}%
-  \def\@nwlangdepcwf{This code is written to file}%
-  \def\@nwlangdepchk{chunk}%
-  \def\@nwlangdepchks{chunks}%
-  \def\@nwlangdepin{in}%
-  \def\@nwlangdepand{and}%
-  \def\@nwlangdepuss{Uses}%
-  \def\@nwlangdepusd{used}%
-  \def\@nwlangdepnvu{never used}%
-  \def\@nwlangdepdfs{Defines}%
-  \def\@nwlangdepnvd{never defined}%
-}
-\let\nwopt@american\nwopt@english
-\def\nwopt@portuges{%
-  \def\@nwlangdepdef{Defini\c{c}\~ao continuada em}%
-  % This definition is continued
-  \def\@nwlangdepcud{C\'odigo usado em}%
-  % This code is used
-  \def\@nwlangdeprtc{Fragmento de topo (sem uso no documento)}%
-  % Root chunk (not used in this document)
-  \def\@nwlangdepcwf{Este c\'odigo foi escrito no ficheiro}%
-  % This code is written to file
-  \def\@nwlangdepchk{fragmento}%
-  % chunk
-  \def\@nwlangdepchks{fragmentos}%
-  % chunks
-  \def\@nwlangdepin{no(s)}%
-  % in
-  \def\@nwlangdepand{e}%
-  % and
-  \def\@nwlangdepuss{Usa}%
-  % Uses
-  \def\@nwlangdepusd{usado}%
-  % used
-  \def\@nwlangdepnvu{nunca usado}%
-  % never used
-  \def\@nwlangdepdfs{Define}%
-  % Defines
-  \def\@nwlangdepnvd{nunca definido}%
-  % never defined
-}
-\def\nwopt@frenchb{%
-  \def\@nwlangdepdef{Cette d\'efinition suit}%
-  % This definition is continued
-  \def\@nwlangdepcud{Ce code est employ\'e}%
-  % This code is used
-  \def\@nwlangdeprtc{Morceau racine (pas employ\'e dans ce document)}%
-  % Root chunk (not used in this document)
-  \def\@nwlangdepcwf{Ce code est \'ecrit aux fichier}%
-  % This code is written to file
-  \def\@nwlangdepchk{le morceau}%
-  % chunk
-  \def\@nwlangdepchks{les morceaux}%
-  % chunks
-  \def\@nwlangdepin{dans}%
-  % in
-  \def\@nwlangdepand{et}%
-  % and
-  \def\@nwlangdepuss{Il emploie}%
-  % Uses
-  \def\@nwlangdepusd{employ\'{e}}%
-  % used
-  \def\@nwlangdepnvu{jamais employ\'{e}}%
-  % never used
-  \def\@nwlangdepdfs{Il d\'{e}fine}%
-  % Defines
-  % Cannot use the accent here: \def\@nwlangdepnvd{jamais d\'{e}fini}%
-  \def\@nwlangdepnvd{jamais defini}%
-  % never defined
-}
-\let\nwopt@french\nwopt@frenchb
-\def\nwopt@german{%
-  \def\@nwlangdepdef{Diese Definition wird fortgesetzt}%
-  % This definition is continued
-  \def\@nwlangdepcud{Dieser Code wird benutzt}%
-  % This code is used
-  \def\@nwlangdeprtc{Hauptteil (nicht in diesem Dokument benutzt)}%
-  % Root chunk (not used in this document)
-  \def\@nwlangdepcwf{Dieser Code schreibt man zum File}%
-  % This code is written to file
-  \def\@nwlangdepchk{Teil}%
-  % chunk
-  \def\@nwlangdepchks{Teils}%
-  % chunks
-  \def\@nwlangdepin{im}%
-  % in
-  \def\@nwlangdepand{und}%
-  % and
-  \def\@nwlangdepuss{Benutztt}%
-  % Uses
-  \def\@nwlangdepusd{benutzt}%
-  % used
-  \def\@nwlangdepnvu{nicht benutzt}%
-  % never used
-  \def\@nwlangdepdfs{Definiert}%
-  % Defines
-  \def\@nwlangdepnvd{nicht definiert}%
-  % never defined
-}
-\let\nwopt@ngerman\nwopt@german
-\ifx\languagename\undefined % default is English
-  \noweboptions{english}
-\else
-  \@ifundefined{nwopt@\languagename}
-     {\noweboptions{english}}
-     {\expandafter\noweboptions\expandafter{\languagename}}
-\fi
-% Final names for the system and its components were in doubt so
-% Language is used throughout the book to specify what the system is named.
-\providecommand{\Language}{AXIOM}
-
-% HyperName was used to specify the name of the browser
-\providecommand{\HyperName}{HyperDoc}
-
-% This is nothing more than inline math mode in Tex but has additional
-% meaning within the browser.
-\providecommand{\spad}[1]{${#1}$}
-
-% This is a way to say 8th, 100th, etc.
-% We use providecommand so it doesn't clash with amsmath package
-\providecommand{\eth}[1]{{#1}-th}
-
-% add the binom function for combfunc
-\providecommand{\binom}[2]{\left(\begin{array}{c}#1\\#2\end{array}\right)}
-
-% spadcommands are the actual text that you type at the axiom prompt
-\providecommand{\spadcommand}[1]%
-{\begin{flushleft}{\tt #1}\end{flushleft}\vskip .1cm }
-
-% spadgraph are the actual text that you type at the axiom prompt for draw
-\providecommand{\spadgraph}[1]%
-{\begin{flushleft}{\tt #1}\end{flushleft}\vskip .1cm }
-
-%% spadsig gives the standard -> notation for signatures
-\providecommand{\spadsig}[2]{{\sf #1 $\rightarrow$ #2}}
-
-% returnType is the type signature returned by the axiom interpreter
-\providecommand{\returnType}[1]%
-{\begin{flushright}{\tt #1}\end{flushright}\vskip .1cm}
-
-%%% Axiom commands are set off in a special boxed area. 
-%%% This is used to draw a line around that boxed area.
-\providecommand\boxed[2]{%
-\begin{center}
-\begin{tabular}{|c|}
-\hline
-\begin{minipage}{#1}
-\normalsize
-{#2}
-\end{minipage}\\
-\hline
-\end{tabular}
-\end{center}}
-
-% The book begins with some introductory material that is not really
-% listed as a chapter. This creates a header similar to \chapter.
-\providecommand{\pseudoChapter}[1]%
-{\vskip .5in \noindent {\Huge{\bf #1}}\vskip .5in}
-
-% The book begins with some introductory material that is not really
-% listed as a section. This creates a header similar to \section.
-\providecommand{\pseudoSection}[1]%
-{\vskip .25in \noindent {\large{\bf #1}}\vskip .25in}
-
-% spadofFrom records the operation in the index and the domain in the index
-\providecommand{\spadopFrom}[2]{\index{library!operations!#1 @\begingroup \string\tt{} #1 \endgroup}\index{#2}``{\tt #1}''}
-
-% spadfunFrom records the function name and domain in the index
-\providecommand{\spadfunFrom}[2]{{\bf #1}\index{#1 @\begingroup \string\bf{} #1 \endgroup}\index{#2}}
-
-% These are special markers within the text for Hypertex keywords
-% They have no particular meaning in the book form.
-\providecommand{\spadfun}[1]{{\it #1}}
-\providecommand{\spadgloss}[1]{{\it #1}}
-\providecommand{\spadkey}[1]{\index{#1 @\begingroup \string\tt{} #1 \endgroup}}
- 
-% spadtype records the domain in the index
-\providecommand{\spadtype}[1]{{\bf #1}\index{#1 @\begingroup \string\bf{} #1 \endgroup}}
-
-% This is used to create a caption on an included image
-\providecommand{\simpleCaption}[1]{\def\thefigure{\@arabic\c@figure}\caption{#1}}
-
-% This is the name of the ``glossy'' pages in the physical book.
-\providecommand{\Gallery}{\Language{} Images}
-
-% spadofFrom records the operation in the index and the domain in the index
-\providecommand{\spadopFrom}[2]{\index{library!operations!#1 @\begingroup \string\tt{} #1 \endgroup}\index{#2}``{\tt #1}''}
-
-%% typeset e.g. and i.e.
-\providecommand{\eg}{\emph{e.g.}}
-\providecommand{\ie}{\emph{i.e.}}
-
-%% Typeset in-line code.
-\providecommand{\Code}[1]{\texttt{#1}}
-
-%% Typeset a file name
-\providecommand{\File}[1]{{\itshape{#1}}}
-
-%% Typeset a tool name, e.g. Axiom
-\providecommand{\Tool}[1]{{\bfseries\sffamily{#1}}}
-\providecommand\AXIOM{\vskip\parindent\indent{\bf AXIOM}\vskip\parindent\noindent\ignorespaces}
-\providecommand\maxima{\vskip\parindent\noindent{\bf MAXIMA}\vskip\parindent\noindent\ignorespaces}
-\providecommand\yacas{\vskip\parindent\noindent{\bf YACAS}\vskip\parindent\noindent\ignorespaces}
diff --git a/src/Makefile.pamphlet b/src/Makefile.pamphlet
index eab651f..ebb9f2d 100644
--- a/src/Makefile.pamphlet
+++ b/src/Makefile.pamphlet
@@ -499,13 +499,24 @@ etcclean: ${SRC}/etc/Makefile
 \subsection{The doc directory}
 The doc directory contains code used for documenting Axiom.
 
+We've added the books directory above as part of the literate process.
+This takes all of the Axiom volumes and creates .pdf copies in the
+final doc directory.
+
 <<docdir>>=
-docdir: ${SRC}/doc/Makefile
+docdir: ${SPD}/books/Makefile ${SRC}/doc/Makefile
 	@echo 41 making ${SRC}/doc
 	@mkdir -p ${INT}/doc
 	@mkdir -p ${MNT}/${SYS}/bin
+	@(cd ../books ; ${ENV} ${MAKE} )
 	@(cd doc ; ${ENV} ${MAKE} )
 
+${SPD}/books/Makefile: ${SPD}/books/Makefile.pamphlet
+	@echo 52 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet
+	@( cd ${SPD}/books ; \
+           ${DOCUMENT} ${NOISE} Makefile ; \
+           cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi )
+
 ${SRC}/doc/Makefile: ${SRC}/doc/Makefile.pamphlet
 	@echo 42 making ${SRC}/doc/Makefile from ${SRC}/doc/Makefile.pamphlet
 	@( cd doc ; \
diff --git a/src/doc/Makefile.pamphlet b/src/doc/Makefile.pamphlet
index 6cbc985..13d39b9 100644
--- a/src/doc/Makefile.pamphlet
+++ b/src/doc/Makefile.pamphlet
@@ -35,52 +35,6 @@ ${STY}/axiom.sty: ${IN}/axiom.sty.pamphlet
 	${TANGLE} -R"axiom.sty" ${IN}/axiom.sty.pamphlet >axiom.sty )
 
 @ 
-\section{Book Volume 4: Developer Notes}
-This file contains a random collection of facts about Axiom
-intended for developers. It talks about directory structure,
-internal representations, debugging tools, and gives a cookbook
-for using CVS. There is nothing of interest for the end user.
-<<bookvol4>>=
-${DVI}/bookvol4.dvi: ${IN}/bookvol4.pamphlet ${STY}/axiom.sty
-	@echo 3 making ${DVI}/bookvol4.dvi from ${IN}/bookvol4.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/bookvol4.pamphlet ${MID} ; \
-	${DOCUMENT} ${NOISE} bookvol4 ; \
-	cp bookvol4.dvi ${DVI} )
-
-@
-\section{Book}
-This file contains the main documentation for Axiom, the Axiom book.
-We take care to copy the whole [[ps/]] directory that contains images
-used by the book.
-<<Book>>=
-${DVI}/book.dvi: ${IN}/book.pamphlet
-	@echo 4 making ${DVI}/book.dvi from ${IN}/book.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/book.pamphlet ${MID} ; \
-	mkdir -p ${MID}/ps ; \
-	cp ${IN}/ps/*ps* ${MID}/ps ; \
-	${DOCUMENT} ${NOISE} book ; \
-	cp book.dvi ${DVI} ; \
-	mkdir -p ${DVI}/ps ; \
-	cp ${IN}/ps/*ps* ${DVI}/ps )
-
-@
-\section{Book Volume 1: Tutorial}
-This is the tutorial volume, the first book in the new axiom series.
-<<bookvol1>>=
-${DVI}/bookvol1.dvi: ${IN}/bookvol1.pamphlet
-	@echo 4 making ${DVI}/bookvol1.dvi from ${IN}/bookvol1.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/bookvol1.pamphlet ${MID} ;\
-	mkdir -p ${MID}/ps ; \
-	cp ${IN}/ps/*ps* ${MID}/ps ; \
-	${DOCUMENT} ${NOISE} bookvol1 ; \
-	cp bookvol1.dvi ${DVI} ; \
-	mkdir -p ${DVI}/ps ; \
-	cp ${IN}/ps/*ps* ${DVI}/ps )
-
-@
 \section{The Reference Card}
 This is the one-page, 2 sided reference card
 <<refcard>>=
@@ -174,8 +128,7 @@ STY=${OUT}/tex
 DVI=${MNT}/${SYS}/doc
 DOC=${INT}/doc
 
-FILES= ${MID}/axiom.bib ${STY}/axiom.sty ${DVI}/bookvol4.dvi \
-       ${DVI}/book.dvi ${DVI}/bookvol1.dvi ${DVI}/refcard.dvi \
+FILES= ${MID}/axiom.bib ${STY}/axiom.sty ${DVI}/refcard.dvi \
        ${DVI}/endpaper.dvi ${DVI}/rosetta.dvi ${DVI}/spadhelp/spadhelp.files
 
 CMDS=${OUT}/booklet
@@ -188,9 +141,6 @@ all: ${FILES} ${CMDS}
 <<booklet>>
 <<bibtex>>
 <<axiom.sty>>
-<<bookvol4>>
-<<Book>>
-<<bookvol1>>
 <<refcard>>
 <<Endpapers>>
 <<rosetta>>
