我有一张又长又宽的表格(9 列,67 行)。目前,我尝试使用 lscape 包将其水平显示。问题是它仍然太长太宽,以至于许多行和最后一列无法放入页面中。
我熟悉 longtable 包并尝试使用它,但它仍然不适合(无论是水平还是垂直)。
有人知道为什么会发生这种情况吗?我唯一能做的就是调整字体大小吗?
我发现了一些有用的帖子,但我仍然想知道什么对我来说是最好的。
我报告了一小部分代码,以备不时之需。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{dcolumn}
\usepackage{siunitx}
\usepackage{lscape}
\usepackage{longtable}
\begin{table}[H]
\sisetup{
input-digits = ()-01234567890,
input-open-uncertainty = ,
input-close-uncertainty = ,
table-align-text-post = false,
detect-all
}
\centering
\begin{longtable}{lccccccccc}
\label{tab:panel_main} \\ \hline
\toprule
& \multicolumn{1}{l}{Model 1} & \multicolumn{1}{l}{Model 2} & \multicolumn{1}{l}{Model 3} & \multicolumn{1}{l}{Model 4} & \multicolumn{1}{l}{Model 5} & \multicolumn{1}{l}{Model 6} & \multicolumn{1}{l}{Model 7} & \multicolumn{1}{l}{Model 8} & \multicolumn{1}{l}{Model 9} \\
\midrule
year 1958 & 1.314* & - & \multicolumn{1}{l}{1.363*} & - & \multicolumn{1}{l}{1.558**} & \multicolumn{1}{r}{1.345} & - & - & - \\
year 1959 & 0.209 & - & \multicolumn{1}{r}{0.0816} & - & \multicolumn{1}{r}{-0.625} & \multicolumn{1}{r}{0.148} & - & - & - \\
\bottomrule
\multicolumn{2}{c}{ Robust standard errors in parentheses} \\
\multicolumn{2}{c}{ *** p$<$0.01, ** p$<$0.05, * p$<$0.1} \\
\end{longtable}
\end{table}
\end{document}
提前致谢!
答案1
将放置longtable
在table
环境中是错误的,因为table
不能跨页面分解。
我的印象是,您有一张标准桌子。以下是一些建议,可帮助您获得一张更好、更小的桌子。
永远不要重复信息:您可以简单地对模型列进行分组并为它们分配编号。同样,可以使用标题避免重复“年份”。
有了siunitx
,对齐图形就变得容易多了。
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\sisetup{table-align-text-after = false}
\begin{tabular}{
@{}
l
S[table-format=1.3{*}]
S[table-format=1.3]
S[table-format=1.4{*}]
S[table-format=1.3]
S[table-format=-1.3{**}]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
@{}
}
\toprule
Year & \multicolumn{9}{c}{Model} \\
\cmidrule(l){2-10}
& {1} & {2} & {3} & {4} & {5} & {6} & {7} & {8} & {9} \\
\midrule
1958 & 1.314* & {--} & 1.363* & {--} & 1.558** & 1.345 & {--} & {--} & {--} \\
1959 & 0.209 & {--} & 0.0816 & {--} & -0.625 & 0.148 & {--} & {--} & {--} \\
\bottomrule
\multicolumn{10}{@{}l@{}}{Robust standard errors in parentheses} \\
\multicolumn{10}{@{}l@{}}{*** $p<0.01$, ** $p<0.05$, * $p<0.1$} \\
\end{tabular}
\end{table}
\end{document}
根据您拥有的实际值调整列的设置。
答案2
lscape
这是与和 一起使用的代码siunitx
。请注意, alongtable
不是浮点数,因此它不必嵌套在table
环境中,并且它会自动居中,因此\centering
毫无用处。我添加了各种代码改进和简化。
\documentclass{report}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{lscape}
\usepackage{longtable}
\begin{document}
\begin{landscape}
\sisetup{%
input-digits = ()-01234567890,
input-signs = -,
input-open-uncertainty = ,
input-close-uncertainty = ,
table-align-text-post = false,
detect-all,
table-format =-1.4***}
\setlength{\extrarowheight}{3pt}
\begin{longtable}{@{}l*{9}{S}}
\label{tab:panel_main} \\ \hline
\toprule
& {Model 1} & {Model 2} & {Model 3} & {Model 4} & {Model 5} & {Model 6} & {Model 7} & {Model 8} & {Model 9} \\
\midrule
year 1958 & 1.314* & {$ - $} & 1.363* & {$ - $} & 1.558** & 1.345 & {$ - $} & {$ - $} & {$ - $} \\
year 1959 & 0.209 & {$ - $} & 0.0816 & {$ - $} & -0.625 & 0.148 & {$ - $}& {$ - $} & {$ - $} \\
\midrule[\heavyrulewidth]
\multicolumn{10}{l}{ Robust standard errors in parentheses} \\
\multicolumn{10}{l}{ *** $p<0.01$, \enspace ** $p<0.05$,\enspace * $p<0.1$}
\end{longtable}
\end{landscape}
\end{document}