当我使用 时,之间\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
colortbl
检查 longtable 并确保兼容性时会加载大量代码。如果您停止这样做,那么事情就会变得更好。我指责和软件包\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
包\LT@@hline
在 之后重新定义了宏\begin{document}
,并且首先\ifx
将该宏\hline
与宏进行比较\LT@next
。但是宏\hline
(在 'longtable' 环境中)扩展为:
\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}