% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
\documentclass[a4paper,11pt]{report}
\usepackage{a4wide}
\sloppy
\pagestyle{myheadings}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage{makeidx}
\makeindex
\usepackage{color}
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
\definecolor{Black}{rgb}{0.0,0.0,0.0}
\definecolor{FuncColor}{rgb}{1.0,0.0,0.0}
%% strange name because of pdflatex bug:
\definecolor{Chapter }{rgb}{0.0,0.0,1.0}

\usepackage{fancyvrb}

\usepackage{pslatex}

\usepackage[pdftex=true,
        a4paper=true,bookmarks=false,pdftitle={Written with GAPDoc},
        pdfcreator={LaTeX with hyperref package / GAPDoc},
        colorlinks=true,backref=page,breaklinks=true,linkcolor=RoyalBlue,
        citecolor=RoyalGreen,filecolor=RoyalRed,
        urlcolor=RoyalRed,pagecolor=RoyalBlue]{hyperref}

% write page numbers to a .pnr log file for online help
\newwrite\pagenrlog
\immediate\openout\pagenrlog =\jobname.pnr
\immediate\write\pagenrlog{PAGENRS := [}
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
%% were never documented, give conflicts with some additional packages


\newcommand{\GAP}{\textsf{GAP}}

\begin{document}

\logpage{[ 0, 0, 0 ]}
\begin{titlepage}
\begin{center}{\Huge \textbf{A Complete Example ($\to$ \ref{One})\mbox{}}}\\[1cm]
\hypersetup{pdftitle=A Complete Example ($\to$ \ref{One})}
\markright{\scriptsize \mbox{}\hfill A Complete Example ($\to$ \ref{One}) \hfill\mbox{}}
{\Large \textbf{Every element shows up\mbox{}}}\\[1cm]
{Version 1.2 \mbox{}}\\[1cm]
{June 2008\mbox{}}\\[1cm]
\mbox{}\\[2cm]
{\large \textbf{Frank L{\"u}beck  \mbox{}}}\\
{\large \textbf{ Max Neunh{\"o}ffer  \mbox{}}}\\
\hypersetup{pdfauthor=Frank L{\"u}beck  ;  Max Neunh{\"o}ffer  }
\mbox{}\\[2cm]
\begin{minipage}{12cm}\noindent
 If the subtitle ist not sufficient, this {\textless}TitleComment{\textgreater}
element can be used for a slightly longer text on the front page. \end{minipage}

\end{center}\vfill

\mbox{}\\
{\mbox{}\\
\small \noindent \textbf{Frank L{\"u}beck  } --- Email: \href{mailto://Frank.Luebeck@Math.RWTH-Aachen.De} {\texttt{Frank.Luebeck@Math.RWTH-Aachen.De}}}\\
{\mbox{}\\
\small \noindent \textbf{ Max Neunh{\"o}ffer  } --- Email: \href{mailto://neunhoef at mcs.st-and.ac.uk} {\texttt{neunhoef at mcs.st-and.ac.uk}}}\\

\noindent \textbf{Address: }\begin{minipage}[t]{8cm}\noindent
 Lehrstuhl D f{\"u}r Mathematik\\
 Templergraben 64\\
 52062 Aachen\\
 (Germany) \end{minipage}
\end{titlepage}

\newpage\setcounter{page}{2}
{\small 
\section*{Abstract}
\logpage{[ 0, 0, 1 ]}
This document tries to use all elements that exist in \textsf{GAPDoc}. In addition, the final output not only contains the usual content, but also
an appendix with the source text. There are also links from the usual content
to the corresponding source text. This should enable new users to learn \textsf{GAPDoc} quickly. \mbox{}}\\[1cm]
{\small 
\section*{Copyright}
\logpage{[ 0, 0, 2 ]}
{\copyright} 2000-2008 by Frank L{\"u}beck and Max Neunh{\"o}ffer \mbox{}}\\[1cm]
{\small 
\section*{Acknowledgements}
\logpage{[ 0, 0, 3 ]}
We thank Lehrstuhl D f{\"u}r Mathematik. \mbox{}}\\[1cm]
{\small 
\section*{Colophon}
\logpage{[ 0, 0, 4 ]}
This is the Colophon page. \mbox{}}\\[1cm]
\newpage

\def\contentsname{Contents\logpage{[ 0, 0, 5 ]}}

\tableofcontents
\newpage

 Text before chapter \ref{First}. ($\to$ \ref{Two}) 
\chapter{\textcolor{Chapter }{Sectioning Elements}}\label{First}
\logpage{[ 1, 0, 0 ]}
\hyperdef{L}{X80E2AD7481DD69D9}{}
{
 Text before the section \ref{FirstSect}. ($\to$ \ref{Two}) \label{ThreeBack} 
\section{\textcolor{Chapter }{Normal subsections}}\label{FirstSect}
\logpage{[ 1, 1, 0 ]}
\hyperdef{L}{X7818BD01870A269E}{}
{
 [$\to$ \ref{Three}] 
\subsection{\textcolor{Chapter }{A subsection}}\label{Asub}
\logpage{[ 1, 1, 1 ]}
\hyperdef{L}{X7E193BD379F58A4C}{}
{
 This is text in the first subsection. }

 
\subsection{\textcolor{Chapter }{Another subsection}}\label{Another}
\logpage{[ 1, 1, 2 ]}
\hyperdef{L}{X79C2A0097ADE9776}{}
{
 This is text in the second subsection. This subsection has a label, such that
one can reference it. }

 }

 
\section{\textcolor{Chapter }{ManSections}}\logpage{[ 1, 2, 0 ]}
\hyperdef{L}{X7C2D89087EA8BC84}{}
{
 \label{FourBack} [$\to$ \ref{Four}] 

\subsection{\textcolor{Chapter }{f}}
\logpage{[ 1, 2, 1 ]}\nobreak
\hyperdef{L}{X7FA1D0937FA1D093}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{f({\slshape x[, y]})\index{f@\texttt{f}}
\label{f}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
an element in \texttt{IsBlubb} (\ref{IsBlubb}) or \texttt{fail}.



 This function calculates something. }

 

\subsection{\textcolor{Chapter }{\texttt{\symbol{92}}\texttt{\symbol{94}}\texttt{\symbol{92}}\texttt{\symbol{123}}\texttt{\symbol{92}}\texttt{\symbol{125}}\texttt{\symbol{92}}[\texttt{\symbol{92}}]\texttt{\symbol{92}}{\textless}\texttt{\symbol{92}}\& (for nothing)}}
\logpage{[ 1, 2, 2 ]}\nobreak
\hyperdef{L}{X81B8E74C832985A0}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{\texttt{\symbol{92}}\texttt{\symbol{94}}\texttt{\symbol{92}}\texttt{\symbol{123}}\texttt{\symbol{92}}\texttt{\symbol{125}}\texttt{\symbol{92}}[\texttt{\symbol{92}}]\texttt{\symbol{92}}{\textless}\texttt{\symbol{92}}\&({\slshape c})\index{^{}[]<&@\texttt{\texttt{\symbol{92}}\texttt{\symbol{94}}\texttt{\symbol{92}}\texttt{\symbol{123}}\texttt{\symbol{92}}\texttt{\symbol{125}}\texttt{\symbol{92}}[\texttt{\symbol{92}}]\texttt{\symbol{92}}{\textless}\texttt{\symbol{92}}\&}!for nothing}
\label{^{}[]<&:for nothing}
}\hfill{\scriptsize (method)}}\\


 This method is for an operation with a tricky name. }

 

\subsection{\textcolor{Chapter }{MyOperation}}
\logpage{[ 1, 2, 3 ]}\nobreak
\hyperdef{L}{X7D33C2597988F481}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MyOperation({\slshape x})\index{MyOperation@\texttt{MyOperation}}
\label{MyOperation}
}\hfill{\scriptsize (operation)}}\\


 The operation \texttt{MyOperation} operates on \mbox{\texttt{\slshape x}}. }

 

\subsection{\textcolor{Chapter }{MyOperation (First)}}
\logpage{[ 1, 2, 4 ]}\nobreak
\hyperdef{L}{X783DCD4E826289D4}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MyOperation({\slshape x})\index{MyOperation@\texttt{MyOperation}!First}
\label{MyOperation:First}
}\hfill{\scriptsize (method)}}\\


 This method calculates something by the generic method. }

 

\subsection{\textcolor{Chapter }{MyOperation (for bla)}}
\logpage{[ 1, 2, 5 ]}\nobreak
\hyperdef{L}{X7A5F4A287D06988C}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MyOperation({\slshape x[, good{\textunderscore}hint]})\index{MyOperation@\texttt{MyOperation}!for bla}
\label{MyOperation:for bla}
}\hfill{\scriptsize (method)}}\\


 This is the super-fast method for the operation \texttt{MyOperation} (\ref{MyOperation}) if the argument \mbox{\texttt{\slshape x}} is in the representation \texttt{IsBla} (\ref{IsBla}). It will become even faster if the optional argument \mbox{\texttt{\slshape good{\textunderscore}hint}} is given. }

 

\subsection{\textcolor{Chapter }{IsBla}}
\logpage{[ 1, 2, 6 ]}\nobreak
\hyperdef{L}{X82954B687D2DF3C2}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsBla({\slshape obj})\index{IsBla@\texttt{IsBla}}
\label{IsBla}
}\hfill{\scriptsize (representation)}}\\


 For objects in this representation there is a super-fast method (see \texttt{MyOperation} (\ref{MyOperation:for bla})) for the operation \texttt{MyOperation} (\ref{MyOperation}). }

 

\subsection{\textcolor{Chapter }{IsBlubb}}
\logpage{[ 1, 2, 7 ]}\nobreak
\hyperdef{L}{X80C364DD7C919CCE}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsBlubb({\slshape obj})\index{IsBlubb@\texttt{IsBlubb}}
\label{IsBlubb}
}\hfill{\scriptsize (property)}}\\


 A property. }

 

\subsection{\textcolor{Chapter }{NumberBlobbs}}
\logpage{[ 1, 2, 8 ]}\nobreak
\hyperdef{L}{X8052A45E7F9F054C}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{NumberBlobbs({\slshape obj})\index{NumberBlobbs@\texttt{NumberBlobbs}}
\label{NumberBlobbs}
}\hfill{\scriptsize (attribute)}}\\


 An attribute. Number of blobbs. }

 

\subsection{\textcolor{Chapter }{AllBlibbs}}
\logpage{[ 1, 2, 9 ]}\nobreak
\hyperdef{L}{X7C00E05A7DDEF003}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{AllBlibbs\index{AllBlibbs@\texttt{AllBlibbs}}
\label{AllBlibbs}
}\hfill{\scriptsize (global variable)}}\\


 This global variable holds a list of all blibbs. }

 

\subsection{\textcolor{Chapter }{BlibbsFamily}}
\logpage{[ 1, 2, 10 ]}\nobreak
\hyperdef{L}{X7CBC935A8142E374}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BlibbsFamily\index{BlibbsFamily@\texttt{BlibbsFamily}}
\label{BlibbsFamily}
}\hfill{\scriptsize (family)}}\\


 Family of all blibbs. }

 

