我有一份包含几个表格的文档。对于其中一些表格,我目前正在使用该array
包创建一个单元格,该单元格跨越多列,其内容位于单元格的中心。不幸的是,输出看起来非常丑陋,因为我的多行单元格的固定空间没有均匀地分布在定义多行单元格的四列中。要理解我在说什么,请考虑以下 MWE:
\documentclass{standalone}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{tabular}{lcccccccc}
\\
& \multicolumn{4}{C{175pt}}{Very long name of a fancy dependent variable} & \multicolumn{4}{C{175pt}}{Even longer and fancier name of another dependent variable} \\
\\
& (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8)\\
\end{tabular}
\end{document}
请参阅此处的(丑陋的)输出:
我希望多行单元格的固定长度能够均匀分布在其定义的四列上。我该怎么做才能确保多行单元格的固定空间均匀分布在定义它们的列上?换句话说,如何才能让数字 (1)、(2)、(3) 和 (4)(以及 (5)、(6)、(7) 和 (8))之间的距离相同?
无论您建议的解决方案是什么,请记住我有很多表格,因此最受欢迎的是系统且易于应用的解决方案。
非常感谢大家抽出时间。
答案1
起点:
\documentclass{standalone}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newlength{\mycolwidth}
\newlength{\multicolumnwidth}
\setlength{\multicolumnwidth}{175pt}
\setlength{\mycolwidth}{\dimexpr(\multicolumnwidth-6\tabcolsep)/4}
\begin{document}
\begin{tabular}{l*{4}{wc{\mycolwidth}}*{4}{wc{\mycolwidth}}}
\\
& \multicolumn{4}{C{\multicolumnwidth}}{Very long name of a fancy dependent variable} & \multicolumn{4}{C{\multicolumnwidth}}{Even longer and fancier name of another dependent variable} \\
\\
& (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8)\\
\end{tabular}
\end{document}
答案2
2021L 版tabularray
软件包添加了选项hspan=even
并vspan=even
分别为多列和多行单元格均匀分配额外空间。
\\
备注:在开头或双重写\\
's是不正确的;tabularray
包不支持这些用法。
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\SetTblrDefault{hspan=even}
\begin{tblr}{
colspec={lcccccccc},
cell{1}{2,6} = {c=4}{175pt},
}
& Very long name of a fancy dependent variable
& & & & Even longer and fancier name of another dependent variable
& & & \\
& (1) & (2) & (3) & (4) & (5) & (6) & (7) & (8) \\
\end{tblr}
\end{document}