我在创建回归表时遇到了一个问题,我不希望变量名太长,而是希望它堆叠起来。例如,我希望变量名(如“first second third”)在“first second”下面写上“third”,而不生成新行并留下一整行空格。我的表格遵循当前格式:
\begin{tabular}{lcccccc} \hline
& & Data1 & & & Data2 & \\
VARIABLES & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline
x1 & coef1 & coef2 & coef3 & coef4 & coef5 & coef6 \\
first second & no & no & yes & no & no & yes \\
third & & & & & & \\
\hline
\end{tabular}
如果我将变量保留为“第一 第二 第三”,则无法在页面上容纳所有 6 个规范。我希望上述工作示例足够了,如果不行,请告诉我。
编辑:我本质上想让系数(在本例中为“否”)位于堆叠名称的中心。不知道该如何表述。
答案1
以下是两个建议。第一个建议是基于使用制造细胞已经Bernard 提及而第二个使用m
类型列和自动(或也可能是手动)换行符:
我还\hline
用以下规则替换了书签包并添加了一些垂直空白作为眼睛的引导。在第三个表中,我还使用了\multicolumn
一些\cmidrule
s。
根据表格的宽度和变量名的长度,您可能还会受益于表格型包裹。
\documentclass{article}
\usepackage{makecell}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcccccc} \toprule
& & Data1 & & & Data2 & \\
VARIABLES & 1 & 2 & 3 & 4 & 5 & 6 \\ \midrule
x1 & coef1 & coef2 & coef3 & coef4 & coef5 & coef6 \\
\makecell[lc]{first\\ second\\ third} & no & no & yes & no & no & yes \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{>{\raggedright\arraybackslash}m{2.1cm}cccccc} \toprule
& & Data1 & & & Data2 & \\
VARIABLES & 1 & 2 & 3 & 4 & 5 & 6 \\ \midrule
x1 & coef1 & coef2 & coef3 & coef4 & coef5 & coef6 \\ \addlinespace
first second third & no & no & yes & no & no & yes \\ \addlinespace
first \newline second third & no & no & yes & no & no & yes \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{>{\raggedright\arraybackslash}m{2.1cm}cccccc} \toprule
& \multicolumn{3}{c}{Data1} & \multicolumn{3}{c}{Data2} \\ \cmidrule(r){2-4} \cmidrule(l){5-7}
VARIABLES & 1 & 2 & 3 & 4 & 5 & 6 \\ \midrule
x1 & coef1 & coef2 & coef3 & coef4 & coef5 & coef6 \\ \addlinespace
first second third & no & no & yes & no & no & yes \\ \addlinespace
first \newline second third & no & no & yes & no & no & yes \\
\bottomrule
\end{tabular}
\end{document}