]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add initial support for latex-output using doc++.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 15 Apr 1999 17:05:59 +0000 (17:05 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 15 Apr 1999 17:05:59 +0000 (17:05 +0000)
git-svn-id: https://svn.dealii.org/trunk@1151 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/auto/Makefile
deal.II/doc/auto/latex/docxx.sty [new file with mode: 0644]
deal.II/doc/auto/latex/footer.tex [new file with mode: 0644]
deal.II/doc/auto/latex/header.tex [new file with mode: 0644]

index d6c9e96870c83318456042d9e104b18cd3073448..738a00b351248e7588d7e902c8170f81eab9ab8b 100644 (file)
@@ -17,6 +17,10 @@ kdoc.dof  = $(wildcard ../../deal.II/include/grid/dof*.h) \
             $(wildcard ../../deal.II/include/fe/*.h)
 kdoc.num  = $(wildcard ../../deal.II/include/numerics/*.h)
 
+# for latex-output, we join the different libraries of the
+# deal.II library into just one file
+kdoc.deal_II = $(kdoc.basic) $(kdoc.grid) $(kdoc.dof) $(kdoc.num)
+
 # user projects. the projects should be independant of each other, so
 # we need not take care of cross-dependencies each time 
 kdoc.transport     = $(wildcard ../../projects/transport/trans_dg/*.h)
@@ -42,6 +46,11 @@ kdoc.library-files.rerun = $(kdoc.library-files:%.kdoc=%.kdoc.rerun)
 
 
 KDOCFLAGS   = -I../scripts/kdoc ../scripts/kdoc/kdoc -a -p
+ifeq ($(shell uname),SunOS)
+DOCPP = /home/people/kanschat/bin/doc++
+else
+DOCPP = doc++
+endif
 
 
 # by default: make docu libraries and generate an index of all names
@@ -91,8 +100,54 @@ kdoc/names.html: $(kdoc.libray-files)
        @cd kdoc ; perl ../scripts/index.pl *.kdoc > names.html
 
 
+# generate the input file for doc++
+%.doc++: Makefile
+       @echo $(kdoc.$(subst .doc++,,$(subst latex/,,$@)))  | \
+        perl -pi -e 's# #\n#g;  s#\.\./\.\./#//\@Include: ../../../#g;' > \
+        $@
+
+
+# generate one of the latex-output files; this needs the respective
+# include file for DOC++
+#
+# delete the .doc++ files immediately again, since they are no more 
+# used and since this forces make to re-make the .tex-file each time
+# we ask for it; the right way to do so would be to use dependencies,
+# but it is hard to compute them from the '%'-sign used in the rule
+%.tex: %.doc++
+       $(DOCPP) -p -t -u -o $@ -ep a4wide $<
+       rm $^
+
+
+# generate temporary files from the doc++-latex-output which have
+# headers and footers stripped and label names replaced by something
+# file dependent
+%.tex1: %.tex
+       cat $<                           | \
+        perl scripts/process-tex        | \
+        perl -pi -e 's/cxx\./$(basename $(notdir $@)).cxx./g;' > $@
+
+latex/abc.tex: latex/base.tex1 latex/lac.tex1 latex/deal_II.tex1
+       @cat latex/header.tex                              > $@
+       @echo "\\\\chapter{Base library}"                 >> $@
+       @cat latex/base.tex1                              >> $@
+       @echo "\\\\chapter{Linear algebra library}"       >> $@
+       @cat latex/lac.tex1                               >> $@
+       @echo "\\\\chapter{deal.II library}"              >> $@
+       @cat latex/deal_II.tex1                           >> $@
+       @cat latex/footer.tex                             >> $@
+       rm $^
+
+
+
+# generate the latex-processed files from these
+%.dvi: %.tex
+       cd latex ; latex $(notdir $<)
+       cd latex ; latex $(notdir $<)
+       -rm $(subst .tex,.toc,$<)
+
 clean:
-       -rm -f kdoc/names.html kdoc/*.kdoc kdoc/*/*.html cvs-backlog/*.html
+       -rm -f kdoc/names.html kdoc/*.kdoc kdoc/*/*.html cvs-backlog/*.html latex/*
 
 
 .PHONY: default all kdoc $(kdoc.library-files) $(kdoc.library-files.rerun) clean
\ No newline at end of file
diff --git a/deal.II/doc/auto/latex/docxx.sty b/deal.II/doc/auto/latex/docxx.sty
new file mode 100644 (file)
index 0000000..2044176
--- /dev/null
@@ -0,0 +1,1011 @@
+%
+% Switch off special characters except {}\ for the rest of the text.
+%
+\def\cxxtilde{{\tt\~\relax}}
+\addtolength{\parskip}{6pt}
+
+\catcode`\,=\active%
+\def,{\char`\,\penalty-8\ }
+%\def,{++ }
+\catcode`\,=12
+
+\def\<{{\tt <}}
+\def\>{{\tt >}}
+\def\TEX{}
+\def\cxxExceptionsStr{}
+\def\cxxParameterStr{}
+\def\cxxReturnStr{}
+\def\cxxSeeStr{}
+\def\cxxAuthorStr{}
+\def\cxxVersionStr{}
+\def\cxxFileStr{}
+\def\cxxExceptions#1{\def\cxxExceptionsStr{#1}}
+\def\cxxParameter#1{\def\cxxParameterStr{#1}}
+\def\cxxReturn#1{\def\cxxReturnStr{#1}}
+\def\cxxSee#1{\def\cxxSeeStr{#1}}
+\def\cxxAuthor#1{\def\cxxAuthorStr{#1}}
+\def\cxxVersion#1{\def\cxxVersionStr{#1}}
+\def\cxxFile#1{\def\cxxFileStr{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Define \ 3...\ 3 to do verbatim listing
+%
+\catcode`\\ 4=\active
+\catcode`\\ 3=\active
+{\obeyspaces\gdef {\ }}
+
+\def\ccverbatim{\strut\begingroup
+           \catcode`\\=12 \catcode`\{=12
+           \catcode`\}=12 \catcode`\$=12
+           \catcode`\&=12 \catcode`\#=12
+           \catcode`\%=12 \catcode`\~=12
+           \catcode`\_=12 \catcode`\^=12
+           \catcode`\|=12 \catcode`\/=12
+           \obeyspaces\tt}
+\def\ 3{\let\par=\endgraf \ccverbatim \parskip=0pt \ccfinish}
+{\catcode`\\ 4=0 \ 4catcode`\ 4\=12
+\ 4gdef\ 4ccfinish#1\ 3{#1\ 4endgroup}}
+
+%
+% Definition of structuring comands.
+%
+\newcommand{\Section}[1]{\section{#1}}
+\newcommand{\SubSection}[1]{\subsection{#1}}
+\newcommand{\SubSubSection}[1]{\subsubsection{#1}}
+\newcommand{\Paragraph}[1]{\paragraph{#1}}
+
+\newcommand{\Ref}[1]{{\bf #1} ($\rightarrow$ \ref{#1})}
+\newcommand{\URL}[2][]{%
+   \def\name{#1}%
+   \def\empty{}%
+   \ifx\name\empty%
+       {\tt #2}%
+   \else%
+       #1 ({\tt #2})%
+   \fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% printing line #1 of code #2
+%
+\newdimen\cxxcodewidth
+\cxxcodewidth=\textwidth
+\advance\cxxcodewidth by -21pt
+
+\def\cxxCodeLine#1#2{%
+{\hbox to 20pt{\tiny\hss#1}\parbox[t]{\cxxcodewidth}{\small#2}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for listing manual entries
+%
+\newdimen\cxxIdWidth
+\newdimen\cxxTypeWidth
+\newdimen\cxxProtoWidth
+\newdimen\cxxMemoWidth
+\newdimen\cxxPageWidth
+
+\cxxIdWidth=0.1\textwidth
+\cxxTypeWidth=0.15\textwidth
+\cxxProtoWidth=0.25\textwidth
+\cxxMemoWidth=0.43\textwidth
+
+\cxxPageWidth=\textwidth
+\advance\cxxPageWidth by-\cxxIdWidth
+\advance\cxxPageWidth by-\cxxTypeWidth
+\advance\cxxPageWidth by-\cxxProtoWidth
+\advance\cxxPageWidth by-\cxxMemoWidth
+
+\newdimen\cxxProtoMemoWidth
+\cxxProtoMemoWidth=\cxxProtoWidth
+\advance\cxxProtoMemoWidth by\cxxMemoWidth
+
+\def\cxxStrut{\vrule width0pt height0pt depth9pt}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 1: type
+% 2: name
+% 3: args
+% 4: memo
+% 5: id
+\def\cxxitem#1#2#3#4#5{\noindent{%
+    \setbox5\hbox{#5 }%
+    \ifdim\wd5>\cxxIdWidth%
+       \setbox5\hbox{\hbox to \cxxIdWidth{\hss#5}}%
+    \else
+       \setbox5\hbox{\hbox to \cxxIdWidth{#5\hss}}%
+    \fi%
+    \setbox1\hbox{{%
+       \catcode`\&=4%
+       \catcode`\_=8%
+       \def\ 3{\ccverbatim \ccfinish}#1%
+    }}%
+    \setbox2\hbox{{%
+       \catcode`\&=4%
+       \catcode`\_=8%
+       \def\ 3{\ccverbatim \ccfinish}\textbf{#2} #3%
+    }}%
+    \setbox4\hbox{\parbox[t]{\cxxMemoWidth}{{%
+       \raggedright\sloppy%
+       \catcode`\&=4%
+       \catcode`\_=8%
+       \def\ 3{\ccverbatim \ccfinish}{\em #4}
+       \cxxStrut%
+       \def\page{#5}%
+       \ifx\page\empty%
+           \hss%
+       \else%
+           \ \dotfill%
+           \hbox to 0pt{\hbox to \cxxPageWidth{\hss%
+               \pageref{cxx.#5}%
+           }\hss}%
+       \fi%
+    }}}%
+    %
+    \ifdim\wd1>\cxxTypeWidth%
+       \hbox to \hsize{\unhbox5\hbox to \cxxTypeWidth{\unhbox1\hss}\hss}\\\nopagebreak%
+       \setbox5\hbox{\hskip\cxxIdWidth}%
+       \setbox1\hbox{\hskip\cxxTypeWidth}%
+    \else%
+       \setbox1\hbox{\hbox to \cxxTypeWidth{\unhbox1\hss}}%
+    \fi%
+    \ifdim\wd2>\cxxProtoWidth%
+       \ifdim\wd2<\cxxProtoMemoWidth%
+           \def\tmp{#4}%
+           \ifx\tmp\empty%
+               \def\tmp{#5}%
+               \ifx\tmp\empty%
+                   \hbox to \hsize{\unhbox5\unhbox1\unhbox2\hss\cxxStrut}\\%
+               \else%
+                   \hbox to \hsize{\unhbox5\unhbox1\unhbox2
+                       \dotfill\hbox to \cxxPageWidth{\hss\pageref{cxx.#5}}%
+                       \cxxStrut}\\%
+               \fi%
+           \else%
+               \hbox to \hsize{\unhbox5\unhbox1\unhbox2\hss}\\\nopagebreak%
+               \hbox to \hsize{%
+                   \hskip\cxxIdWidth%
+                   \hskip\cxxTypeWidth%
+                   \hskip\cxxProtoWidth%
+                   \unhbox4\hss%
+               }\\%
+           \fi%
+       \else%
+           \hbox to \hsize{%
+               \unhbox5%
+               \unhbox1%
+               \parbox[t]{\cxxProtoMemoWidth}{%
+                   \setbox255\hbox{\textbf{#2} (}%
+                   \hangindent=\wd255\hangafter=1%
+                   \raggedright\sloppy%
+                   {\catcode`\&=4\catcode`\_=8%
+                       \def\ 3{\ccverbatim \ccfinish}\textbf{#2} #3\strut}%
+               }\hss%
+           }\\\nopagebreak%
+           \hbox to \hsize{%
+               \hskip\cxxIdWidth%
+               \hskip\cxxTypeWidth%
+               \hskip\cxxProtoWidth%
+               \unhbox4\hss%
+           }\\%
+       \fi%
+    \else%
+       \hbox to \hsize{%
+           \unhbox5%
+           \unhbox1%
+           \hbox to \cxxProtoWidth{\unhbox2\hss}%
+           \unhbox4\hss%
+       }\\%
+    \fi%
+}}
+
+
+\newdimen\cxxtypestart
+\cxxtypestart=0.05\textwidth
+%\advance\cxxtypestart by \labelsep
+
+\newdimen\cxxnamestart
+\cxxnamestart=\cxxtypestart
+\advance\cxxnamestart by 0.25\textwidth
+
+\newdimen\cxxargsstart
+\cxxargsstart=\cxxnamestart
+\advance\cxxargsstart by 0.2\textwidth
+\newdimen\cxxargswidth
+\cxxargswidth=\textwidth
+\advance\cxxargswidth by -\cxxargsstart
+\advance\cxxargswidth by -\spaceskip
+
+\newdimen\cxxmemostart
+\cxxmemostart=\cxxargsstart
+\advance\cxxmemostart by 0.12\textwidth
+
+\newenvironment{cxxlist}[1]{
+\begingroup
+\catcode`\,=\active%
+\paragraph{#1}\strut\smallskip\\
+}{
+\endgroup
+}
+
+\newenvironment{cxxnames}{\begin{cxxlist}{Names}}{\end{cxxlist}}
+\newenvironment{cxxpublic}{\begin{cxxlist}{Public Members}}{\end{cxxlist}}
+\newenvironment{cxxprivate}{\begin{cxxlist}{Private Members}}{\end{cxxlist}}
+\newenvironment{cxxprotected}{\begin{cxxlist}{Protected Members}}{\end{cxxlist}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%      Numbered Frame box
+%
+\newlength{\cxxBoxLen}%
+\newlength{\cxxBoxHt}%
+\newlength{\cxxBoxDp}%
+\newlength{\cxxSideHt}%
+\newlength{\cxxSideLen}%
+\newlength{\cxxTitleLen}%
+\def\empty{}
+\def\idPos{1cm}
+
+%
+% box with id and name [optional width]
+%
+\newcommand{\aBox}[3][1pt]{{%
+\small%
+\def\width{#1}%
+\def\num{#2}%
+\def\name{#3}%
+\setbox0\hbox{\hskip\width{ \strut\name\strut} \hskip\width}%
+%
+\setlength{\cxxBoxLen}{\wd0}%
+\addtolength{\cxxBoxLen}{\width}%
+\addtolength{\cxxBoxLen}{\width}%
+\setbox2\hbox{\normalsize\strut\rule{\cxxBoxLen}{\width}}%
+%
+\ifx\num\empty%
+    \setbox1\hbox{\strut}%
+\else%
+    \setbox1\hbox{\rule{\idPos}{\width} { \sf\bf\strut #2 } }%
+\fi%
+\addtolength{\cxxBoxLen}{-\wd1}%
+\setbox1\hbox{\unhbox1\rule{\cxxBoxLen}{\width}}%
+%
+\setlength{\cxxSideHt}{\dp0}%
+\addtolength{\cxxSideHt}{\width}%
+\setlength{\cxxSideLen}{\dp0}%
+\addtolength{\cxxSideLen}{\ht0}%
+\addtolength{\cxxSideLen}{\dp1}%
+\addtolength{\cxxSideLen}{\width}%
+\addtolength{\cxxSideLen}{\width}%
+\setbox3\hbox{\hbox to 0pt{\hss\rule[-\cxxSideHt]{\width}{\cxxSideLen}}}%
+\setbox4\hbox{\hbox to 0pt{\rule[-\cxxSideHt]{\width}{\cxxSideLen}\hss}}%
+%
+\setlength{\cxxBoxHt}{\dp1}%
+\addtolength{\cxxBoxHt}{1pt}%
+\setlength{\cxxBoxDp}{\ht2}%
+\addtolength{\cxxBoxDp}{-\width}%
+\addtolength{\cxxBoxDp}{1pt}%
+%
+\setlength{\cxxBoxLen}{\ht3}%
+\addtolength{\cxxBoxLen}{\ht1}%
+%
+\vbox to \cxxBoxLen{%
+\hbox{\unhbox1}%
+\vskip-\cxxBoxHt%
+\hbox{\hskip\width\unhbox3\unhbox0\unhbox4}%
+%\vskip-\ht2%
+\vskip-\cxxBoxDp%
+\hbox{\unhbox2}%
+\vss%
+}%
+}}
+
+%
+% box with id and name [optional width] of size #4
+%
+\newcommand{\sizeBox}[4][3pt]{{%
+    \setbox0\hbox{ }%
+    \setlength{\cxxSideLen}{#4}%
+    \addtolength{\cxxSideLen}{-\wd0}%
+    \addtolength{\cxxSideLen}{-\wd0}%
+    \addtolength{\cxxSideLen}{-#1}%
+    \addtolength{\cxxSideLen}{-#1}%
+    \addtolength{\cxxSideLen}{-#1}%
+    \addtolength{\cxxSideLen}{-#1}%
+    \aBox[#1]{#2}{\hbox to \cxxSideLen{#3}}%
+}}
+
+%
+% centered box with id and name [optional width] of size #4
+%
+\newcommand{\cBox}[4][3pt]{{%
+\setbox0\hbox{\aBox[#1]{#2}{#3}}%
+\ifdim\wd0<#4%
+    \sizeBox[#1]{#2}{\hss#3\hss}{#4}%
+\else%
+    \setlength{\cxxSideLen}{\wd0}%
+    \advance\cxxSideLen by -#4%
+    \hskip -0.5\cxxSideLen%
+    \unhbox0%
+\fi%
+}}
+
+%
+% right expanding box with id and name [optional width] of size at least #4
+%
+\newcommand{\rBox}[4][3pt]{{%
+\setbox0\hbox{\aBox[#1]{#2}{#3}\hss}%
+\ifdim\wd0>#4%
+    \unhbox0%
+\else%
+    \sizeBox[#1]{#2}{\hss#3\hss}{#4}%
+\fi%
+}}
+
+%
+% left expanding box with id and name [optional width] of size at least #4
+%
+\newcommand{\lBox}[4][3pt]{{%
+\setbox0\hbox{\aBox[#1]{#2}{#3}\hss}%
+\ifdim\wd0>#4%
+    \setlength{\cxxSideLen}{\wd0}%
+    \advance\cxxSideLen by -#4%
+    \hskip -\cxxSideLen%
+    \unhbox0%
+\else%
+    \sizeBox[#1]{#2}{\hss#3\hss}{#4}%
+\fi%
+}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%      Pagestyle for documentation.
+%
+\newsavebox{\cxxHeadName}
+\newcommand{\ps@docxx}{%
+    \renewcommand{\@oddhead}{\headlinetext}%
+    \renewcommand{\@evenhead}{\headlinetext}%
+    \renewcommand{\@oddfoot}{\footlinetext}%
+    \renewcommand{\@evenfoot}{\footlinetext}%
+}
+\newcommand{\makeHeadLine}[2]{
+    \global\sbox{\cxxHeadName}{\vbox to 0pt{\vss%
+       \hbox to \textwidth{%
+           \hbox to 0pt{\strut\hbox to 1cm{\hss}\quad#1\hss}%
+           \hfil#2\hfil%
+       }%
+       \vskip 1pt%
+       \hbox to \textwidth{\hrulefill}%
+    }}%
+}
+\newcommand{\headlinetext}{\usebox{\cxxHeadName}}
+\providecommand{\cxxCopyright}{%
+    \vtop{%
+       \hbox to \textwidth{{
+           \tiny\sf This page has been automatically generated with DOC++
+       \hss}}%
+       \vskip -20pt
+       \hbox to \textwidth{
+           \hbox{{\tiny\sf DOC++ is \copyright 1995 by }}
+           \vtop{{\hbox{ \tiny\sf Roland Wunderling \& Malte Z\"ockler}%
+           }}\hss
+       \hss}%
+    }%
+}
+\def\footlinetext{\hbox to \textwidth{
+    \vtop{%
+       \hbox to \textwidth{\hrulefill}%
+       \vskip -20pt%
+       \cxxCopyright%
+    }%
+    \hss\vtop{\vskip 10pt\hbox{\today\hspace*{3cm}\textrm{\thepage} }}
+}}
+\pagestyle{docxx}
+
+\def\cxxTitle#1#2#3#4#5{\noindent{%
+    \thispagestyle{empty}
+    \vfill
+    \begin{center}
+    \Huge\bf
+    \catcode`\&=4%
+    \catcode`\_=8%
+    \def\ 3{\ccverbatim \ccfinish}#1%
+    \strut\\
+    \def\ 3{\ccverbatim \ccfinish}#2%
+    \strut\\
+    \def\ 3{\ccverbatim \ccfinish}#3%
+    \strut\\
+    \end{center}
+    \if\cxxVersionStr\empty%
+    \else%
+       \begin{center}
+       \small\sf
+       --- Version \cxxVersionStr\ ---
+       \end{center}
+       \global\def\cxxVersionStr{}
+    \fi
+    \vfill
+    \large
+    \begin{center}
+    \Large\em
+    \def\ 3{\ccverbatim \ccfinish}#4%
+    \end{center}
+    \vfill
+    \if\cxxAuthorStr\empty%
+    \else%
+       \begin{center}
+       \sf\cxxAuthorStr
+       \end{center}
+       \global\def\cxxAuthorStr{}
+       \vfill
+    \fi
+    \pagebreak
+    \makeHeadLine{}{#2}
+}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%      environment for contents
+%
+\newcounter{cxxContentsDepth}
+\setcounter{cxxContentsDepth}{0}
+\newdimen\cxxContentsLengthIncr
+\cxxContentsLengthIncr=18pt
+\newdimen\cxxContentsLength
+\cxxContentsLength=\textwidth
+\advance\cxxContentsLength by -\cxxContentsLengthIncr
+
+\makeHeadLine{}{Contents}
+
+\newenvironment{cxxContents}{
+    \ifcase \value{cxxContentsDepth}
+       \vskip 40pt
+       \hbox to \hsize{\hskip 8pt\hskip\cxxContentsLengthIncr\Huge\bf Contents\hss}
+       \vskip 40pt
+       \bf
+    \else                                      % >1
+       \rm
+    \fi
+    \begingroup
+    \addtocounter{cxxContentsDepth}{1}
+    \advance\cxxContentsLengthIncr by  8pt
+    \advance\cxxContentsLength     by -\cxxContentsLengthIncr
+}{
+    \addtocounter{cxxContentsDepth}{-1}
+    \advance\cxxContentsLength     by  \cxxContentsLengthIncr
+    \advance\cxxContentsLengthIncr by  -8pt
+    \ifcase \value{cxxContentsDepth}
+       \vskip 12pt
+    \or        
+       \vskip 9pt
+    \else
+       \vskip 3pt
+    \fi
+    \endgroup
+}
+
+\newcommand{\cxxContentsEntry}[3]{{
+    \def\emtpty{}
+    \def\memo{#3}
+    \ifx\memo\empty
+       \setbox0\hbox{\parbox[t]{\cxxContentsLength}{\strut#2 \dotfill }}
+    \else
+       \setbox0\hbox{\parbox[t]{\cxxContentsLength}{\strut#2 --- {\em #3} \dotfill }}
+    \fi
+    \setbox1\hbox{\vtop{\vskip\dp0\vskip-\ht0\vskip-1.5pt\hbox to 20pt{\hss\rm \pageref{cxx.#1}}}}
+    \hbox to \textwidth{%
+       \hss\hbox to \cxxContentsLengthIncr{#1\hss}%
+       \unhbox0\unhbox1%
+    }
+}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%      environment for class graph
+%
+\newdimen\cxxClassGraphShift
+\newdimen\cxxClassGraphLength
+\newdimen\cxxClassGraphHeight
+\newdimen\cxxClassGraphDepth
+\newdimen\cxxClassGraphTotV
+\setlength{\cxxClassGraphLength}{0.23\hsize}
+\setlength{\cxxClassGraphShift}{30pt}
+\setbox0\vbox{\aBox[5pt]{\strut}{\strut}}
+\setlength{\cxxClassGraphHeight}{\ht0}
+\setlength{\cxxClassGraphDepth}{\dp0}
+\addtolength{\cxxClassGraphDepth}{10pt}
+\setlength{\cxxClassGraphTotV}{\dp0}
+\addtolength{\cxxClassGraphTotV}{\ht0}
+
+\newenvironment{cxxInheritance}{
+    \par\medskip
+    \begingroup
+    \newcommand{\cxxCGSpace}[1]{%
+       \vtop to \cxxClassGraphTotV{\hbox to \cxxClassGraphShift{%
+           \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth%
+       ##1}}%
+    }
+    \newcommand{\cxxSlashHline}{%
+       \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.1\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.1\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt%
+    }
+    \newcommand{\cxxDotHline}{%
+       \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt%
+       \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt%
+       \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt%
+    }
+    \newcommand{\cxxHline}{%
+       \vrule width 0.5\cxxClassGraphShift height 3.5pt depth -3pt%
+    }
+    \newcommand{\cxxVup}{\hbox to 0pt{\hss%
+       \vrule width 0.5pt height \cxxClassGraphHeight depth -3pt%
+    \hss}}
+    \newcommand{\cxxVlow}{\hbox to 0pt{\hss%
+       \vtop to 0pt{\vskip-3pt%
+           \hbox{\vrule width 0.5pt height 13pt depth \cxxClassGraphDepth}%
+       \vss}%
+    \hss}}
+    \newcommand{\cxxLinkUp}{\hbox to 0pt{\hss\hskip 0.5\cxxClassGraphShift%
+       \raise0.7\cxxClassGraphHeight\hbox to 0pt{\hss\textbf{\symbol{94}}\hss}}}%
+    \newcommand{\cxxLinkDown}{\hbox to 0pt{\hss\hskip 0.5\cxxClassGraphShift%
+       \raise-0.6\cxxClassGraphHeight\vbox to 0pt{%
+           \hbox to 0pt{\hss\textbf{$\lor$}\hss}\vss}}}%
+    \newcommand{\cxxLinkLeft}{\hbox to 0pt{\hss\hskip 0.0\cxxClassGraphShift%
+       \raise0.0\cxxClassGraphHeight\hbox to 0pt{\textbf{\tt\<}\hss}}}%
+    \newcommand{\cxxLinkRight}{\hbox to 0pt{\hss\hskip 1.0\cxxClassGraphShift%
+       \raise0.0\cxxClassGraphHeight\hbox to 0pt{\hss\textbf{\tt\>}}}}%
+    \newcommand{\cxxInheritanceEntry}[5][]{
+       \hbox to \hsize{\hss%
+           \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth%
+           ##2%
+           \def\tmp{##1}%
+           \ifx\tmp\empty%
+               \def\tmp{##5}%
+               \ifx\tmp\empty%
+                   \rBox[1pt]{##3}{##4}{0.24\hsize}%
+               \else%
+                   \lBox[1pt]{##3}{##4}{0.24\hsize}%
+               \fi%
+           \else%
+               \cBox[2pt]{##3}{##4}{0.24\hsize}%
+           \fi%
+           ##5\hfill%
+       }\vskip-1pt
+    }
+    \newcommand{\cxxNone}{\cxxCGSpace{\hss}}
+    \newcommand{\cxxLong}{\cxxCGSpace{\hss\cxxVup\cxxVlow\hss}}
+%
+    \newcommand{\cxxPubLeft}{\cxxCGSpace{\cxxHline\cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxProLeft}{\cxxCGSpace{\cxxSlashHline\cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxPriLeft}{\cxxCGSpace{\cxxDotHline\cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxPubleft}{\cxxCGSpace{\cxxHline\cxxVlow\hss}}
+    \newcommand{\cxxProleft}{\cxxCGSpace{\cxxSlashHline\cxxVlow\hss}}
+    \newcommand{\cxxPrileft}{\cxxCGSpace{\cxxDotHline\cxxVlow\hss}}
+    \newcommand{\cxxLastPubLeft}{\cxxCGSpace{\cxxHline%
+                       \cxxVup\cxxLinkDown\cxxVlow\hss}}
+    \newcommand{\cxxLastProLeft}{\cxxCGSpace{\cxxSlashHline%
+                       \cxxVup\cxxLinkDown\cxxVlow\hss}}
+    \newcommand{\cxxLastPriLeft}{\cxxCGSpace{\cxxDotHline%
+                       \cxxVup\cxxLinkDown\cxxVlow\hss}}
+    \newcommand{\cxxLastPubleft}{\cxxCGSpace{\cxxHline%
+                       \cxxVlow\cxxLinkDown\hss}}
+    \newcommand{\cxxLastProleft}{\cxxCGSpace{\cxxSlashHline%
+                       \cxxVlow\cxxLinkDown\hss}}
+    \newcommand{\cxxLastPrileft}{\cxxCGSpace{\cxxDotHline%
+                               \cxxVlow\cxxLinkDown\hss}}
+    \newcommand{\cxxLinkPubLeft}{\cxxCGSpace{\cxxLinkLeft\cxxHline\cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxLinkProLeft}{\cxxCGSpace{\cxxLinkLeft\cxxSlashHline%
+                               \cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxLinkPriLeft}{\cxxCGSpace{\cxxLinkLeft\cxxDotHline%
+                               \cxxVup\cxxVlow\hss}}
+    \newcommand{\cxxLinkPubleft}{\cxxCGSpace{\cxxLinkLeft\cxxHline\cxxVlow\hss}}
+    \newcommand{\cxxLinkProleft}{\cxxCGSpace{\cxxLinkLeft\cxxSlashHline\cxxVlow\hss}}
+    \newcommand{\cxxLinkPrileft}{\cxxCGSpace{\cxxLinkLeft\cxxDotHline\cxxVlow\hss}}
+%
+    \newcommand{\cxxPubRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxHline}}
+    \newcommand{\cxxProRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxSlashHline}}
+    \newcommand{\cxxPriRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxDotHline}}
+    \newcommand{\cxxPubright}{\cxxCGSpace{\hss\cxxVup\cxxHline}}
+    \newcommand{\cxxProright}{\cxxCGSpace{\hss\cxxVup\cxxSlashHline}}
+    \newcommand{\cxxPriright}{\cxxCGSpace{\hss\cxxVup\cxxDotHline}}
+
+    \newcommand{\cxxLinkPubRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxHline\cxxLinkRight}}
+    \newcommand{\cxxLinkProRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow%
+                                  \cxxSlashHline\cxxLinkRight}}
+    \newcommand{\cxxLinkPriRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow%
+                                  \cxxDotHline\cxxLinkRight}}
+    \newcommand{\cxxLinkPubright}{\cxxCGSpace{\hss\cxxVup\cxxHline\cxxLinkRight}}
+    \newcommand{\cxxLinkProright}{\cxxCGSpace{\hss\cxxVup\cxxSlashHline\cxxLinkRight}}
+    \newcommand{\cxxLinkPriright}{\cxxCGSpace{\hss\cxxVup\cxxDotHline\cxxLinkRight}}
+
+    \newcommand{\cxxFirstPubRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow\cxxHline}}
+    \newcommand{\cxxFirstProRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow%
+                                  \cxxSlashHline}}
+    \newcommand{\cxxFirstPriRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow\cxxDotHline}}
+    \newcommand{\cxxFirstPubright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxHline}}
+    \newcommand{\cxxFirstProright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxSlashHline}}
+    \newcommand{\cxxFirstPriright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxDotHline}}
+}{
+    \endgroup
+}
+
+\newenvironment{cxxClassGraph}{
+    \begin{cxxInheritance}
+    \newcommand{\cxxClassGraphEntry}[4]{
+       \hbox to \hsize{\hss%
+           \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth%
+           ##1%
+           \def\tmp{##4}%
+           \rBox[1pt]{##2}{##3}{0.24\hsize}%
+           ##4%
+           \hskip\cxxClassGraphShift\dotfill%
+           \hbox to \cxxClassGraphShift{\hss\pageref{cxx.##2}}%
+       }\vskip-1pt
+    }
+    \newcommand{\cxxClassGraphEntryUnknownPackage}[3]{
+       \hbox to \hsize{\hss%
+           \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth%
+           ##1%
+           \def\tmp{##3}%
+           \rBox[1pt]{}{##2}{0.24\hsize}%
+           ##3%
+           \hskip\cxxClassGraphShift\hfill%
+       }\vskip-1pt
+    }
+    \clearpage
+    \pagebreak\strut
+    \makeHeadLine{}{Class Graph}
+    \vskip 20pt
+    \hbox to \hsize{\Huge\bf \quad Class Graph\hss}
+    \vskip 40pt
+}
+{
+    \end{cxxInheritance}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for generic manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newdimen\cxxgenericstart
+\cxxgenericstart=\labelwidth
+\advance\cxxgenericstart by \labelsep
+\newdimen\cxxgenericwidth
+\cxxgenericwidth=\textwidth
+\advance\cxxgenericwidth by -\cxxgenericstart
+
+\newcounter{cxxDepth}
+\setcounter{cxxDepth}{0}
+
+\newlength{\cxxSize}
+\newenvironment{cxxgeneric}[5]{
+%
+%      some local definitions
+%
+    \def\empty{}
+    \def\type{#1}
+    \def\args{#3}
+    \def\memo{#4}
+    \def\id  {#5}
+%
+%      pagebreak ?
+%
+\ifcase \value{cxxDepth}
+       \clearpage                      %  0
+       \pagebreak
+       \makeHeadLine{#5}{#2}
+       \setlength{\cxxSize}{2pt}
+\or                                    %  1
+       \strut\bigskip\bigskip\goodbreak%
+       \setlength{\cxxSize}{1pt}
+\else                                  % >2
+       \strut\bigskip\bigskip\goodbreak%
+       \setlength{\cxxSize}{0.5pt}
+\fi
+\addtocounter{cxxDepth}{1}
+%
+%      write synopsis
+%
+\setbox0\hbox{ }%
+\setbox1\hbox{\strut\large #1 {\bf#2} }%
+\setbox3\hbox{\strut\large #1 {\bf#2} #3}%
+%
+% box with id and name [optional width] over entire page width
+%
+\setlength{\cxxSideLen}{\hsize}%
+\addtolength{\cxxSideLen}{-4\cxxSize}%
+\addtolength{\cxxSideLen}{-2\wd0}%
+\setlength{\cxxTitleLen}{\cxxSideLen}%
+\addtolength{\cxxTitleLen}{-8\wd0}%
+\hbox{\aBox[\cxxSize]{\id}{\vbox{\vskip 1.5\parskip%
+    \hbox to \cxxSideLen{\strut%
+       \hbox to 4\wd0{}%
+       \ifdim\wd3<\cxxTitleLen%
+           \parbox[b]{\cxxTitleLen}{%
+               \begin{raggedright}
+               \noindent\large #1 {\bf#2} #3
+               \end{raggedright}
+           }
+       \else%
+           \ifdim\wd1>0.7\cxxTitleLen%
+               \parbox[b]{\cxxTitleLen}{%
+                   \begin{raggedright}
+                   \noindent\large #1 {\bf#2} #3
+                   \end{raggedright}
+               }
+           \else%
+               \addtolength{\cxxTitleLen}{-\wd1}%
+               \unhbox1%
+               \parbox[t]{\cxxTitleLen}{%
+                   \advance\lineskip 7pt%
+                   \begin{raggedright}
+                   \noindent\large\strut #3
+                   \end{raggedright}
+               }
+           \fi%
+       \fi%
+       \hss\strut%
+    }\vskip\parskip}%
+}}
+% \parbox[b]{\cxxSideLen}{\begingroup
+%      \catcode`\&=12%
+%      \catcode`\_=12%
+%      \begin{flushleft}
+%          \quad\large%
+%          \ifx\type\empty
+%              \ifx\args\empty
+%                  \strut{\bf #2}\\
+%              \else
+%                  \strut{\bf #2}\ \args
+%              \fi
+%          \else
+%              \strut\type\ {\bf #2}\ \args
+%          \fi
+%      \end{flushleft}
+% \endgroup}}}%
+\ifx\memo\empty\else
+    \vskip 10pt
+    \begin{flushright}
+       \it\memo
+    \end{flushright}
+\fi
+\label{cxx.\id}
+\begingroup
+\def\cxxExceptionsStr{}
+\def\cxxParameterStr{}
+\def\cxxReturnStr{}
+\def\cxxSeeStr{}
+\def\cxxAuthorStr{}
+\def\cxxVersionStr{}
+\def\cxxFileStr{}
+\def\cxxExceptions##1{\def\cxxExceptionsStr{##1}}
+\def\cxxParameter##1{\def\cxxParameterStr{##1}}
+\def\cxxReturn##1{\def\cxxReturnStr{##1}}
+\def\cxxSee##1{\def\cxxSeeStr{##1}}
+\def\cxxAuthor##1{\def\cxxAuthorStr{##1}}
+\def\cxxVersion##1{\def\cxxVersionStr{##1}}
+\def\cxxFile##1{\def\cxxFileStr{##1}}
+}{
+\endgroup
+\addtocounter{cxxDepth}{-1}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for function manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxfunction}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}
+\renewenvironment{cxxnames}{\begin{cxxlist}{Arguments}}{\end{cxxlist}}
+}{
+\end{cxxgeneric}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxentry}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for union manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxunion}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}
+\renewenvironment{cxxnames}{\begin{cxxlist}{Members}}{\end{cxxlist}}
+}{
+\end{cxxgeneric}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for typedef manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxtypedef}[5]{
+\begin{cxxgeneric}{#1}{#2}{}{#4}{#5}
+\renewenvironment{cxxnames}{\begin{cxxlist}{Members}}{\end{cxxlist}}
+}{
+\end{cxxgeneric}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for macro manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxmacro}[5]{
+\begin{cxxgeneric}{\#define}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for class manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxclass}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for interface manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxinterface}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for variable manual entries
+% arguments are:
+%      #1      type
+%      #2      name
+%      #3      args
+%      #4      memo
+%      #5      number
+%
+\newenvironment{cxxvariable}[5]{
+\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}
+\renewenvironment{cxxnames}{\begin{cxxlist}{Names}}{\end{cxxlist}}
+}{
+\end{cxxgeneric}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for documentation
+%
+\newenvironment{cxxdocumentation}{
+%
+% switch on special characters for documentation section
+%
+\begingroup
+\catcode`\&=4
+\catcode`\_=8
+}{
+\endgroup
+}
+
+\newenvironment{cxxdoc}{
+%
+% switch on special characters for documentation section
+%
+\begin{cxxdocumentation}
+\strut\\\noindent%
+}{
+\smallskip
+\def\empty{}%
+\ifx\cxxReturnStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf Return Value:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxReturnStr}\\
+\fi
+\ifx\cxxParameterStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf Parameters:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxParameterStr}\\
+\fi
+\ifx\cxxExceptionsStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf Exceptions:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxExceptionsStr}\\
+\fi
+\ifx\cxxSeeStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf See Also:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxSeeStr}\\
+\fi
+\ifx\cxxAuthorStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf Author:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxAuthorStr}\\
+\fi
+\ifx\cxxVersionStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf Version:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxVersionStr}\\
+\fi
+\ifx\cxxFileStr\empty\else
+    \noindent\hbox to 0.3\textwidth{{\bf File:}\hss}%
+    \parbox[t]{0.7\textwidth}{\cxxFileStr}\\
+\fi
+\end{cxxdocumentation}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% environment for commented listing
+% arguments are:
+%      #1      Section title
+%
+\newenvironment{cxximplementation}[1]{
+\goodbreak
+\begin{cxxdocumentation}
+}{
+\end{cxxdocumentation}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\cxxCodeLine#1{
+\strut\hbox to 20pt{\tiny\hss #1}\small
+%\advance\leftmargin by 20pt
+%\advance\textwidth by -20pt
+\ccverbatim \parskip=0pt \cxxCodeFinish}
+{\catcode`\\ 4=0 \ 4catcode`\ 4\=12
+\ 4gdef\ 4cxxCodeFinish#1\ 3{\ 4hbox{#1}\ 4endgroup}}
+
diff --git a/deal.II/doc/auto/latex/footer.tex b/deal.II/doc/auto/latex/footer.tex
new file mode 100644 (file)
index 0000000..0c43671
--- /dev/null
@@ -0,0 +1,6 @@
+\end{document}
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/deal.II/doc/auto/latex/header.tex b/deal.II/doc/auto/latex/header.tex
new file mode 100644 (file)
index 0000000..9dddb17
--- /dev/null
@@ -0,0 +1,5 @@
+\documentclass{book}
+\usepackage{a4wide}
+\usepackage{docxx}
+\begin{document}
+

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.