From: wolf Date: Thu, 15 Apr 1999 17:05:59 +0000 (+0000) Subject: Add initial support for latex-output using doc++. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d62e84c4214fae18711d3fcc9820698dc97d747;p=dealii-svn.git Add initial support for latex-output using doc++. git-svn-id: https://svn.dealii.org/trunk@1151 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/auto/Makefile b/deal.II/doc/auto/Makefile index d6c9e96870..738a00b351 100644 --- a/deal.II/doc/auto/Makefile +++ b/deal.II/doc/auto/Makefile @@ -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 index 0000000000..204417691d --- /dev/null +++ b/deal.II/doc/auto/latex/docxx.sty @@ -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 ... to do verbatim listing +% +\catcode`\=\active +\catcode`\=\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{\let\par=\endgraf \ccverbatim \parskip=0pt \ccfinish} +{\catcode`\=0 catcode`\=12 +gdefccfinish#1{#1endgroup}} + +% +% 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{\ccverbatim \ccfinish}#1% + }}% + \setbox2\hbox{{% + \catcode`\&=4% + \catcode`\_=8% + \def{\ccverbatim \ccfinish}\textbf{#2} #3% + }}% + \setbox4\hbox{\parbox[t]{\cxxMemoWidth}{{% + \raggedright\sloppy% + \catcode`\&=4% + \catcode`\_=8% + \def{\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{\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{\ccverbatim \ccfinish}#1% + \strut\\ + \def{\ccverbatim \ccfinish}#2% + \strut\\ + \def{\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{\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`\=0 catcode`\=12 +gdefcxxCodeFinish#1{hbox{#1}endgroup}} + diff --git a/deal.II/doc/auto/latex/footer.tex b/deal.II/doc/auto/latex/footer.tex new file mode 100644 index 0000000000..0c436713c8 --- /dev/null +++ b/deal.II/doc/auto/latex/footer.tex @@ -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 index 0000000000..9dddb17af8 --- /dev/null +++ b/deal.II/doc/auto/latex/header.tex @@ -0,0 +1,5 @@ +\documentclass{book} +\usepackage{a4wide} +\usepackage{docxx} +\begin{document} +