Doxygen supports two ways to put tables in the documentation.

The easiest is to use the Markdown format as shown in \mbox{\hyperlink{markdown_markdown_extra}{Markdown Extensions}} section \mbox{\hyperlink{markdown_md_tables}{Tables}}.

Although this format is easy to use and read, it is also rather limited. It supports only a simple grid of cells, while each cell is a single line of plain text.

For more complex tables the H\+T\+ML syntax can be used. Doxygen will process such tables and translate them to the various output formats (at least for the formats that do support tables such as H\+T\+ML and $\mbox{\LaTeX}$).

Here is an example of a complex table\+:

\begin{DoxyVerb}<table>
<caption id="multi_row">Complex table</caption>
<tr><th>Column 1                      <th>Column 2        <th>Column 3
<tr><td rowspan="2">cell row=1+2,col=1<td>cell row=1,col=2<td>cell row=1,col=3
<tr><td rowspan="2">cell row=2+3,col=2                    <td>cell row=2,col=3
<tr><td>cell row=3,col=1                                  <td rowspan="2">cell row=3+4,col=3
<tr><td colspan="2">cell row=4,col=1+2
<tr><td>cell row=5,col=1              <td colspan="2">cell row=5,col=2+3
<tr><td colspan="2" rowspan="2">cell row=6+7,col=1+2      <td>cell row=6,col=3
<tr>                                                      <td>cell row=7,col=3
<tr><td>cell row=8,col=1              <td>cell row=8,col=2\n
  <table>
    <tr><td>Inner cell row=1,col=1<td>Inner cell row=1,col=2
    <tr><td>Inner cell row=2,col=1<td>Inner cell row=2,col=2
  </table>
  <td>cell row=8,col=3
  <ul>
    <li>Item 1
    <li>Item 2
  </ul>
</table>
\end{DoxyVerb}


It has a caption, table heading, various row and column spans, a nested table as one of the cells, and a item list in another cell.

Note that the end tags (like {\ttfamily $<$/td$>$}) are left out in the example above. This is allowed, and in the H\+T\+ML output doxygen will add the end tags again.

The output will look as follows\+:

\hypertarget{tables_multi_row}{}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{3}{|c}|}
\caption{Complex table}\label{tables_multi_row}\\
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Column 1 }&\cellcolor{\tableheadbgcolor}\textbf{ Column 2 }&\cellcolor{\tableheadbgcolor}\textbf{ Column 3 }\\\cline{1-3}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Column 1 }&\cellcolor{\tableheadbgcolor}\textbf{ Column 2 }&\cellcolor{\tableheadbgcolor}\textbf{ Column 3 }\\\cline{1-3}
\endhead
\multirow{2}{*}{cell row=1+2,col=1}&cell row=1,col=2&cell row=1,col=3 \\\cline{2-3}
&\multirow{2}{*}{cell row=2+3,col=2 }&cell row=2,col=3 \\\cline{1-1}\cline{3-3}
cell row=3,col=1 &&\multirow{2}{*}{cell row=3+4,col=3 }\\\cline{1-2}
\multicolumn{2}{|l|}{cell row=4,col=1+2 }&\multicolumn{1}{c|}{}\\\cline{1-3}
cell row=5,col=1 &\multicolumn{2}{l|}{cell row=5,col=2+3 }\\\cline{1-3}
\multicolumn{2}{|l|}{\multirow{2}{*}{cell row=6+7,col=1+2 }}&cell row=6,col=3 \\\cline{3-3}
\multicolumn{2}{|l|}{}&cell row=7,col=3 \\\cline{1-3}
cell row=8,col=1 &cell row=8,col=2~\newline
 {\begin{tabularx}{\linewidth}{|*{2}{>{\raggedright\arraybackslash}X|}}\hline
Inner cell row=1,col=1&Inner cell row=1,col=2 \\\cline{1-2}
Inner cell row=2,col=1&Inner cell row=2,col=2 \\\cline{1-2}
\end{tabularx}}
&cell row=8,col=3 
\begin{DoxyItemize}
\item Item 1 
\item Item 2 
\end{DoxyItemize}\\\cline{1-3}
\end{longtabu}


One can refer to the caption of the table using \mbox{\hyperlink{commands_cmdref}{\textbackslash{}ref}} using the caption\textquotesingle{}s id as the label.

 