aboutsummaryrefslogtreecommitdiff
path: root/src/scripts/tex
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/scripts/tex
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/scripts/tex')
-rwxr-xr-xsrc/scripts/tex/axiom.sty946
1 files changed, 946 insertions, 0 deletions
diff --git a/src/scripts/tex/axiom.sty b/src/scripts/tex/axiom.sty
new file mode 100755
index 00000000..cc1b0bfb
--- /dev/null
+++ b/src/scripts/tex/axiom.sty
@@ -0,0 +1,946 @@
+% axiom.sty -- LaTeX support for noweb
+% DON'T edit this file! Use src/doc/axiom.sty.pamphlet instead.
+{\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}
+\newcommand{\nwprevdefptr}[1]{%
+ \mbox{$\mathord{\triangleleft}\,\mathord{\mbox{\subpageref{#1}}}$}}
+\newcommand{\nwnextdefptr}[1]{%
+ \mbox{$\mathord{\mbox{\subpageref{#1}}}\,\mathord{\triangleright}$}}
+
+\newcommand{\@nwprevnextdefs}[2]{%
+ {\nwtagstyle
+ \ifx\relax#1\else ~~\nwprevdefptr{#1}\fi
+ \ifx\relax#2\else ~~\nwnextdefptr{#2}\fi}}
+\newcommand{\@nwusesondefline}[1]{{\nwtagstyle~~(\@pagenumsl{#1})}}
+\newcommand{\@nwstartdeflinemarkup}{\nobreak\hskip 1.5em plus 1fill\nobreak}
+\newcommand{\@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
+\newcommand\nw@genericref[2]{% what to do, name of ref
+ \expandafter\nw@g@nericref\csname r@#2\endcsname#1{#2}}
+\newcommand\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}}
+\newcommand{\subpageref}[1]{%
+ \nwhyperreference{#1}{\nw@genericref\@subpageref{#1}}}
+\def\@subpageref#1#2#3\\{%
+ \@ifundefined{2on#2}{#2}{\nwthepagenum{#1}{#2}}}
+\newcommand{\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}}}
+\newcommand{\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}
+\newcommand{\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}
+\newcommand\newsublabel{%
+ \nw@settrailers
+ \global\let\newsublabel\@newsublabel
+ \@newsublabel}
+\newcommand{\@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{}}
+\newcommand\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{{}{}{}}}}
+\newcommand{\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}
+\newcommand\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
+\newcommand{\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
+\newcommand\@nw@hyper@ref{\hyperreference} % naras
+\newcommand\@nw@hyper@anc{\blindhyperanchor} % naras
+\newcommand\@nw@hyperref@ref[2]{\hyperlink{noweb.#1}{#2}} % nr
+\newcommand\@nw@hyperref@anc[1]{\hypertarget{noweb.#1}{\relax}} % nr
+%%\renewcommand\@nw@hyperref@ref[2]{{#2}} % nr
+%%\renewcommand\@nw@hyperref@anc[1]{} % nr
+\newcommand\nwhyperreference{%
+ \@ifundefined{hyperlink}
+ {\@ifundefined{hyperreference}
+ {\global\let\nwhyperreference\@gobble}
+ {\global\let\nwhyperreference\@nw@hyper@ref}}
+ {\global\let\nwhyperreference\@nw@hyperref@ref}%
+ \nwhyperreference
+}
+
+\newcommand\nwblindhyperanchor{%
+ \@ifundefined{hyperlink}
+ {\@ifundefined{hyperreference}
+ {\global\let\nwblindhyperanchor\@gobble}
+ {\global\let\nwblindhyperanchor\@nw@hyper@anc}}
+ {\global\let\nwblindhyperanchor\@nw@hyperref@anc}%
+ \nwblindhyperanchor
+}
+\newcommand\nwanchorto{%
+ \begingroup\let\do\@makeother\dospecials
+ \catcode`\{=1 \catcode`\}=2 \nw@anchorto}
+\newcommand\nw@anchorto[1]{\endgroup\def\nw@next{#1}\nw@anchortofin}
+\newcommand\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
+% spadcommands are the actual text that you type at the axiom prompt
+\newcommand{\spadcommand}[1]%
+{\begin{flushleft}{\tt #1}\end{flushleft}\vskip .1cm }
+
+% spadgraph are the actual text that you type at the axiom prompt for draw
+\newcommand{\spadgraph}[1]%
+{\begin{flushleft}{\tt #1}\end{flushleft}\vskip .1cm }
+
+% returnType is the type signature returned by the axiom interpreter
+\newcommand{\returnType}[1]%
+{\begin{flushright}{\tt #1}\end{flushright}\vskip .1cm}
+
+% The book begins with some introductory material that is not really
+% listed as a chapter. This creates a header similar to \chapter.
+\newcommand{\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.
+\newcommand{\pseudoSection}[1]%
+{\vskip .25in \noindent {\large{\bf #1}}\vskip .25in}
+
+% spadofFrom records the operation in the index and the domain in the index
+\newcommand{\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
+\newcommand{\spadfunFrom}[2]{{\bf #1}\index{#1 @\begingroup \string\bf{} #1 \endgroup}\index{#2}}
+
+\newcommand\AXIOM{\vskip\parindent\indent{\bf AXIOM}\vskip\parindent\noindent\ignorespaces}
+\newcommand\maxima{\vskip\parindent\noindent{\bf MAXIMA}\vskip\parindent\noindent\ignorespaces}
+\newcommand\yacas{\vskip\parindent\noindent{\bf YACAS}\vskip\parindent\noindent\ignorespaces}