删除表中特定列条目之间的空格

删除表中特定列条目之间的空格

我有这个代码:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{setspace}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{booktabs}
\usepackage[labelfont=bf]{caption}
\usepackage{siunitx}

\begin{document}
\def\arraystretch{1.25}
\begin{table}[]
\centering
\captionof{table}{\textbf{Some Fancy Title to My Table}\\\small{Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}}
\resizebox{\columnwidth}{!}{
\begin{tabular}{llrrrlrlrrrlrlrrrlr}
\toprule
&&
\multicolumn{4}{c}{Parameter 1}&&&
\multicolumn{4}{c}{Parameter 2}&&&
\multicolumn{4}{c}{Parameter 3}\\
\cline{3-6}\cline{9-12}\cline{15-18}&&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}&&&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}&&&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}\\
\hline
Model 1             &&&&&\multicolumn{1}{r}{0.47}   &&&&&&\multicolumn{1}{r}{0.47}  &&&&&&\multicolumn{1}{r}{0.47}&\\
\qquad{}Intercept   &&-0.02 &-1.19  &0.23&      &&&0.14     &6.41   &0.00&***   &&&0.05   &2.69   &0.01&**  &\\
\qquad{}Factor 1        &&0.81  &290.96 &0.00&***   &&&0.81     &290.91 &0.00&***   &&&0.81   &290.83 &0.00&*** &\\
\qquad{}Factor 2      &&0.09  &3.07   &0.00&**    &&&-0.05    &-1.80  &0.07&.     &&&0.03   &0.85   &0.39&    &\\
\qquad{}Factor 3      &&0.23  &7.67   &0.00&***   &&&-0.18    &-6.21  &0.00&***   &&&-0.01  &-0.52  &0.61&    &\\
\bottomrule
\end{tabular}
} % end of resizebox
\end{table}
\end{document}

生成以下表格:

桌子

是否有可能以某种方式删除“p 值”列中的值与“R^2”列中的星号 (***) 之间的空格?我的问题是,我想保留列标题之间的空格以及空列与“模型 1”行中的数字“R^2”值之间的空格。

换句话说,我尝试设置我的表格,使得“参数 1”标题下最右边的列看起来像这样:

0.23

0.00***

0.00**

0.00***

数值(左侧)是右对齐的,而星星(右侧)是左对齐的。

我希望我的问题有意义。我已经看过多个问题,例如

提前致谢!

答案1

天哪,这是制作桌子的一种丑陋方法!

总是有不止一种方法可以做到。我建议:

  • 使用 Ssiunitx作为图形。
  • 将星号放在 p 值列中(用括号括起来以免混淆siunitx)。
  • 摆脱可怕的resizebox(你真的知道类型有多小吗?)
  • 通过减少来为自己争取一点额外的空间tabcolsep(标签或多或少会造成间距:它们有点紧,但没办法:在理想情况下,我会通过缩写来减少标签的长度,例如“est”和“t-stat”和“p”,在这种情况下,我们可能需要更多tabcolsep)。
  • 摆脱那些唯一功能是留出间距的列,而是在模板中需要时添加间距(我们需要的很少)。
  • 使用 trimmed\cmidrules对参数进行分组(消除了它们之间的空格):加载booktabs然后使用\cline和是没有意义的\hline
  • 从而从数据中删除所有仅用于间隔的冗余单元并使其排列。
  • 删除\qquads 并使用不同的类型样式来表明我们正在处理特定模型。

有了这些,我们就可以删除,resizebox让整个内容footnotesize清晰易读,并且仍在文本宽度之内。我们还有实际反映表格的代码,没有很多只是分隔符的 & 符号。

代码如下(删除了多余的包)。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[margin=2.5cm]{geometry}
\usepackage{booktabs}
\usepackage[labelfont=bf]{caption}
\usepackage{siunitx}

\begin{document}
\def\arraystretch{1.25}
\setlength{\tabcolsep}{1.5pt}
\begin{table}[]
\centering
\captionof{table}{\textbf{Some Fancy Title to My Table}\\\small{Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}}
\footnotesize
\begin{tabular}{lSSS[table-format=1.2]S@{\hskip 4pt}SSS[table-format=1.2]S@{\hskip 4pt}SSS[table-format=1.2]S}
  \toprule
  &
\multicolumn{4}{c}{Parameter 1}&
\multicolumn{4}{c}{Parameter 2}&
\multicolumn{4}{c}{Parameter 3}\\
%  \cmidrule(r){2-5}\cmidrule(lr){6-9}\cmidrule(l){10-13}
&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}&
\multicolumn{1}{c}{Estimate}&
\multicolumn{1}{c}{$t$--Statistic}&
\multicolumn{1}{c}{$p$--value}&
\multicolumn{1}{c}{$\bar{R}^{2}$}\\
\cmidrule(r){2-5}\cmidrule(r){6-9}\cmidrule{10-13}
\textit{Model 1} &       &        &           & 0.47 &       &        &           & 0.47 &       &        &  & 0.47   \\
Intercept        & -0.02 & -1.19  & 0.23      &      & 0.14  & 6.41   & 0.00{***} &      & 0.05  & 2.69   & 0.01{**}  \\
Factor 1         & 0.81  & 290.96 & 0.00{***} &      & 0.81  & 290.91 & 0.00{***} &      & 0.81  & 290.83 & 0.00{***} \\
Factor 2         & 0.09  & 3.07   & 0.00{**}  &      & -0.05 & -1.80  & 0.07      &      & 0.03  & 0.85   & 0.39      \\
Factor 3         & 0.23  & 7.67   & 0.00{***} &      & -0.18 & -6.21  & 0.00{***} &      & -0.01 & -0.52  & 0.61      \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案2

