在 `tabularx` 环境中使用不同颜色的 cmidrule 时如何省略垂直重新调整?

在 `tabularx` 环境中使用不同颜色的 cmidrule 时如何省略垂直重新调整?

我正在尝试使用tabularxLatex 中的环境创建一个表格,其中包含各种不同颜色的 \cmidrule。但是,创建的线条不在同一条垂直线上(如下面的屏幕截图所示,代码在问题后面提供):

表格截图显示不同颜色的 \cmidrule 的垂直对齐不被遵守

我找到了这个答案(https://tex.stackexchange.com/a/35821/301750) 为环境中的表格提供了令人满意的结果tabular。但是,我必须使用\tabularx才能使用我修改过的特殊列类型以及列宽(参见代码)。

% !TEX program = lualatex 

\documentclass{article}
\usepackage[table]{xcolor} % For row coloring
\usepackage{tabularx}      % For the tabularx environment
\usepackage{colortbl}      % For coloring the rules
\usepackage{array}         % For adjusting column widths
\usepackage{booktabs}      % For better horizontal rules

% Vertical centering for 'X' type columns
\renewcommand\tabularxcolumn[1]{m{#1}}

% from https://tex.stackexchange.com/a/35821/301750
% Correct for \cmidrule colour adjustment/vertical skip
\newcommand{\corcmidrule}[1][2pt]{% \corcmidrule[<len>]
    \\[\dimexpr-\normalbaselineskip-\belowrulesep-\aboverulesep-#1\relax]%
}

\begin{document}

\begin{tabular}{lll}
    column 1 & column 2 & column 3 \\
    \cmidrule[2pt](lr){1-1}\corcmidrule\arrayrulecolor{blue}%
    \cmidrule[2pt](lr){2-2}\corcmidrule\arrayrulecolor{black}%
    \cmidrule[2pt](lr){3-3}
    text & text & text\\ \cmidrule[0.4pt](lr){1-1}\cmidrule[0.4pt](lr){2-2}\cmidrule[0.4pt](lr){3-3}
    text & text & text\\ \cmidrule[0.4pt](lr){1-1}\cmidrule[0.4pt](lr){2-2}\cmidrule[0.4pt](lr){3-3}
\end{tabular}

\begin{table}[htbp]
    \centering
    \rowcolors{2}{white}{gray!5} % Alternate row colors
    \footnotesize
    \caption{Issue with vertical placement of cmidrule}
    \begin{tabularx}{\linewidth}{
        >{\hsize=1.1\hsize\centering}X
        >{\hsize=0.8\hsize\centering}X
        >{\hsize=1.2\hsize\centering}X
        >{\hsize=1\hsize\centering}X
        >{\hsize=1.3\hsize\centering}X
        >{\hsize=0.7\hsize\centering}X
        >{\hsize=1.4\hsize\centering}X
        >{\hsize=1\hsize\centering}X
        >{\hsize=0.5\hsize\centering}X
        >{\hsize=0.8\hsize\centering}X
        >{\hsize=1.2\hsize\centering\arraybackslash}X
    }
    \arrayrulecolor{gray}\toprule
    col 1 & col 2 & col 3 & col 4 & col 5 & col 6 & col 7 & col 8 & col 9 & col 10 & col 11 \\
    \arrayrulecolor{orange}\cmidrule(lr){1-1}\cmidrule(lr){3-3}\cmidrule(lr){4-4}\cmidrule(lr){7-7}
        \arrayrulecolor{gray}\cmidrule(lr){2-2}\cmidrule(lr){5-5}\cmidrule(lr){6-6}\cmidrule(lr){8-8}
    content 1 & content 2 & content 3 & content 4 & content 5 & content 6 & content 7 & content 8 & content 9 & content 10 & content 11 \\
    \arrayrulecolor{gray}\bottomrule
    \end{tabularx}
\end{table}

\end{document}

我认为问题在于定义中‘\\’的使用,\corcmidrule但我完全不确定......

我知道代码没有tabularx使用 显示表格\corcmidrule,但它就是不起作用。\corcmidrule在环境中使用显示所需的结果。我尝试使用而不是 来tabular更改代码,但它没有解决问题。我必须同意,我真的不明白代码的作用,所以我在寻求帮助。\vspace\\

提前致谢。

如果您无法运行代码:以下是两个结果表:

在此处输入图片描述

答案1

  • 您的表格,即使您在表格中使用的\footnotesize字体大小大于默认article大小\textwidth。补救措施是通过使用geometry包来扩大文本块大小。
  • 使用该tabularray包编写第二个表很容易获得所需的结果。
  • 除此之外,代码更短:
\documentclass{article}
%\usepackage{geometry}
\usepackage{xcolor} % For row coloring
\usepackage{tabularray}      % For the tabularx environment
\UseTblrLibrary{booktabs}      % For better horizontal rules

\begin{document}

\begin{table}[htbp]
\footnotesize
    \caption{Issue with vertical placement of cmidrule}
    \begin{tblr}{colspec = {*{11}{X[c,m]}},
                 colsep  = 3pt,
                 row{even} = {gray!5}
                 }
    \toprule[fg=gray]
    col 1   & col 2     & col 3     & col 4     & col 5 & 
    col 6   & col 7     & col 8     & col 9     & col 10 & 
    col 11 \\
    \cmidrule[lr, fg=orange]{1-1}
    \cmidrule[lr, fg=gray]{3-3}
    \cmidrule[lr, fg=orange]{4-4}
    \cmidrule[lr, fg=orange]{7-7}
    \cmidrule[lr, fg=gray]{2-2}
    \cmidrule[lr, fg=gray]{5-5}
    \cmidrule[lr, fg=orange]{6-6}
    \cmidrule[lr, fg=gray]{8-8}
content 1   & content 2 & content 3 & content 4 & content 5     & 
content 6   & content 7 & content 8 & content 9 & content 10    & 
content 11 \\
    \bottomrule[fg=gray]
\end{tblr}
    \end{table}
\end{document}

在此处输入图片描述

相关内容