Description: upstream: workaround: doc: doxygen: broken LaTeX tables
 This patch provides a workaround for a known broken Doxygen LaTeX tables issue
 reported (and solved) at <https://github.com/doxygen/doxygen/issues/11634>.
Origin: Debian
Forwarded: https://github.com/kimwalisch/primesieve/pull/170
Author: Jerome Benoit <calculus@rezozer.net>
Author: <https://github.com/wisd00-git>
Last-Update: 2025-08-17

--- /dev/null
+++ b/doc/override_tables.sty
@@ -0,0 +1,101 @@
+\NeedsTeXFormat{LaTeX2e}
+
+% Packages used by this style file
+\RequirePackage{doxygen}
+
+% Used by parameter lists
+\renewenvironment{DoxyParams}[2][]{%
+    \tabulinesep=1mm%
+    \par%
+    \ifthenelse{\equal{#1}{}}%
+      {\begin{longtable}[l]{|l|l|}}% name + description
+    {\ifthenelse{\equal{#1}{1}}%
+      {\begin{longtable}[l]{|l|l|l|}}% in/out + name + desc
+      {\begin{longtable}[l]{|l|l|l|l|}}% in/out + type + name + desc
+    }
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\renewenvironment{DoxyFields}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtable}[l]{|l|l|l|}%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
+
+% Used for fields simple class style enums
+\renewenvironment{DoxyEnumFields}[2][]{%
+    \tabulinesep=1mm%
+    \par%
+    \ifthenelse{\equal{#1}{2}}%
+      {\begin{longtable}[l]{|l|l|}}%
+      {\begin{longtable}[l]{|l|l|l|}}% with init value
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
+
+% Used by return value lists
+\renewenvironment{DoxyRetVals}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtable}[l]{|l|l|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
+
+% Used by exception lists
+\renewenvironment{DoxyExceptions}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtable}[l]{|l|l|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\renewenvironment{DoxyTemplParams}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtable}[l]{|l|l|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \endhead%
+    \hline%
+}{%
+    \end{longtable}%
+    \vspace{6pt}%
+}
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -32,3 +32,4 @@
 GENERATE_LATEX         = @HAVE_LATEX@
 FULL_PATH_NAMES        = NO
 HAVE_DOT               = @HAVE_DOT@
+LATEX_EXTRA_STYLESHEET = @PROJECT_SOURCE_DIR@/doc/override_tables.sty
