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}$>>=$}% <>= -\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{}} -\def\nowebindex{\message{}} -% 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: ${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. -<>= -${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. -<>= -${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. -<>= -${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 <>= @@ -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} <> <> <> -<> -<> -<> <> <> <>