072104b88ba6f007a1ff862b7229989c170d05ac
[platform/upstream/doxygen.git] / src / doxygen.sty
1 \NeedsTeXFormat{LaTeX2e}
2 \ProvidesPackage{doxygen}
3
4 % Packages used by this style file
5 \RequirePackage{alltt}
6 \RequirePackage{array}
7 \RequirePackage{calc}
8 \RequirePackage{float}
9 \RequirePackage{ifthen}
10 \RequirePackage{verbatim}
11 \RequirePackage[table]{xcolor}
12 \RequirePackage{xtab}
13
14 %---------- Internal commands used in this style file ----------------
15
16 \newcommand{\ensurespace}[1]{%
17   \begingroup%
18     \setlength{\dimen@}{#1}%
19     \vskip\z@\@plus\dimen@%
20     \penalty -100\vskip\z@\@plus -\dimen@%
21     \vskip\dimen@%
22     \penalty 9999%
23     \vskip -\dimen@%
24     \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
25   \endgroup%
26 }
27
28 \newcommand{\DoxyLabelFont}{}
29 \newcommand{\entrylabel}[1]{%
30   {%
31     \parbox[b]{\labelwidth-4pt}{%
32       \makebox[0pt][l]{\DoxyLabelFont#1}%
33       \vspace{1.5\baselineskip}%
34     }%
35   }%
36 }
37
38 \newenvironment{DoxyDesc}[1]{%
39   \ensurespace{4\baselineskip}%
40   \begin{list}{}{%
41     \settowidth{\labelwidth}{20pt}%
42     \setlength{\parsep}{0pt}%
43     \setlength{\itemsep}{0pt}%
44     \setlength{\leftmargin}{\labelwidth+\labelsep}%
45     \renewcommand{\makelabel}{\entrylabel}%
46   }%
47   \item[#1]%
48 }{%
49   \end{list}%
50 }
51
52 \newsavebox{\xrefbox}
53 \newlength{\xreflength}
54 \newcommand{\xreflabel}[1]{%
55   \sbox{\xrefbox}{#1}%
56   \setlength{\xreflength}{\wd\xrefbox}%
57   \ifthenelse{\xreflength>\labelwidth}{%
58     \begin{minipage}{\textwidth}%
59       \setlength{\parindent}{0pt}%
60       \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
61     \end{minipage}%
62   }{%
63    \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
64   }%
65 }
66
67 %---------- Commands used by doxygen LaTeX output generator ----------
68
69 % Used by <pre> ... </pre>
70 \newenvironment{DoxyPre}{%
71   \small%
72   \begin{alltt}%
73 }{%
74   \end{alltt}%
75   \normalsize%
76 }
77
78 % Used by @code ... @endcode
79 \newenvironment{DoxyCode}{%
80   \par%
81   \scriptsize%
82   \begin{alltt}%
83 }{%
84   \end{alltt}%
85   \normalsize%
86 }
87
88 % Used by @example, @include, @includelineno and @dontinclude
89 \newenvironment{DoxyCodeInclude}{%
90   \DoxyCode%
91 }{%
92   \endDoxyCode%
93 }
94
95 % Used by @verbatim ... @endverbatim
96 \newenvironment{DoxyVerb}{%
97   \footnotesize%
98   \verbatim%
99 }{%
100   \endverbatim%
101   \normalsize%
102 }
103
104 % Used by @verbinclude
105 \newenvironment{DoxyVerbInclude}{%
106   \DoxyVerb%
107 }{%
108   \endDoxyVerb%
109 }
110
111 % Used by numbered lists (using '-#' or <ol> ... </ol>)
112 \newenvironment{DoxyEnumerate}{%
113   \enumerate%
114 }{%
115   \endenumerate%
116 }
117
118 % Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
119 \newenvironment{DoxyItemize}{%
120   \itemize%
121 }{%
122   \enditemize%
123 }
124
125 % Used by description lists (using <dl> ... </dl>)
126 \newenvironment{DoxyDescription}{%
127   \description%
128 }{%
129   \enddescription%
130 }
131
132 % Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
133 % (only if caption is specified)
134 \newenvironment{DoxyImage}{%
135   \begin{figure}[H]%
136     \begin{center}%
137 }{%
138     \end{center}%
139   \end{figure}%
140 }
141
142 % Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
143 % (only if no caption is specified)
144 \newenvironment{DoxyImageNoCaption}{%
145 }{%
146 }
147
148 % Used by @attention
149 \newenvironment{DoxyAttention}[1]{%
150   \begin{DoxyDesc}{#1}%
151 }{%
152   \end{DoxyDesc}%
153 }
154
155 % Used by @author and @authors
156 \newenvironment{DoxyAuthor}[1]{%
157   \begin{DoxyDesc}{#1}%
158 }{%
159   \end{DoxyDesc}%
160 }
161
162 % Used by @date
163 \newenvironment{DoxyDate}[1]{%
164   \begin{DoxyDesc}{#1}%
165 }{%
166   \end{DoxyDesc}%
167 }
168
169 % Used by @invariant
170 \newenvironment{DoxyInvariant}[1]{%
171   \begin{DoxyDesc}{#1}%
172 }{%
173   \end{DoxyDesc}%
174 }
175
176 % Used by @note
177 \newenvironment{DoxyNote}[1]{%
178   \begin{DoxyDesc}{#1}%
179 }{%
180   \end{DoxyDesc}%
181 }
182
183 % Used by @post
184 \newenvironment{DoxyPostcond}[1]{%
185   \begin{DoxyDesc}{#1}%
186 }{%
187   \end{DoxyDesc}%
188 }
189
190 % Used by @pre
191 \newenvironment{DoxyPrecond}[1]{%
192   \begin{DoxyDesc}{#1}%
193 }{%
194   \end{DoxyDesc}%
195 }
196
197 % Used by @copyright
198 \newenvironment{DoxyCopyright}[1]{%
199   \begin{DoxyDesc}{#1}%
200 }{%
201   \end{DoxyDesc}%
202 }
203
204 % Used by @remark
205 \newenvironment{DoxyRemark}[1]{%
206   \begin{DoxyDesc}{#1}%
207 }{%
208   \end{DoxyDesc}%
209 }
210
211 % Used by @return and @returns
212 \newenvironment{DoxyReturn}[1]{%
213   \begin{DoxyDesc}{#1}%
214 }{%
215   \end{DoxyDesc}%
216 }
217
218 % Used by @since
219 \newenvironment{DoxySince}[1]{%
220   \begin{DoxyDesc}{#1}%
221 }{%
222   \end{DoxyDesc}%
223 }
224
225 % Used by @see
226 \newenvironment{DoxySeeAlso}[1]{%
227   \begin{DoxyDesc}{#1}%
228 }{%
229   \end{DoxyDesc}%
230 }
231
232 % Used by @version
233 \newenvironment{DoxyVersion}[1]{%
234   \begin{DoxyDesc}{#1}%
235 }{%
236   \end{DoxyDesc}%
237 }
238
239 % Used by @warning
240 \newenvironment{DoxyWarning}[1]{%
241   \begin{DoxyDesc}{#1}%
242 }{%
243   \end{DoxyDesc}%
244 }
245
246 % Used by @internal
247 \newenvironment{DoxyInternal}[1]{%
248   \paragraph*{#1}%
249 }{%
250 }
251
252 % Used by @par and @paragraph
253 \newenvironment{DoxyParagraph}[1]{%
254   \begin{list}{}{%
255     \settowidth{\labelwidth}{40pt}%
256     \setlength{\leftmargin}{\labelwidth}%
257     \setlength{\parsep}{0pt}%
258     \setlength{\itemsep}{-4pt}%
259     \renewcommand{\makelabel}{\entrylabel}%
260   }%
261   \item[#1]%
262 }{%
263   \end{list}%
264 }
265
266 % Used by parameter lists
267 \newenvironment{DoxyParams}[2][]{%
268     \par%
269     \tabletail{\hline}%
270     \tablelasttail{\hline}%
271     \tablefirsthead{}%
272     \tablehead{}%
273     \ifthenelse{\equal{#1}{}}%
274     {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
275      \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
276                         p{0.805\textwidth}|}}%
277     {\ifthenelse{\equal{#1}{1}}%
278       {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
279        \begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
280                          >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
281                          p{0.678\textwidth}|}}%
282       {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
283        \begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
284                          >{\centering\hspace{0pt}}p{0.15\textwidth}|%
285                          >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
286                          p{0.501\textwidth}|}}%
287     }\hline%
288 }{%
289     \end{xtabular}%
290     \tablefirsthead{}%
291     \vspace{6pt}%
292 }
293
294 % Used for fields of simple structs
295 \newenvironment{DoxyFields}[1]{%
296     \par%
297     \tabletail{\hline}%
298     \tablelasttail{\hline}%
299     \tablehead{}%
300     \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
301     \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
302                          p{0.15\textwidth}|%
303                          p{0.63\textwidth}|}%
304     \hline%
305 }{%
306     \end{xtabular}%
307     \tablefirsthead{}%
308     \vspace{6pt}%
309 }
310
311 % Used for parameters within a detailed function description
312 \newenvironment{DoxyParamCaption}{%
313   \renewcommand{\item}[2][]{##1 {\em ##2}}%
314 }{%
315 }
316
317 % Used by return value lists
318 \newenvironment{DoxyRetVals}[1]{%
319     \par%
320     \tabletail{\hline}%
321     \tablelasttail{\hline}%
322     \tablehead{}%
323     \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
324     \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
325                           p{0.705\textwidth}|}%
326     \hline%
327 }{%
328     \end{xtabular}%
329     \tablefirsthead{}%
330     \vspace{6pt}%
331 }
332
333 % Used by exception lists
334 \newenvironment{DoxyExceptions}[1]{%
335     \par%
336     \tabletail{\hline}%
337     \tablelasttail{\hline}%
338     \tablehead{}%
339     \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
340     \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
341                           p{0.705\textwidth}|}%
342     \hline%
343 }{%
344     \end{xtabular}%
345     \tablefirsthead{}%
346     \vspace{6pt}%
347 }
348
349 % Used by template parameter lists
350 \newenvironment{DoxyTemplParams}[1]{%
351     \par%
352     \tabletail{\hline}%
353     \tablelasttail{\hline}%
354     \tablehead{}%
355     \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
356     \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
357                           p{0.705\textwidth}|}%
358     \hline%
359 }{%
360     \end{xtabular}%
361     \tablefirsthead{}%
362     \vspace{6pt}%
363 }
364
365 % Used for member lists
366 \newenvironment{DoxyCompactItemize}{%
367   \begin{itemize}%
368     \setlength{\itemsep}{-3pt}%
369     \setlength{\parsep}{0pt}%
370     \setlength{\topsep}{0pt}%
371     \setlength{\partopsep}{0pt}%
372 }{%
373   \end{itemize}%
374 }
375
376 % Used for member descriptions
377 \newenvironment{DoxyCompactList}{%
378   \begin{list}{}{%
379     \setlength{\leftmargin}{0.5cm}%
380     \setlength{\itemsep}{0pt}%
381     \setlength{\parsep}{0pt}%
382     \setlength{\topsep}{0pt}%
383     \renewcommand{\makelabel}{\hfill}%
384   }%
385 }{%
386   \end{list}%
387 }
388
389 % Used for reference lists (@bug, @deprecated, @todo, etc.)
390 \newenvironment{DoxyRefList}{%
391   \begin{list}{}{%
392     \setlength{\labelwidth}{10pt}%
393     \setlength{\leftmargin}{\labelwidth}%
394     \addtolength{\leftmargin}{\labelsep}%
395     \renewcommand{\makelabel}{\xreflabel}%
396   }%
397 }{%
398   \end{list}%
399 }
400
401 % Used by @bug, @deprecated, @todo, etc.
402 \newenvironment{DoxyRefDesc}[1]{%
403   \begin{list}{}{%
404     \renewcommand\makelabel[1]{\textbf{##1}}%
405     \settowidth\labelwidth{\makelabel{#1}}%
406     \setlength\leftmargin{\labelwidth+\labelsep}%
407   }%
408 }{%
409   \end{list}%
410 }
411
412 % Used by parameter lists and simple sections
413 \newenvironment{Desc}
414 {\begin{list}{}{%
415     \settowidth{\labelwidth}{40pt}%
416     \setlength{\leftmargin}{\labelwidth}%
417     \setlength{\parsep}{0pt}%
418     \setlength{\itemsep}{-4pt}%
419     \renewcommand{\makelabel}{\entrylabel}%
420   }
421 }{%
422   \end{list}%
423 }
424
425 % Used by tables
426 \newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
427 \newlength{\tmplength}%
428 \newenvironment{TabularC}[1]%
429 {%
430 \setlength{\tmplength}%
431      {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}%
432       \par\begin{xtabular*}{\linewidth}%
433              {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}%
434 }%
435 {\end{xtabular*}\par}%
436
437 % Used for member group headers
438 \newenvironment{Indent}{%
439   \begin{list}{}{%
440     \setlength{\leftmargin}{0.5cm}%
441   }%
442   \item[]\ignorespaces%
443 }{%
444   \unskip%
445   \end{list}%
446 }
447
448 % Used when hyperlinks are turned off
449 \newcommand{\doxyref}[3]{%
450   \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
451 }
452
453 % Used by @addindex
454 \newcommand{\lcurly}{\{}
455 \newcommand{\rcurly}{\}}
456
457 % Used for syntax highlighting
458 \definecolor{comment}{rgb}{0.5,0.0,0.0}
459 \definecolor{keyword}{rgb}{0.0,0.5,0.0}
460 \definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
461 \definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
462 \definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
463 \definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
464 \definecolor{charliteral}{rgb}{0.0,0.5,0.5}
465 \definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
466 \definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
467 \definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
468 \definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}