我建议您重新组织表格,删除所有空(“填充”?)列,并将相关信息R^2放在顶层标题单元格下方的单独行中。进行这些更改后,\resizebox表格材料就不再必要了——这样读者就更容易读懂材料了。最后,我认为按小数点标记排列所有数字(现在只有 9 个)会提高数字列中数字的可读性。

在此处输入图片描述

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{setspace,amssymb,mathtools}
\usepackage{booktabs,siunitx,dcolumn}
\usepackage[font=bf,justification=raggedright,
   singlelinecheck=off,skip=0.333\baselineskip]{caption}
\newcolumntype{d}[1]{D..{#1}}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}
\begin{table}
%\renewcommand\arraystretch{1.25}

\caption{Some fancy title to my Table}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit 
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim 
id est laborum.

\medskip
\centering
\begin{tabular}{@{} l *{3}{d{2.2}d{3.2}d{1.4}} @{}}
\toprule
Model 1 &
\multicolumn{3}{c}{Parameter 1}&
\multicolumn{3}{c}{Parameter 2}&
\multicolumn{3}{c@{}}{Parameter 3}\\
&\multicolumn{3}{c}{($\bar{R}^{2}=0.47$)}
&\multicolumn{3}{c}{($\bar{R}^{2}=0.47$)}
&\multicolumn{3}{c}{($\bar{R}^{2}=0.47$)}\\
\cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(l){8-10}
&\mc{Coeff.}&\mc{$t$-Stat.}&\mc{$p$-value}
&\mc{Coeff.}&\mc{$t$-Stat.}&\mc{$p$-value}
&\mc{Coeff.}&\mc{$t$-Stat.}&\multicolumn{1}{c@{}}{$p$-value}\\
\midrule
Intercept &-0.02 &-1.19  & 0.23 
          & 0.14 &6.41   & 0.00^{***} 
          & 0.05 &2.69   & 0.01^{**}  \\
Factor 1  & 0.81 &290.96 & 0.00^{***} 
          & 0.81 &290.91 & 0.00^{***}   
          & 0.81 &290.83 & 0.00^{***} \\
Factor 2  & 0.09 &  3.07 & 0.00^{**} 
          &-0.05 & -1.80 & 0.07 
          & 0.03 &  0.85 & 0.39       \\
Factor 3  & 0.23 &  7.67 & 0.00^{***} 
          &-0.18 & -6.21 & 0.00^{***} 
          &-0.01 & -0.52 & 0.61       \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案3

切勿\resizebox与表格一起使用!这会导致字体大小不一致。最好使用字体大小和 的值\tabcolsep

我建议使用tabularx适合的 \linewidth,并系统地使用booktabs中的规则:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[margin=2.5cm, showframe]{geometry}
\usepackage{setspace}
\usepackage{amssymb}
\usepackage{mathtools}%% loads amsmath
\usepackage{booktabs, tabularx}
\usepackage[labelfont=bf]{caption}
\usepackage{siunitx}

\begin{document}

\def\arraystretch{1.25}
\begin{table}[!htb]
\centering\footnotesize\setlength{\tabcolsep}{3pt}%
\sisetup{table-number-alignment=center}
\captionof{table}{\textbf{Some Fancy Title to My Table}\\\footnotesize{Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}}

\begin{tabularx}{\linewidth}{X *{3}{S[table-format=1.2]S[table-format=3.2]S[table-format=1.2, table-space-text-post=***]@{\,}c}@{}}
\toprule
& \multicolumn{4}{c}{Parameter 1}& \multicolumn{4}{c}{Parameter 2}& \multicolumn{4}{c}{Parameter 3}\\
\cmidrule(l{2pt}r){2-5}\cmidrule(l{2pt}r){6-9}\cmidrule(l{2pt}r{2pt}){10-13}
 & {Estimate}& {$t$--Statistic}& {$p$--value}& $\bar{R}^{2}$
 & {Estimate}& {$t$--Statistic}& {$p$--value}&{$\bar{R}^{2}$}
 & {Estimate}& {$t$--Statistic}& {$p$--value}& {$\bar{R}^{2}$}\\
\midrule
\multicolumn{1}{@{}l}{Model 1} &{}&&& 0.47 &&&& 0.47 &&&& 0.47 \\[0.5ex]
Intercept & - 0.02 &- 1.19 &0.23& & 0.14 &6.41 &0.00*** &&0.05 &2.69 &0.01** &\\
Factor 1 &0.81 &290.96 &0.00 *** & &0.81 &290.91 & 0.00 *** & &0.81 &290.83 &0.00 *** &\\
Factor 2 &0.09 &3.07 &0.00 ** & &-0.05 &-1.80 &0.07{. }& &0.03 &0.85 &0.39& \\
Factor 3 & 0.23 &7.67 &0.00 *** & &-0.18 &-6.21 &0.00 *** & &-0.01 &-0.52 &0.61& \\
\bottomrule
\end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

相关内容