1 \NeedsTeXFormat{LaTeX2e}
2 \ProvidesPackage{doxygen}
4 % Packages used by this style file
6 %%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
9 %%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
10 \RequirePackage{verbatim}
11 \RequirePackage[table]{xcolor}
12 \RequirePackage{longtable_doxygen}
13 \RequirePackage{tabu_doxygen}
14 \RequirePackage{fancyvrb}
15 \RequirePackage{tabularx}
16 \RequirePackage{multicol}
17 \RequirePackage{multirow}
18 \RequirePackage{hanging}
19 \RequirePackage{ifpdf}
20 \RequirePackage{adjustbox}
21 \RequirePackage{amssymb}
22 \RequirePackage{stackengine}
23 \RequirePackage{enumitem}
24 \RequirePackage{alphalph}
25 \RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
26 \RequirePackage{enumitem}
28 %---------- Internal commands used in this style file ----------------
30 \newcommand{\ensurespace}[1]{%
32 \setlength{\dimen@}{#1}%
33 \vskip\z@\@plus\dimen@%
34 \penalty -100\vskip\z@\@plus -\dimen@%
38 \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
42 \newcommand{\DoxyHorRuler}[1]{%
43 \setlength{\parskip}{0ex plus 0ex minus 0ex}%
52 \newcommand{\DoxyLabelFont}{}
53 \newcommand{\entrylabel}[1]{%
55 \parbox[b]{\labelwidth-4pt}{%
56 \makebox[0pt][l]{\DoxyLabelFont#1}%
57 \vspace{1.5\baselineskip}%
62 \newenvironment{DoxyDesc}[1]{%
63 \ensurespace{4\baselineskip}%
65 \settowidth{\labelwidth}{20pt}%
66 %\setlength{\parsep}{0pt}%
67 \setlength{\itemsep}{0pt}%
68 \setlength{\leftmargin}{\labelwidth+\labelsep}%
69 \renewcommand{\makelabel}{\entrylabel}%
77 \newlength{\xreflength}
78 \newcommand{\xreflabel}[1]{%
80 \setlength{\xreflength}{\wd\xrefbox}%
81 \ifthenelse{\xreflength>\labelwidth}{%
82 \begin{minipage}{\textwidth}%
83 \setlength{\parindent}{0pt}%
84 \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
87 \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
91 %---------- Commands used by doxygen LaTeX output generator ----------
93 % Used by <pre> ... </pre>
94 \newenvironment{DoxyPre}{%
101 % Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
102 \newlength{\CodeWidthChar}
103 \newlength{\CodeHeightChar}
104 \settowidth{\CodeWidthChar}{?}
105 \settoheight{\CodeHeightChar}{?}
106 % Necessary for hanging indent
107 \newlength{\DoxyCodeWidth}
109 \newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
111 \newcommand\NiceSpace{%
112 \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
115 % Used by @code ... @endcode
116 \newenvironment{DoxyCode}[1]{%
119 \normalfont\ttfamily%
120 \rightskip0pt plus 1fil%
121 \settowidth{\DoxyCodeWidth}{000000}%
122 \settowidth{\CodeWidthChar}{?}%
123 \settoheight{\CodeHeightChar}{?}%
124 \setlength{\parskip}{0ex plus 0ex minus 0ex}%
125 \ifthenelse{\equal{#1}{0}}
127 {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
130 {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
136 \settowidth{\CodeWidthChar}{?}%
137 \settoheight{\CodeHeightChar}{?}%
140 % Redefining not defined characters, i.e. "Replacement Character" in tex output.
141 \def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
142 \textcolor{white}{\sffamily\bfseries\small ?}}{%
143 \rotatebox{45}{$\blacksquare$}}}}
145 % Used by @example, @include, @includelineno and @dontinclude
146 \newenvironment{DoxyCodeInclude}[1]{%
152 % Used by @verbatim ... @endverbatim
153 \newenvironment{DoxyVerb}{%
162 % Used by @verbinclude
163 \newenvironment{DoxyVerbInclude}{%
169 % Used by numbered lists (using '-#' or <ol> ... </ol>)
171 \newlist{DoxyEnumerate}{enumerate}{12}
172 \setlist[DoxyEnumerate,1]{label=\arabic*.}
173 \setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
174 \setlist[DoxyEnumerate,3]{label=\roman*.}
175 \setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
176 \setlist[DoxyEnumerate,5]{label=\arabic*.}
177 \setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
178 \setlist[DoxyEnumerate,7]{label=\roman*.}
179 \setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
180 \setlist[DoxyEnumerate,9]{label=\arabic*.}
181 \setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
182 \setlist[DoxyEnumerate,11]{label=\roman*.}
183 \setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
185 % Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
187 \newlist{DoxyItemize}{itemize}{12}
188 \setlist[DoxyItemize]{label=\textperiodcentered}
190 \setlist[DoxyItemize,1]{label=\textbullet}
191 \setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
192 \setlist[DoxyItemize,3]{label=\textasteriskcentered}
193 \setlist[DoxyItemize,4]{label=\textperiodcentered}
195 % Used by description lists (using <dl> ... </dl>)
196 \newenvironment{DoxyDescription}{%
202 % Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
203 % (only if caption is specified)
204 \newenvironment{DoxyImage}{%
211 % Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
212 % (only if no caption is specified)
213 \newenvironment{DoxyImageNoCaption}{%
220 % (only if inline is specified)
221 \newenvironment{DoxyInlineImage}{%
226 \newenvironment{DoxyAttention}[1]{%
227 \begin{DoxyDesc}{#1}%
232 % Used by @author and @authors
233 \newenvironment{DoxyAuthor}[1]{%
234 \begin{DoxyDesc}{#1}%
240 \newenvironment{DoxyDate}[1]{%
241 \begin{DoxyDesc}{#1}%
247 \newenvironment{DoxyInvariant}[1]{%
248 \begin{DoxyDesc}{#1}%
254 \newenvironment{DoxyNote}[1]{%
255 \begin{DoxyDesc}{#1}%
261 \newenvironment{DoxyPostcond}[1]{%
262 \begin{DoxyDesc}{#1}%
268 \newenvironment{DoxyPrecond}[1]{%
269 \begin{DoxyDesc}{#1}%
275 \newenvironment{DoxyCopyright}[1]{%
276 \begin{DoxyDesc}{#1}%
282 \newenvironment{DoxyRemark}[1]{%
283 \begin{DoxyDesc}{#1}%
288 % Used by @return and @returns
289 \newenvironment{DoxyReturn}[1]{%
290 \begin{DoxyDesc}{#1}%
296 \newenvironment{DoxySince}[1]{%
297 \begin{DoxyDesc}{#1}%
303 \newenvironment{DoxySeeAlso}[1]{%
304 \begin{DoxyDesc}{#1}%
310 \newenvironment{DoxyVersion}[1]{%
311 \begin{DoxyDesc}{#1}%
317 \newenvironment{DoxyWarning}[1]{%
318 \begin{DoxyDesc}{#1}%
323 % Used by @par and @paragraph
324 \newenvironment{DoxyParagraph}[1]{%
325 \begin{DoxyDesc}{#1}%
330 % Used by parameter lists
331 \newenvironment{DoxyParams}[2][]{%
334 \ifthenelse{\equal{#1}{}}%
335 {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
336 {\ifthenelse{\equal{#1}{1}}%
337 {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
338 {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
340 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
343 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
351 % Used for fields of simple structs
352 \newenvironment{DoxyFields}[1]{%
355 \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
356 \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
359 \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
367 % Used for fields simple class style enums
368 \newenvironment{DoxyEnumFields}[1]{%
371 \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
372 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
375 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
383 % Used for parameters within a detailed function description
384 \newenvironment{DoxyParamCaption}{%
385 \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
389 % Used by return value lists
390 \newenvironment{DoxyRetVals}[1]{%
393 \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
394 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
397 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
405 % Used by exception lists
406 \newenvironment{DoxyExceptions}[1]{%
409 \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
410 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
413 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
421 % Used by template parameter lists
422 \newenvironment{DoxyTemplParams}[1]{%
425 \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
426 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
429 \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
437 % Used for member lists
438 \newenvironment{DoxyCompactItemize}{%
440 \setlength{\itemsep}{-3pt}%
441 \setlength{\parsep}{0pt}%
442 \setlength{\topsep}{0pt}%
443 \setlength{\partopsep}{0pt}%
448 % Used for member descriptions
449 \newenvironment{DoxyCompactList}{%
451 \setlength{\leftmargin}{0.5cm}%
452 \setlength{\itemsep}{0pt}%
453 \setlength{\parsep}{0pt}%
454 \setlength{\topsep}{0pt}%
455 \renewcommand{\makelabel}{\hfill}%
461 % Used for reference lists (@bug, @deprecated, @todo, etc.)
462 \newenvironment{DoxyRefList}{%
464 \setlength{\labelwidth}{10pt}%
465 \setlength{\leftmargin}{\labelwidth}%
466 \addtolength{\leftmargin}{\labelsep}%
467 \renewcommand{\makelabel}{\xreflabel}%
473 % Used by @bug, @deprecated, @todo, etc.
474 \newenvironment{DoxyRefDesc}[1]{%
476 \renewcommand\makelabel[1]{\textbf{##1}}%
477 \settowidth\labelwidth{\makelabel{#1}}%
478 \setlength\leftmargin{\labelwidth+\labelsep}%
484 % Used by parameter lists and simple sections
485 \newenvironment{Desc}
487 \settowidth{\labelwidth}{20pt}%
488 \setlength{\parsep}{0pt}%
489 \setlength{\itemsep}{0pt}%
490 \setlength{\leftmargin}{\labelwidth+\labelsep}%
491 \renewcommand{\makelabel}{\entrylabel}%
498 \newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
499 \newenvironment{TabularC}[1]%
501 \begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
502 {\end{longtabu*}\par}%
504 \newenvironment{TabularNC}[1]%
505 {\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
508 % Used for member group headers
509 \newenvironment{Indent}{%
511 \setlength{\leftmargin}{0.5cm}%
513 \item[]\ignorespaces%
519 % Used when hyperlinks are turned off
520 \newcommand{\doxyref}[3]{%
521 \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
524 % Used to link to a table when hyperlinks are turned on
525 \newcommand{\doxytablelink}[2]{%
529 % Used to link to a table when hyperlinks are turned off
530 \newcommand{\doxytableref}[3]{%
535 \newcommand{\lcurly}{\{}
536 \newcommand{\rcurly}{\}}
538 % Colors used for syntax highlighting
539 \definecolor{comment}{rgb}{0.5,0.0,0.0}
540 \definecolor{keyword}{rgb}{0.0,0.5,0.0}
541 \definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
542 \definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
543 \definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
544 \definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
545 \definecolor{charliteral}{rgb}{0.0,0.5,0.5}
546 \definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
547 \definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
548 \definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
549 \definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
551 % Color used for table heading
552 \newcommand{\tableheadbgcolor}{lightgray}%
554 % Version of hypertarget with correct landing location
555 \newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
557 % possibility to have sections etc. be within the margins
558 % unfortunately had to copy part of book.cls and add \raggedright
560 \newcommand\doxysection{\@startsection {section}{1}{\z@}%
561 {-3.5ex \@plus -1ex \@minus -.2ex}%
563 {\raggedright\normalfont\Large\bfseries}}
564 \newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
565 {-3.25ex\@plus -1ex \@minus -.2ex}%
567 {\raggedright\normalfont\large\bfseries}}
568 \newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
569 {-3.25ex\@plus -1ex \@minus -.2ex}%
571 {\raggedright\normalfont\normalsize\bfseries}}
572 \newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
573 {3.25ex \@plus1ex \@minus.2ex}%
575 {\raggedright\normalfont\normalsize\bfseries}}
576 \newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
577 {3.25ex \@plus1ex \@minus .2ex}%
579 {\raggedright\normalfont\normalsize\bfseries}}
581 % Define caption that is also suitable in a table
583 \def\doxyfigcaption{%
584 \H@refstepcounter{figure}%
585 \@dblarg{\@caption{figure}}}
588 % Define alpha enumarative names for counters > 26
590 \def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
591 \def\@enumalphalphcnt#1{\alphalph{#1}}
592 \def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
593 \def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
595 \AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
596 \AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}