패키지 colortbl을 사용하는 longtable의 \hline\hline 사이의 공백

패키지 colortbl을 사용하는 longtable의 \hline\hline 사이의 공백

사라지는 사이 \usepackage{colortbl}에 공백을 사용할 때 . 공간을 다시 놓는 방법에 대한 해결책을 찾지 못했는데, 찾을 수 있도록 도와주시길 바랍니다.\hline\hline\longtable

\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} 

답변1

여기에 이미지 설명을 입력하세요

colortbllongtable을 확인하고 호환성을 보장할 때 많은 코드를 로드합니다 \begin{document}. 그 일을 중단하면 상황이 더 좋아질 것입니다. 나는 통신하지 못한 것에 대해 colortbl및 패키지 의 패키지 작성자를 비난합니다 longtable.

\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}

답변2

패키지 는 바로 뒤에 매크로를 colortbl재정의하고 첫 번째는 매크로를 매크로와 비교합니다 . 그러나 매크로 ('longtable' 환경 내부)는 다음과 같이 확장됩니다.\LT@@hline\begin{document}\ifx\hline\LT@next\hline

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

따라서 올바른 것은 매크로 \hline\@let@token.

해결 방법은 \let\LT@next\@let@token의 정의 앞에 를 \LT@@hline추가 하는 것입니다 \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}

관련 정보