\subsection{\textcolor{Chapter }{InfoBlibbs}}
\logpage{[ 1, 2, 11 ]}\nobreak
\hyperdef{L}{X84D7D77378AD030A}{}
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{InfoBlibbs\index{InfoBlibbs@\texttt{InfoBlibbs}}
\label{InfoBlibbs}
}\hfill{\scriptsize (info class)}}\\


 This info class is used throughout the library of blibbs. }

 }

 }

 
\chapter{\textcolor{Chapter }{Other Markup}}\logpage{[ 2, 0, 0 ]}
\hyperdef{L}{X82793A7E7A3F2A54}{}
{
 \label{FiveBack} 
\section{\textcolor{Chapter }{Various types of text}}\logpage{[ 2, 1, 0 ]}
\hyperdef{L}{X7A480B9A795EF264}{}
{
 [$\to$ \ref{Five}]

 In this section we present examples for all the various types of text that are
possible in \textsf{GAPDoc}: 
\begin{itemize}
\item  \emph{This} is \emph{emphasized}.
\item  \emph{Keywords} are typeset like \texttt{this} and \texttt{that}. 
\item  \emph{Arguments} of functions have an element. They look like this: \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape y}}.
\item  \emph{Code} can be written with the Code element: \texttt{if x = y then Print("Equal"); fi;} or \texttt{while true do Print("Hello"); od;}.
\item  \emph{Filenames} have their own element: \texttt{/usr/local/ca/gap4r2} or \texttt{pkg/xgap/doc}.
\item  \emph{Buttons}, \emph{menus}, \emph{menu entries}, and such things are also supported: \textsc{OK} or \textsc{Cancel}.
\item  \emph{Packages} are typeset like this: \textsf{Small Groups Library} 
\item  \emph{Quoted} text: ``This is a text in quotes.'' 
\end{itemize}
 \emph{Paragraphs} are separated by the empty \texttt{Par} or \texttt{P} element. 

