colortbl、multicolumn 和 settototalheight 不能一起使用

colortbl、multicolumn 和 settototalheight 不能一起使用

我有一个脚本可以生成超级复杂的表格,这些表格需要带有彩色背景的单个单元格。目前,我正在使用自己的宏来生成彩色单元格,但我宁愿使用 中更好的宏colortbl。但是,导入colortbl包会导致我的 latex 文档失败,并显示以下内容:

$ pdflatex  tbl_example.tex 
! Undefined control sequence.
<template> ...@setup \CT@row@color \CT@cell@color 
                                                  \CT@do@color \endgroup \@t...
l.23 \multicolumn{1}{c}{\multirow{2}{*}{}}&&
                                            &\multicolumn{1}{c}{} &\multicol...

?

在下面的 MWE 中,注释掉usepackage{colortbl}、 或 的定义\blankheight或表列都会导致此文档编译时没有错误。我做错了什么?

\documentclass{article}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage{mathtools}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{xspace}

\newlength{\blankheight}%
\settototalheight{\blankheight}{%
$\begin{array}{rr}%
\scriptstyle{0} \\[-6pt]%
\scriptscriptstyle{0}%
\end{array}%
$%
}

\begin{document}

\begin{longtable}{ll@{\hspace{0cm}}ll@{\hspace{-1cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}l@{\hspace{.3cm}}ll@{\hspace{-1cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}rr@{\hspace{0cm}}r}

\multicolumn{1}{c}{\multirow{2}{*}{}}&&&\multicolumn{1}{c}{} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column}\\
\endhead
\hline

\end{longtable}

\end{document}

答案1

您可以延迟设置:

\documentclass{article}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage{mathtools}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{xspace}

\newlength{\blankheight}%

\AtBeginDocument{%
\settototalheight{\blankheight}{%
$\begin{array}{rr}%
\scriptstyle{0} \\[-6pt]%
\scriptscriptstyle{0}%
\end{array}%
$%
}}

\begin{document}

\begin{longtable}{ll@{\hspace{0cm}}ll@{\hspace{-1cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}l@{\hspace{.3cm}}ll@{\hspace{-1cm}}r@{\hspace{0cm}}r@{\hspace{0cm}}rr@{\hspace{0cm}}r}

\multicolumn{1}{c}{\multirow{2}{*}{}}&&&\multicolumn{1}{c}{} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column} &\multicolumn{1}{c}{Column}\\
\endhead
\hline

\end{longtable}

\end{document}

相关内容