如何解决下表中的错位问题?
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{color, colortbl}
\definecolor{gray_header}{gray}{0.6}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{}>{\raggedright}X| L L L L| L L L L L@{}}
\rowcolor{gray_header}
tab1 & \multicolumn{4}{c}{multicolumn1} & \multicolumn{5}{c}{multicolum2} \\
\rowcolor{gray_header}
& & & & & \multicolumn{3}{c}{mulmticolum3} & a & b \\ \hline
1 & 2& 3& 4& 5& 6& 7& 8& 9& 10\\\hline
\end{tabularx}
\end{table}
\end{document}
答案1
我怀疑你的问题是彩色行的颜色溢出了表格。这是由@{}
列规范的开始和结束引起的。如果你将它们删除,表格就会变得很好,即彩色行将不再溢出表格。
为了将彩色行限制为表格宽度,您应该\columncolor{white}....
向第一个和最后一个表格的列添加如下内容:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[table]{xcolor}
\definecolor{gray_header}{gray}{0.6}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{}
>{\columncolor{white}[0pt][\tabcolsep]}L|
*{4}{L} | *{4}{L}
>{\columncolor{white}[\tabcolsep][0pt]}L
@{}}
\rowcolor{gray_header}
tab1 & \multicolumn{4}{c@{}}{multicolumn1} & \multicolumn{5}{c}{multicolum2} \\
\rowcolor{gray_header}
& & & & & \multicolumn{3}{c}{mulmticolum3} & a & b \\
\hline
1 & 2& 3& 4& 5& 6& 7& 8& 9& 10\\
\hline
\end{tabularx}
\end{table}
\end{document}
这使
(红线表示文本边框)
与您的解决方案相比,现在整个表格位于文本区域(宽度)内,即前两行的彩色区域不会溢出表格(和文本区域)。
答案2
感谢 Phelype Oleinik,我能够通过调整代码来解决这个问题:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{color, colortbl}
\definecolor{gray_header}{gray}{0.6}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{}>{\raggedright}X| L L L L| L L L L L@{}}
\rowcolor{gray_header}
tab1 & \multicolumn{4}{c@{}}{multicolumn1} & \multicolumn{5}{c@{}}{multicolum2} \\
\rowcolor{gray_header}
& & & & & \multicolumn{3}{c}{mulmticolum3} & a & b \\
\hline
1 & 2& 3& 4& 5& 6& 7& 8& 9& 10\\
\hline
\end{tabularx}
\end{table}
\end{document}
(红线表示文字边框)
答案3
具有(2021-08-10{NiceTabularX}
的nicematrix
≥ 6.0)。
\documentclass{article}
\usepackage{xcolor}
\definecolor{gray_header}{gray}{0.6}
\usepackage{nicematrix}
\newcolumntype{L}{X[l]}
\begin{document}
\begin{table}
\begin{NiceTabularX}{\textwidth}{@{}L|LLLL|LLLLL@{}}[colortbl-like]
\rowcolor{gray_header}
tab1 & \Block{1-4}{multicolumn1} &&&& \Block{1-5}{multicolum2} \\
\rowcolor{gray_header}
& & & & & \Block{1-3}{multicolum3} &&& a & b \\
\hline
1 & 2& 3& 4& 5& 6& 7& 8& 9& 10\\
\hline
\end{NiceTabularX}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。