\emph{Alternatives} for different output formats: This is {\LaTeX} output.  

 \label{SixBack} There are also three elements to typeset ``verbatim-like'' text. ($\to$ \ref{Six})

 The first is a \emph{Listing}: 
\begin{Verbatim}[fontsize=\small,frame=single,label=GAP code]
  Sieve := function(n)
    # Returns the primes less than n
    local l,p,i;
    l := [1..n]; Unbind(l[1]);
    p := 2;
    while p^2 <= n do
        if IsBound(l[p]) then
            i := 2 * p;
            while i <= n do Unbind(l[i]); i := i + p; od;
        fi;
        p := p + 1;
    od;
    return Compacted(l);
  end;
\end{Verbatim}
 Here is a \emph{Log} of a \textsf{GAP} session using this function: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  gap> Sieve(100);
  [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,
    67, 71, 73, 79, 83, 89, 97 ]
  gap> Length(last);
  25
\end{Verbatim}
 Here is a \textsf{GAP} \emph{Example} session that is automatically tested: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  gap> s := Size(CharacterTable("M"));
  808017424794512875886459904961710757005754368000000000
  gap> s < 10^53;                     
  false
  gap> s < 10^54;
  true
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Formulae}}\logpage{[ 2, 2, 0 ]}
\hyperdef{L}{X7AA5BF0279938BE0}{}
{
 \label{SevenBack} [$\to$ \ref{Seven}]

 There are three types of formulae. 

 The first is the \emph{normal math mode} of {\LaTeX}: $b_i \cdot b_j = \sum_{k=1}^d h_{ijk} b_k$. Then there are \emph{displayed formulae}: 
\[ \Longrightarrow \quad \left(\sum_{i=1}^d x_i b_i \right) \cdot
\left(\sum_{j=1}^d y_j b_j \right) = \sum_{k=1}^d \left( \sum_{i,j} x_i y_j
h_{ijk} \right) b_k \]
 If possible, use the \texttt{Alt} element to specify a better readable text version of such a formula as in the
following example:

 
\[ \Longrightarrow \quad \left(\sum_{i=1}^d x_i b_i \right) \cdot
\left(\sum_{j=1}^d y_j b_j \right) = \sum_{k=1}^d \left( \sum_{i,j} x_i y_j
h_{ijk} \right) b_k \]
  For small formulae without ``difficult'' parts use the \texttt{M} element: $b_i$, $x^2$, $x^2 + 2x + 1 = (x + 1)^2$. Note that here whitespace matters for text (or HTML) output.

 Here are two formulae containing less than characters which are special
characters for XML: $a < b < c < d$ and $e < f$. }

 
\section{\textcolor{Chapter }{Crossreferencing}}\label{Cross}
\logpage{[ 2, 3, 0 ]}
\hyperdef{L}{X833C410D85CF96A4}{}
{
 \label{EightBack} [$\to$ \ref{Eight}]

 \label{there} In this section we demonstrate various references to parts of this document.
Here is a reference to this section: \ref{Cross}. Here is a reference to chapter \ref{First}, to appendix \ref{Appendix}, and to subsection \ref{Asub}. 

 We distinguish among others references to functions (see \texttt{f} (\ref{f})), to methods with tricky name (see \texttt{\texttt{\symbol{92}}\texttt{\symbol{94}}\texttt{\symbol{92}}\texttt{\symbol{123}}\texttt{\symbol{92}}\texttt{\symbol{125}}\texttt{\symbol{92}}[\texttt{\symbol{92}}]\texttt{\symbol{92}}{\textless}\texttt{\symbol{92}}\&} (\ref{^{}[]<&:for nothing})), to operations (see \texttt{MyOperation} (\ref{MyOperation})), to methods (see \texttt{MyOperation} (\ref{MyOperation:First}) or \texttt{MyOperation} (\ref{MyOperation:for bla})), to filters (see \texttt{IsBla} (\ref{IsBla})), to properties (see \texttt{IsBlubb} (\ref{IsBlubb})), to attributes (see \texttt{NumberBlobbs} (\ref{NumberBlobbs})), to variables (\texttt{AllBlibbs} (\ref{AllBlibbs})), to families (see \texttt{BlibbsFamily} (\ref{BlibbsFamily})), and to info classes (see \texttt{InfoBlibbs} (\ref{InfoBlibbs})). 

 There are also references to labels: see \ref{there}, to other books: see  (\textbf{GAPDoc: What is a DTD?}) or \texttt{IsSubgroup} (\textbf{Reference: IsSubgroup}) in the \textsf{GAP} reference manual. 

 References to sections come in two styles: \ref{First} or `Sectioning Elements'. 

 Another type of cross referencing is bibliography. Here is a citation: \cite[(5.22)]{CR1} is an interesting lemma. 

 There are also URLs:

 \href{http://www.math.rwth-aachen.de/} {\texttt{http://www.math.rwth-aachen.de/}}

 Email addresses have a special element: \href{mailto://Frank.Luebeck@Math.RWTH-Aachen.De} {\texttt{Frank.Luebeck@Math.RWTH-Aachen.De}} 

 and Homepages another one: \href{http://www-groups.mcs.st-and.ac.uk/~neunhoef/} {\texttt{http://www-groups.mcs.st-and.ac.uk/\texttt{\symbol{126}}neunhoef/}} 

 And here is a link to the \href{http://www.math.rwth-aachen.de/~Frank.Luebeck/gap/EDIM/index.html#ARCHS} {\textsf{EDIM} archives}. 

 One can generate index entries as follows (look up the words ``{\TeX}-UserGroup'', ``RWTH'', ``Aachen, Hauptbahnhof'', and ``\textsf{GAP}, \textsf{GAPDoc}''). \index{TeX-Usergroup@{\TeX}-UserGroup} \index{Aachen@Aachen!Hauptbahnhof} \index{GAP@\textsf{GAP}!\textsf{GAPDoc}} \index{RWTH} }

 
\section{\textcolor{Chapter }{Lists and Tables}}\logpage{[ 2, 4, 0 ]}
\hyperdef{L}{X7F10E951789D6EDF}{}
{
 \label{NineBack} [$\to$ \ref{Nine}]

 There are 
\begin{itemize}
\item lists
\item enumerations, and
\item tables
\end{itemize}
 or: 
\begin{enumerate}
\item lists
\item enumerations, and
\item tables
\end{enumerate}
 or with marks: 
\begin{description}
\item[{lists:}]  not numbered
\item[{enumerations:}]  numbered
\item[{tables:}]  two-dimensional
\end{description}
 Here is a \emph{table}: \begin{center}
\begin{tabular}{|r|c|l|}\hline
Object&
Price&
available\\
\hline
\hline
Shoe&
\$1,00&
there\\
\hline
Hat&
\$2,00&
not there\\
\hline
\end{tabular}\\[2mm]
\textbf{Table: }Prices\end{center}

 }

 
\section{\textcolor{Chapter }{Entities and Special Characters}}\logpage{[ 2, 5, 0 ]}
\hyperdef{L}{X83A355E68485D6D1}{}
{
 \label{TenBack} [$\to$ \ref{Ten}]

 Here is a table of special characters, the first two are special for XML and
must be typed in by entities in \textsf{GAPDoc} documents. The other characters are special for {\LaTeX} but in \textsf{GAPDoc} they can be typed directly. \mbox{}\label{charsInCDATA}\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
\texttt{\&}&
\texttt{{\textless}}&
\texttt{{\textgreater}}&
\texttt{\#}&
\texttt{\$}&
\texttt{\%}&
\texttt{\texttt{\symbol{126}}}&
\texttt{\texttt{\symbol{92}}}&
\texttt{\texttt{\symbol{123}}}&
\texttt{\texttt{\symbol{125}}}&
\texttt{{\textunderscore}}&
\texttt{\texttt{\symbol{94}}}&
\texttt{{\nobreakspace}}\\
\hline
\end{tabular}\\[2mm]
\textbf{Table: }Special characters in character data\end{center}

 And here are the predefined entities in \textsf{GAPDoc}: \begin{center}
\begin{tabular}{|l|l|}\hline
\texttt{\&GAP;}&
\textsf{GAP}\\
\hline
\texttt{\&GAPDoc;}&
\textsf{GAPDoc}\\
\hline
\texttt{\&TeX;}&
{\TeX}\\
\hline
\texttt{\&LaTeX;}&
{\LaTeX}\\
\hline
\texttt{\&BibTeX;}&
Bib{\TeX}\\
\hline
\texttt{\&MeatAxe;}&
\textsf{MeatAxe}\\
\hline
\texttt{\&XGAP;}&
\textsf{XGAP}\\
\hline
\texttt{\&copyright;}&
{\copyright}\\
\hline
\end{tabular}\\[2mm]
\textbf{Table: }Predefined Entities in the \textsf{GAPDoc} system\end{center}

 And some more for mathematical symbols: {\ensuremath{\mathbb C}},
{\ensuremath{\mathbb Z}}, {\ensuremath{\mathbb N}}, {\ensuremath{\mathbb P}},
{\ensuremath{\mathbb Q}}, {\ensuremath{\mathbb H}}, {\ensuremath{\mathbb R}}. }

 }

 

\appendix


\chapter{\textcolor{Chapter }{An Appendix}}\label{Appendix}
\logpage{[ "A", 0, 0 ]}
\hyperdef{L}{X7B53252784137533}{}
{
  \label{ElevenBack} [$\to$ \ref{Eleven}]

 This is an appendix. }


\chapter{\textcolor{Chapter }{The Source}}\label{Source}
\logpage{[ "B", 0, 0 ]}
\hyperdef{L}{X7B4F7623844A7E32}{}
{
 
\section{\textcolor{Chapter }{TitlePage (Source)}}\label{One}
\logpage{[ "B", 1, 0 ]}
\hyperdef{L}{X7CFACB517D259F59}{}
{
 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <TitlePage>
    <Title>A Complete Example</Title>
    <Subtitle>Every element shows up</Subtitle>
    <Version>Version 1.0</Version>
    <Author>Frank Lübeck 
            <Email>Frank.Luebeck@Math.RWTH-Aachen.De</Email></Author>
    <Author> Max Neunhöffer 
            <Email>neunhoef at mcs.st-and.ac.uk</Email>
    </Author>
    <Date>December 2000</Date>
    <Abstract>This document tries to use all elements that exist in &GAPDoc;.
              In addition, the final output not only contains the usual
              content, but also an appendix with the source text. There
              are also links from the usual content to the corresponding
              source text. This should enable new users to learn &GAPDoc;
              quickly.</Abstract>
    <Copyright>&copyright; 2000 by Frank Lübeck and Max Neunhöffer</Copyright>
    <Acknowledgements>We thank Lehrstuhl D für Mathematik.</Acknowledgements>
    <Colophon>This is the Colophon page.</Colophon>
  </TitlePage>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Before First Chapter (Source)}}\label{Two}
\logpage{[ "B", 2, 0 ]}
\hyperdef{L}{X7A4D1C8680D81F2A}{}
{
 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <TableOfContents/>
  
  <Body>
  
    Text before chapter <Ref Chap="First"/>.
  
  <Chapter Label="First"><Heading>Sectioning Elements</Heading>
  
    Text before the section <Ref Sect="FirstSect"/>.
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{First Chapter (Source)}}\label{Three}
\logpage{[ "B", 3, 0 ]}
\hyperdef{L}{X78308EBC7C2FF426}{}
{
  [\ref{ThreeBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section Label="FirstSect"><Heading>Normal subsections</Heading>
  
    <Subsection Label="Asub"><Heading>A subsection</Heading>
  
     This is text in the first subsection.
  
    </Subsection>
  
    <Subsection Label="Another"><Heading>Another subsection</Heading>
     
     This is text in the second subsection. This subsection 
     has a label, such that one can reference it.
  
    </Subsection>
  
   </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{ManSections (Source)}}\label{Four}
\logpage{[ "B", 4, 0 ]}
\hyperdef{L}{X814E3376826E1DB0}{}
{
 [\ref{FourBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section><Heading>ManSections</Heading>
  
    <ManSection>
     <Func Name="f" Arg="x[,y]" Comm="calculates something"/>
     <Returns>an element in <Ref Filt="IsBlubb" /> or <K>fail</K>.</Returns>
     <Description>
      This function calculates something.
     </Description>
    </ManSection>
  
    <ManSection>
     <Meth Name="\^\{\}\[\]\&lt;\&amp;" Arg="c" 
           Label="for nothing" Comm="tricky name"/>
     <Description>
      This method is for an operation with a tricky name.
     </Description>
    </ManSection>
  
    <ManSection>
     <Oper Name="MyOperation" Arg="x" Comm="calculates something"/>
     <Description>
      The operation <Ref Oper="MyOperation"/> operates on <Arg>x</Arg>.
     </Description>
    </ManSection>
     
    <ManSection>
     <Meth Name="MyOperation" Label="First" Arg="x" 
           Comm="generic method"/>
     <Description>
      This method calculates something by the generic method.
     </Description>
    </ManSection>
  
    <ManSection>
     <Meth Name="MyOperation" Label="for bla" Arg="x[, good_hint]"
           Comm="for bla arguments"/>
     <Description>
      This is the super-fast method for the operation
      <Ref Oper="MyOperation"/> if the argument <A>x</A> is in the
      representation <Ref Filt="IsBla"/>. It will become even faster if
      the optional argument <A>good_hint</A> is given.
     </Description>
    </ManSection>
  
    <ManSection>
     <Filt Name="IsBla" Arg="obj" Comm="representation bla"
           Type="representation"/>
     <Description>
      For objects in this representation there is a super-fast method
      (see <Ref Meth="MyOperation" Label="for bla"/>) for the operation
      <Ref Oper="MyOperation"/>.
     </Description>
    </ManSection>
  
    <ManSection>
     <Prop Name="IsBlubb" Arg="obj" Comm="property, whether object is blubb"/>
     <Description>
      A property.
     </Description>
    </ManSection>
  
    <ManSection>
     <Attr Name="NumberBlobbs" Arg="obj" Comm="number of blobbs"/>
     <Description>
      An attribute. Number of blobbs.
     </Description>
    </ManSection>
  
    <ManSection>
     <Var Name="AllBlibbs" Comm="list of all blibbs in the system"/>
     <Description>
      This global variable holds a list of all blibbs.
     </Description>
    </ManSection>
  
    <ManSection>
     <Fam Name="BlibbsFamily" Comm="family of blibbs"/>
     <Description>
      Family of all blibbs.
     </Description>
    </ManSection>
  
    <ManSection>
     <InfoClass Name="InfoBlibbs" Comm="InfoClass for the library of blibbs"/>
     <Description>
      This info class is used throughout the library of blibbs.
     </Description>
    </ManSection>
      
   </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Various Types of Text (Source)}}\label{Five}
\logpage{[ "B", 5, 0 ]}
\hyperdef{L}{X82A731CA83FB9ADD}{}
{
 [\ref{FiveBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Chapter><Heading>Other Markup</Heading>
  
  <Section><Heading>Various types of text</Heading>
  
  In this section we present examples for all the various types of text
  that are possible in &GAPDoc;: 
  <List>
   <Item>
    <Emph>This</Emph> is <E>emphasized</E>.</Item>
   <Item>
    <E>Keywords</E> are typeset like <Keyword>this</Keyword> and <K>that</K>.
    </Item>
   <Item>
    <E>Arguments</E> of functions have an element. They look like this: 
      <Arg>x</Arg> and <A>y</A>.</Item>
   <Item> 
    <E>Code</E> can be written with the Code element: 
      <Code>if x = y then Print("Equal"); fi;</Code> or
      <C>while true do Print("Hello"); od;</C>.</Item> 
   <Item>
    <E>Filenames</E> have their own element:
      <File>/usr/local/ca/gap4r2</File> or <F>pkg/xgap/doc</F>.</Item>
   <Item>
    <E>Buttons</E>, <E>menus</E>, <E>menu entries</E>, and such things
      are also supported: <B>OK</B> or <Button>Cancel</Button>.</Item>
   <Item>
    <E>Packages</E> are typeset like this: 
      <Package>Small Groups Library</Package>
   </Item>
   <Item>
    <E>Quoted</E> text: <Q>This is a text in quotes.</Q>
   </Item>
  </List>
  
  <E>Paragraphs</E> are separated by the empty <C>Par</C> or <C>P</C> element.
  <Par/><E>Alternatives</E> for different output formats:
  
  <Alt Only="LaTeX">This is &LaTeX; output.</Alt>
  <Alt Not="LaTeX">This is other than &LaTeX; output, namely:
  <Alt Only="HTML"><![CDATA[<b>HTML</b>]]></Alt>
  <Alt Only="Text">Text</Alt> output.</Alt>
  
  <P/>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Verbatim-like text (Source)}}\label{Six}
\logpage{[ "B", 6, 0 ]}
\hyperdef{L}{X824BD70087820CF0}{}
{
 [\ref{SixBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  There are also three elements to typeset <Q>verbatim-like</Q> text.
  <P/>
  The first is a <E>Listing</E>:
  
  <Listing Type="GAP code">
  <![CDATA[Sieve := function(n)
    # Returns the primes less than n
    local l,p,i;
    l := [1..n]; Unbind(l[1]);
    p := 2;
    while p^2 <= n do
        if IsBound(l[p]) then
            i := 2 * p;
            while i <= n do Unbind(l[i]); i := i + p; od;
        fi;
        p := p + 1;
    od;
    return Compacted(l);
  end;]]>
  </Listing>
  
  Here is a <E>Log</E> of a &GAP; session using this function:
  
  <Log>
  gap&gt; Sieve(100);
  [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,
    67, 71, 73, 79, 83, 89, 97 ]
  gap&gt; Length(last);
  25
  </Log>
  
  Here is a &GAP; <E>Example</E> session that is automatically tested:
  
  <Example>
  gap&gt; s := Size(CharacterTable("M"));
  808017424794512875886459904961710757005754368000000000
  gap&gt; s &lt; 10^53;                     
  false
  gap&gt; s &lt; 10^54;
  true
  </Example>
  
  </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Formulae (Source)}}\label{Seven}
\logpage{[ "B", 7, 0 ]}
\hyperdef{L}{X8516FAA07A95BBB5}{}
{
 [\ref{SevenBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section><Heading>Formulae</Heading>
  
  There are three types of formulae. <P/>
  The first is the <E>normal math mode</E> of &LaTeX;: 
  
  <Math>b_i \cdot b_j = \sum_{k=1}^d h_{ijk} b_k</Math>. 
  
  Then there are <E>displayed formulae</E>:
  <Display>
     \Longrightarrow \quad \left(\sum_{i=1}^d x_i b_i \right) \cdot
     \left(\sum_{j=1}^d y_j b_j \right) =
     \sum_{k=1}^d \left( \sum_{i,j} x_i y_j h_{ijk} \right) b_k 
  </Display>
  
  If possible,  use the <C>Alt</C> element  to specify a better  readable text
  version of such a formula as in the following example:<P/>
  
  <Alt Not="Text,HTML"><Display>
     \Longrightarrow \quad \left(\sum_{i=1}^d x_i b_i \right) \cdot
     \left(\sum_{j=1}^d y_j b_j \right) =
     \sum_{k=1}^d \left( \sum_{i,j} x_i y_j h_{ijk} \right) b_k 
  </Display></Alt>
  <Alt Only="Text,HTML"><Verb>
           d                d                 d   
         -----            -----             -----  -----                 
          \                \                 \      \                    
   ==> (   )  x_i b_i )(    )  y_i b_i ) =    )  (   )  x_i y_j h_ijk ) b_k
          /                /                 /      /                    
         -----            -----             -----  -----                
         i = 1            i = 1             k = 1   i,j                
  </Verb><P/></Alt>
  
  For small formulae without <Q>difficult</Q> parts use the <C>M</C>
  element: <M>b_i</M>,
  <M>x^2</M>, <M>x^2 + 2x + 1 = (x + 1)^2</M>. Note that here whitespace 
  matters for text (or HTML) output).<P/>
  
  Here are two formulae containing less than characters which are special
  characters for XML:
  <M><![CDATA[a < b < c < d]]></M> and  <M>e &lt; f</M>.
  </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Crossreferencing (Source)}}\label{Eight}
\logpage{[ "B", 8, 0 ]}
\hyperdef{L}{X7D19CF4782309661}{}
{
 [\ref{EightBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section Label="Cross"><Heading>Crossreferencing</Heading>
  
  <Label Name="there"/>
  
  In this section we demonstrate various references to parts of this
  document. Here is a reference to this section: <Ref Sect="Cross"/>.
  Here is a reference to chapter <Ref Chap="First"/>, to appendix
  <Ref Appendix="Appendix"/>, and to subsection <Ref Subsect="Asub"/>. 
  <P/>
  
  We distinguish among others references 
   to functions (see <Ref Func="f"/>), 
   to methods with tricky name (see 
                   <Ref Meth="\^\{\}\[\]\&lt;\&amp;" Label="for nothing"/>),
   to operations (see <Ref Oper="MyOperation"/>), 
   to methods (see <Ref Meth="MyOperation" Label="First"/> or 
                   <Ref Meth="MyOperation" Label="for bla"/>), 
   to filters (see <Ref Filt="IsBla"/>), 
   to properties (see <Ref Prop="IsBlubb"/>),
   to attributes (see <Ref Attr="NumberBlobbs"/>), 
   to variables (<Ref Var="AllBlibbs"/>), 
   to families (see <Ref Fam="BlibbsFamily"/>),
   and to info classes (see <Ref InfoClass="InfoBlibbs"/>).
  <P/>
  
  There are also references to labels: see <Ref Text="here" Label="there"/>,
  to other books: see <Ref Sect="syntaxXML" BookName="gapdoc"/> or
  <Ref Oper="IsSubgroup" BookName="ref"/> in the &GAP; reference
  manual.
  <P/>
  
  References to sections come in two styles: 
  <Ref Chap="First" Style="Number"/>
  or <Ref Chap="First" Style="Text"/>.
  <P/>
  
  Another type of cross referencing is bibliography. Here is a 
  citation: <Cite Key="CR1" Where="(5.22)"/> is an interesting lemma.
  <P/>
  
  There are also URLs:<P/>
  
  <URL>http://www.math.rwth-aachen.de/LDfM/</URL><P/>
  
  Email addresses have a special element:
  <Email>Frank.Luebeck@Math.RWTH-Aachen.De</Email>
  <P/>
  
  and Homepages another one:
  <Homepage>http://www-groups.mcs.st-and.ac.uk/~neunhoef/</Homepage>
  <P/>
  
  One can generate index entries as follows (look up the words 
  <Q>&TeX;-UserGroup</Q>, <Q>RWTH</Q>, and <Q>Aachen, Hauptbahnhof</Q>).
  <Index Key="TeX-Usergroup">&TeX;-UserGroup</Index>
  <Index Key="Aachen" Subkey="Hauptbahnhof">Aachen</Index>
  <Index>RWTH</Index>
  
  </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Lists and Tables (Source)}}\label{Nine}
\logpage{[ "B", 9, 0 ]}
\hyperdef{L}{X7BB822947F626E1A}{}
{
 [\ref{NineBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section><Heading>Lists and Tables</Heading>
  
  There are
  <List>
   <Item>lists</Item>
   <Item>enumerations, and</Item>
   <Item>tables</Item>
  </List>
  or:
  <Enum>
   <Item>lists</Item>
   <Item>enumerations, and</Item>
   <Item>tables</Item>
  </Enum>
  or with marks:
  <List>
   <Mark>lists:</Mark><Item> not numbered</Item>
   <Mark>enumerations:</Mark><Item> numbered</Item>
   <Mark>tables:</Mark><Item> two-dimensional</Item>
  </List>
  
  Here is a <E>table</E>:
  
  <Table Align="|r|c|l|">
   <Caption>Prices</Caption>
   <HorLine/>
    <Row>
     <Item>Object</Item><Item>Price</Item><Item>available</Item>
    </Row>
   <HorLine/>
   <HorLine/>
    <Row>
     <Item>Shoe</Item><Item>$1,00</Item><Item>there</Item>
    </Row>
   <HorLine/>
    <Row>
     <Item>Hat</Item><Item>$2,00</Item><Item>not there</Item>
    </Row>
   <HorLine/>
  </Table>
  
  </Section>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Entities and Special Characters (Source)}}\label{Ten}
\logpage{[ "B", 10, 0 ]}
\hyperdef{L}{X80B478CD7E584F6F}{}
{
  [\ref{TenBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=]
  <Section><Heading>Entities and Special Characters</Heading>
  <Label Name="TenBack"/>
  
  [&see; <Ref Sect="Ten"/>]<P/>
  
  Here is a table of special characters, the first two are special for
  XML and must be typed in by entities in &GAPDoc; documents. The other 
  characters are special for &LaTeX; but in &GAPDoc; they can be typed
  directly. 
  
  <Table Align="|c|c|c|c|c|c|c|c|c|c|c|c|c|" Label="charsInCDATA"> 
   <Caption>Special characters in character data</Caption>
   <HorLine/> <Row> 
    <Item><C>&amp;</C></Item>
    <Item><C>&lt;</C></Item>
    <Item><C>></C></Item>
    <Item><C>#</C></Item>
    <Item><C>$</C></Item>
    <Item><C>%</C></Item>
    <Item><C>~</C></Item>
    <Item><C>\</C></Item>   
    <Item><C>{</C></Item>
    <Item><C>}</C></Item>
    <Item><C>_</C></Item>
    <Item><C>^</C></Item>
    <Item><C>&nbsp;</C></Item>
   </Row> <HorLine/>
  </Table>
  
  And here are the predefined entities in &GAPDoc;:
  
  <Table Align="|l|l|">
  <Caption>Predefined Entities in the &GAPDoc; system</Caption>
  <HorLine/>
  <Row> <Item><C>&amp;GAP;</C></Item>       <Item>&GAP;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;GAPDoc;</C></Item>    <Item>&GAPDoc;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;TeX;</C></Item>       <Item>&TeX;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;LaTeX;</C></Item>     <Item>&LaTeX;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;BibTeX;</C></Item>    <Item>&BibTeX;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;MeatAxe;</C></Item>   <Item>&MeatAxe;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;XGAP;</C></Item>      <Item>&XGAP;</Item> </Row>
  <HorLine/>
  <Row> <Item><C>&amp;copyright;</C></Item> <Item>&copyright;</Item> </Row>
  <HorLine/>
  </Table>
  
  And some more for mathematical symbols: 
  &CC;, &ZZ;, &NN;, &PP;, &QQ;, &HH;, &RR;.
  
  </Section>
  
  </Chapter>
  
  </Body>
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Appendix (Source)}}\label{Eleven}
\logpage{[ "B", 11, 0 ]}
\hyperdef{L}{X85E7E6BA81367928}{}
{
 [\ref{ElevenBack}] 
\begin{Verbatim}[fontsize=\small,frame=single,label=GAPDoc source]
  <Appendix><Heading>An Appendix</Heading>
  
  This is an appendix.
  </Appendix>
\end{Verbatim}
 }

 }

\def\bibname{References\logpage{[ "Bib", 0, 0 ]}
\hyperdef{L}{X7A6F98FD85F02BFE}{}
}

\bibliographystyle{alpha}
\bibliography{examplebib.xml}

\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}
\hyperdef{L}{X83A0356F839C696F}{}
}


\printindex

\newpage
\immediate\write\pagenrlog{["End"], \arabic{page}];}
\immediate\closeout\pagenrlog
\end{document}
