Abstand zwischen \hline\hline in longtable mithilfe des Pakets colortbl

Abstand zwischen \hline\hline in longtable mithilfe des Pakets colortbl

Wenn ich ein \usepackage{colortbl}Leerzeichen verwende, \hline\hlineverschwindet \longtablees. Ich habe keine Lösung gefunden, wie ich das Leerzeichen wiederherstellen kann, also hoffe ich, dass Sie mir dabei helfen.

\begin{longtable}{|l|l|l|l|c|r|r|r|}
        \caption{{ABD}}
        \label{tab:SO}\\
\hline
        \multicolumn{1}{|l|}{{SO} - 01} & \multicolumn{7}{ c| }{AD}\\
    \hline\hline
        \multicolumn{4}{|l|}{Popis} & MJ & AD & AD & CD\\
    \hline
        \multicolumn{4}{|l|}{AD }& $3$ & 37000 & 0,32& 11\,800   \\
    \hline
\end{longtable} 

Antwort1

Bildbeschreibung hier eingeben

colortbllädt eine Menge Code, um \begin{document}nach Longtable zu suchen und die Kompatibilität sicherzustellen. Wenn Sie das unterbinden, funktioniert alles besser. Ich gebe den Paketautoren der colortblund longtablePakete die Schuld, weil sie nicht kommunizieren.

\documentclass{article}
\usepackage{color}
\makeatletter
\let\xx@begindocumenthook\@begindocumenthook
\let\xxhline\hline
\let\xx@xhline\@xhline
\usepackage{colortbl}
\let\hline\xxhline
\let\@xhline\xx@xhline
\let\@begindocumenthook\xx@begindocumenthook
\makeatother
\usepackage{longtable}
\begin{document}\color{black}
\begin{longtable}{|l|l|l|l|c|r|r|r|}
        \caption{{ABD}}
        \label{tab:SO}\\
\hline
        \multicolumn{1}{|l|}{{SO} - 01} & \multicolumn{7}{ c| }{AD}\\
    \hline\hline
        \multicolumn{4}{|l|}{Popis} & M J & AD & AD & CD\\
    \hline
        \multicolumn{4}{|l|}{AD }& $3$ & 37000 & 0,32& 11\,800   \\
    \hline
\end{longtable} 
\end{document}

Antwort2

Das colortblPaket definiert das \LT@@hlineMakro direkt nach dem neu und vergleicht das Makro \begin{document}zuerst mit dem Makro . Aber das Makro (innerhalb einer „Longtable“-Umgebung) wird wie folgt erweitert:\ifx\hline\LT@next\hline

\noalign{\ifnum 0=‘}\fi\penalty\@M\futurelet\@let@token\LT@@hline

\hlineAlso ist es richtig, das Makro und zu vergleichen \@let@token.

\let\LT@next\@let@tokenEine Problemumgehung besteht darin , der Definition von \LT@@hlinenach dem voranzustellen \begin{document}.

\documentclass{article}
\usepackage{colortbl,longtable}
\begin{document}
    \makeatletter
    \let\LT@@hline@bkp\LT@@hline
    \def\LT@@hline{\let\LT@next\@let@token\LT@@hline@bkp}
    \makeatother
    
    \begin{longtable}{|l|l|l|l|c|r|r|r|}
        \caption{{ABD}}
        \label{tab:SO}\\
        \hline
        \multicolumn{1}{|l|}{{SO} - 01} & \multicolumn{7}{ c| }{AD}\\
        \hline\hline
        \multicolumn{4}{|l|}{Popis} & M J & AD & AD & CD\\
        \hline
        \multicolumn{4}{|l|}{AD }& $3$ & 37000 & 0,32& 11\,800   \\
        \hline
    \end{longtable}
\end{document}

verwandte Informationen