子表中的子标题问题

子表中的子标题问题

我正在尝试实现一个包含多个subtables 的表格,但当我尝试 时,使用subcaption不起作用tabularx。这subtables有不同的列数。使用以下代码,表格不是平等的宽度。

\begin{table}[ht]
\caption{Earnings Surprise and Cumulated Returns}
\resizebox{\textwidth}{!}{\begin{threeparttable}
\begin{tabular}{@{\extracolsep{4pt}}lcccccccccc@{}}
\hline\hline
 & \multicolumn{3}{c}{N}  & \multicolumn{3}{c}{mean} & \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cline{2-4}  \cline{5-7}  \cline{8-9}  \cline{10-11}
 & SUE1 & SUE2 & SUE3 & SUE1 & SUE2 & SUE3 & CASC & BHAR & CASC & BHAR \\ [1ex]
\hline
AAA & 731 & 731 & 613 & 0.0004 & 0.0004 & 0.0104 & 688 & 726 & 0.0002 & -0.0084 \\
A & 3865 & 3865 & 3455 & -0.0013 & -0.0007 & 0.0002 & 3424 & 3827 & 0.0003 & 0.0027 \\
BBB & 6308 & 6313 & 5711 & -0.0017 & -0.0009 & 0.0000 & 5512 & 6252 & 0.0003 & 0.0060 \\
NIG & 3166 & 3172 & 2825 & 0.0006 & 0.0019 & -0.0054 & 2685 & 3080 & 0.0000 & 0.0148 \\ [1ex]
All & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 & 0.0002 & 0.0063 \\ [1ex]
Investment-Grade & 10904 & 10909 & 9779 & -0.0014 & -0.0007 & 0.0007 & 9624 & 10805 & 0.0003 & 0.0039 \\
Speculative-Grade & 3166 & 3172 & 2825 & 0.0006 & 0.0019 & -0.0054 & 2685 & 3080 & 0.0000 & 0.0148 \\ [1ex]
\hline
\end{tabular}
\bigskip
\begin{tabular}{@{\extracolsep{4pt}}lcccccccccc@{}}
\hline\hline
 & \multicolumn{3}{c}{N}  & \multicolumn{3}{c}{mean} & \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cline{2-4}  \cline{5-7}  \cline{8-9}  \cline{10-11}
 & SUE1 & SUE2 & SUE3 & SUE1 & SUE2 & SUE3 & CASC & BHAR & CASC & BHAR \\ [1ex]
\hline
2004 & 1747 & 1748 & 1487 & 0.0023 & 0.0031 & 0.0006 & 1342 & 1741 & -0.0003 & 0.0214 \\
2005 & 1727 & 1728 & 1513 & 0.0022 & 0.0009 & 0.0006 & 1420 & 1707 & -0.0002 & 0.0066 \\
2006 & 1646 & 1648 & 1473 & 0.0002 & 0.0015 & 0.0011 & 1431 & 1624 & 0.0002 & 0.0045 \\
2007 & 1594 & 1595 & 1427 & -0.0085 & -0.0075 & -0.0039 & 1329 & 1573 & 0.0014 & -0.0136 \\
2008 & 1545 & 1545 & 1414 & -0.0303 & -0.0163 & -0.0172 & 1429 & 1527 & 0.0042 & 0.0132 \\
2009 & 1492 & 1494 & 1384 & 0.0163 & 0.0064 & 0.0011 & 1400 & 1482 & -0.0049 & 0.0297 \\
2010 & 1471 & 1473 & 1357 & 0.0115 & 0.0112 & 0.0037 & 1332 & 1458 & 0.0005 & -0.0042 \\
2011 & 1445 & 1445 & 1303 & 0.0056 & 0.0059 & 0.0048 & 1326 & 1417 & 0.0024 & -0.0108 \\
2012 & 1403 & 1405 & 1246 & -0.0076 & -0.0062 & 0.0040 & 1300 & 1356 & -0.0010 & 0.0079 \\ [1ex]
All & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 & 0.0002 & 0.0063 \\[1ex]
pre-crisis & 5120 & 5124 & 4473 & 0.0016 & 0.0019 & 0.0008 & 4193 & 5072 & -0.0001 & 0.0110 \\
crisis & 3139 & 3140 & 2841 & -0.0193 & -0.0118 & -0.0105 & 2758 & 3100 & 0.0028 & -0.0004 \\
post-crisis & 5811 & 5817 & 5290 & 0.0066 & 0.0044 & 0.0034 & 5358 & 5713 & -0.0008 & 0.0058 \\ [1ex]
\hline
\end{tabular}

\begin{tablenotes}
\footnotesize
\item This is where authors provide additional information about the data, including whatever notes are needed.
asdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
asdfasdfsfffffffffffffffffffffffffffffffffffffffffffff
asdffffffffffffffffffffffffffffffffffffffffffffffffff
asdfffffffffffffffffffffffffffffffffffffffffffffffffffff
asdffffffffffffffffffffffffffffffffffffffffffffffffffffff
asdfffffffffffffffffffffffffffffffffffffffffffffffffffffff
asdfffffffffffffffffffffffffffffffffffffffffffffffd
asdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
asdfasdfsfffffffffffffffffffffffffffffffffffffffffffff
asdffffffffffffffffffffffffffffffffffffffffffffffffff
asdfffffffffffffffffffffffffffffffffffffffffffffffffffff
asdffffffffffffffffffffffffffffffffffffffffffffffffffffff
asdfffffffffffffffffffffffffffffffffffffffffffffffffffffff
asdffffffffffffffffffffffffffffffffffffffffffffff
\end{tablenotes}
\end{threeparttable}}
\end{table}

此外,通常可以设置表格,以便使用允许的最大数量大小?换句话说,不管是否必要,它们都会占据整个空间。

另一个问题是:使用当前标题,我得到“表 1:xyz”。是否可以将其转换为:

表格1 \ \

坐标

答案1

  • 您可以使用tabular*环境(如下表所示)强制表格材料占据文本块的整个宽度。通过将\tabcolsep(控制默认列间空白量的参数)设置为非常小的值并通过指令提供额外的灵活空白@{\extracolsep{\fill}}tabular*环境将精确占据指定的宽度(通常为\textwidth)。

  • 我还建议您使用该dcolumn软件包及其工具将数值数据列的小数点对齐。这样做还会使 LaTeX 在-遇到 a 时使用印刷正确的“减号”符号而不是文本模式破折号。

  • 要在“表格 1”和标题之间添加换行符,请使用包中的工具caption(请参阅下面的代码以了解部署的具体工具)。

  • 我建议您也使用该subcaption包并将两个表格分别分配到单独的subtable环境中。这样,您可以为每个子表分配一个标题,并根据需要单独交叉引用子表。子标题作为读者的“路标”非常有用。

  • 如果你需要环境工具threeparttable,请注意可以嵌入threeparttable环境之内一个subtable环境。

  • 最后的建议:不要使用基本但功能不太强大的指令\hline来绘制水平线。相反,请考虑使用booktabs包中更复杂的宏:\toprule、、和。您会发现宏在水平线周围提供了更好的间距。\midrule\bottomrule\cmidrule

在此处输入图片描述

\documentclass{article}
\usepackage[margin=1in]{geometry}  % choose margins here
\usepackage{threeparttable}
\usepackage{booktabs} % for \toprule, \midrule, \bottomrule, and \cmidrule
\usepackage[labelsep=newline,% line break after label
   justification=raggedright,
   singlelinecheck=off]{caption}
\usepackage{subcaption} % for subtable environment
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}

\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro

\begin{document}

\begin{table}[ht!]
\setlength\tabcolsep{0.1pt}  % default value: 6.0pt

\caption{Earnings Surprises and Cumulative Returns}
\label{tab:surprises}

\begin{subtable}{\textwidth}
\caption{Sorted by investment rating} \label{tab:byrating}
\begin{tabular*}{\textwidth}%
  { @{\extracolsep{\fill}} l *{3}{d{5.0}} *{3}{d{2.4}} 
      *{2}{d{5.0}} *{2}{d{2.4}} @{} }
\toprule
Rating
& \multicolumn{3}{c}{N} & \multicolumn{3}{c}{mean} 
& \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cmidrule{2-4} \cmidrule{5-7} \cmidrule{8-9} \cmidrule{10-11}
& \mc{SUE1} & \mc{SUE2} & \mc{SUE3} 
& \mc{SUE1} & \mc{SUE2} & \mc{SUE3} 
& \mc{CASC} & \mc{BHAR} & \mc{CASC} & \multicolumn{1}{r@{}}{BHAR} \\
\midrule
AAA & 731 & 731 & 613 & 0.0004 & 0.0004 & 0.0104 & 688 & 726 & 0.0002 & -0.0084 \\
A & 3865 & 3865 & 3455 & -0.0013 & -0.0007 & 0.0002 & 3424 & 3827 & 0.0003 & 0.0027 \\
BBB & 6308 & 6313 & 5711 & -0.0017 & -0.0009 & 0.0000 & 5512 & 6252 & 0.0003 & 0.0060 \\
NIG & 3166 & 3172 & 2825 & 0.0006 & 0.0019 & -0.0054 & 2685 & 3080 & 0.0000 & 0.0148 \\ [1ex]
All & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 & 0.0002 & 0.0063 \\ [1ex]
Inv.\ Grade & 10904 & 10909 & 9779 & -0.0014 & -0.0007 & 0.0007 & 9624 & 10805 & 0.0003 & 0.0039 \\
Spec.\ Grade & 3166 & 3172 & 2825 & 0.0006 & 0.0019 & -0.0054 & 2685 & 3080 & 0.0000 & 0.0148 \\ 
\bottomrule
\end{tabular*}
\end{subtable}

\bigskip\bigskip
\begin{subtable}{\textwidth}
\begin{threeparttable}

\caption{Sorted by period} \label{tab:byperiod}

\begin{tabular*}{\textwidth}%
  { @{\extracolsep{\fill}} l *{3}{d{5.0}} *{3}{d{2.4}} 
      *{2}{d{5.0}} *{2}{d{2.4}} @{} }
\toprule
Period\tnote{a}
& \multicolumn{3}{c}{N}  & \multicolumn{3}{c}{mean} 
& \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cmidrule{2-4}  \cmidrule{5-7}  \cmidrule{8-9}  \cmidrule{10-11}
& \mc{SUE1} & \mc{SUE2} & \mc{SUE3} 
& \mc{SUE1} & \mc{SUE2} & \mc{SUE3} 
& \mc{CASC} & \mc{BHAR} 
& \mc{CASC} & \multicolumn{1}{r@{}}{BHAR} \\
\midrule
2004 & 1747 & 1748 & 1487 & 0.0023 & 0.0031 & 0.0006 & 1342 & 1741 & -0.0003 & 0.0214 \\
2005 & 1727 & 1728 & 1513 & 0.0022 & 0.0009 & 0.0006 & 1420 & 1707 & -0.0002 & 0.0066 \\
2006 & 1646 & 1648 & 1473 & 0.0002 & 0.0015 & 0.0011 & 1431 & 1624 & 0.0002 & 0.0045 \\
2007 & 1594 & 1595 & 1427 & -0.0085 & -0.0075 & -0.0039 & 1329 & 1573 & 0.0014 & -0.0136 \\
2008 & 1545 & 1545 & 1414 & -0.0303 & -0.0163 & -0.0172 & 1429 & 1527 & 0.0042 & 0.0132 \\
2009 & 1492 & 1494 & 1384 & 0.0163 & 0.0064 & 0.0011 & 1400 & 1482 & -0.0049 & 0.0297 \\
2010 & 1471 & 1473 & 1357 & 0.0115 & 0.0112 & 0.0037 & 1332 & 1458 & 0.0005 & -0.0042 \\
2011 & 1445 & 1445 & 1303 & 0.0056 & 0.0059 & 0.0048 & 1326 & 1417 & 0.0024 & -0.0108 \\
2012 & 1403 & 1405 & 1246 & -0.0076 & -0.0062 & 0.0040 & 1300 & 1356 & -0.0010 & 0.0079 \\ [1ex]
All & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 & 0.0002 & 0.0063 \\[1ex]
pre-crisis & 5120 & 5124 & 4473 & 0.0016 & 0.0019 & 0.0008 & 4193 & 5072 & -0.0001 & 0.0110 \\
crisis & 3139 & 3140 & 2841 & -0.0193 & -0.0118 & -0.0105 & 2758 & 3100 & 0.0028 & -0.0004 \\
post-crisis & 5811 & 5817 & 5290 & 0.0066 & 0.0044 & 0.0034 & 5358 & 5713 & -0.0008 & 0.0058 \\ 
\bottomrule
\end{tabular*}

\begin{tablenotes}
\item[a] A subtable-specific footnote
\end{tablenotes}

\end{threeparttable}
\end{subtable}

\end{table}
\end{document}

仅供比较,以下是使用原始代码时表格的样子(这也需要加载包graphicx,而不是上面的代码中加载的)。大致从上到下进行,与上面的外观相比,一些主要区别是:表格标题居中且位于一行上;两个子表没有(子)标题;\hlines 和下一行材料之间的间距非常紧密(实际上太紧);指令4pt之间的空间非常小——准确地说是\cline;数据列中的数字居中而不是在小数点上对齐,并且偶尔的减号被错误地呈现为简单的破折号;两个tabular环境具有不同的宽度。

在此处输入图片描述

答案2

我发现siunitx管理数字表更好。

\documentclass[draft]{article}
\usepackage[margin=1in]{geometry}  % choose margins here

\usepackage{booktabs} % for \toprule, \midrule, \bottomrule, and \cmidrule
\usepackage[labelsep=newline,% line break after label
   justification=raggedright,
   singlelinecheck=off]{caption}

\usepackage{threeparttable}
\usepackage{subcaption} % for subtable environment
\usepackage{siunitx}

\begin{document}

\begin{table}[!htp]
\centering
\addtolength{\tabcolsep}{-0.5pt}
\sisetup{group-separator={}}

\caption{Earnings Surprises and Cumulative Returns}
\label{tab:surprises}

\begin{subtable}{\textwidth}
\caption{Sorted by investment rating} \label{tab:byrating}
\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l 
  *{3}{S[table-format=5.0]}
  *{3}{S[table-format=-1.4]}
  *{2}{S[table-format=5.0]}
  S[table-format=1.4]
  S[table-format=-1.4]
  @{}
}
\toprule
Rating
& \multicolumn{3}{c}{N} & \multicolumn{3}{c}{mean} 
& \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-9} \cmidrule(l){10-11}
& {SUE1} & {SUE2} & {SUE3} & {SUE1} & {SUE2} & {SUE3} 
  & {CASC} & {BHAR} & {CASC} & {BHAR} \\
\midrule
AAA
  &   731 &   731 &   613 &  0.0004 &  0.0004 &  0.0104 &   688 &   726 & 0.0002 & -0.0084 \\
A
  &  3865 &  3865 &  3455 & -0.0013 & -0.0007 &  0.0002 &  3424 &  3827 & 0.0003 &  0.0027 \\
BBB
  &  6308 &  6313 &  5711 & -0.0017 & -0.0009 &  0.0000 &  5512 &  6252 & 0.0003 &  0.0060 \\
NIG
  &  3166 &  3172 &  2825 &  0.0006 &  0.0019 & -0.0054 &  2685 &  3080 & 0.0000 &  0.0148 \\
\midrule
All
  & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 & 0.0002 &  0.0063 \\
\midrule
Inv.\ Grade
  & 10904 & 10909 &  9779 & -0.0014 & -0.0007 &  0.0007 &  9624 & 10805 & 0.0003 &  0.0039 \\
Spec.\ Grade
  &  3166 &  3172 &  2825 &  0.0006 &  0.0019 & -0.0054 &  2685 &  3080 & 0.0000 &  0.0148 \\ 
\bottomrule
\end{tabular*}
\end{subtable}

\bigskip

\begin{subtable}{\textwidth}
\begin{threeparttable}

\caption{Sorted by period} \label{tab:byperiod}

\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l 
  *{3}{S[table-format=5.0]}
  *{3}{S[table-format=-1.4]}
  *{2}{S[table-format=5.0]}
  *{2}{S[table-format=-1.4]}
  @{}
}
\toprule
Period\tnote{a}
& \multicolumn{3}{c}{N}  & \multicolumn{3}{c}{mean} 
& \multicolumn{2}{c}{N} & \multicolumn{2}{c}{mean}  \\
\cmidrule(lr){2-4}  \cmidrule(lr){5-7}  \cmidrule(lr){8-9}  \cmidrule(l){10-11}
& {SUE1} & {SUE2} & {SUE3} & {SUE1} & {SUE2} & {SUE3} 
  & {CASC} & {BHAR} & {CASC} & {BHAR} \\
\midrule
2004
  &  1747 &  1748 &  1487 &  0.0023 &  0.0031 &  0.0006 &  1342 &  1741 & -0.0003 &  0.0214 \\
2005
  &  1727 &  1728 &  1513 &  0.0022 &  0.0009 &  0.0006 &  1420 &  1707 & -0.0002 &  0.0066 \\
2006
  &  1646 &  1648 &  1473 &  0.0002 &  0.0015 &  0.0011 &  1431 &  1624 &  0.0002 &  0.0045 \\
2007
  &  1594 &  1595 &  1427 & -0.0085 & -0.0075 & -0.0039 &  1329 &  1573 &  0.0014 & -0.0136 \\
2008
  &  1545 &  1545 &  1414 & -0.0303 & -0.0163 & -0.0172 &  1429 &  1527 &  0.0042 &  0.0132 \\
2009
  &  1492 &  1494 &  1384 &  0.0163 &  0.0064 &  0.0011 &  1400 &  1482 & -0.0049 &  0.0297 \\
2010
  &  1471 &  1473 &  1357 &  0.0115 &  0.0112 &  0.0037 &  1332 &  1458 &  0.0005 & -0.0042 \\
2011
  &  1445 &  1445 &  1303 &  0.0056 &  0.0059 &  0.0048 &  1326 &  1417 &  0.0024 & -0.0108 \\
2012
  &  1403 &  1405 &  1246 & -0.0076 & -0.0062 &  0.0040 &  1300 &  1356 & -0.0010 &  0.0079 \\
\midrule
All
  & 14070 & 14081 & 12604 & -0.0010 & -0.0001 & -0.0007 & 12309 & 13885 &  0.0002 &  0.0063 \\
\midrule
pre-crisis
  &  5120 &  5124 &  4473 &  0.0016 &  0.0019 &  0.0008 &  4193 &  5072 & -0.0001 &  0.0110 \\
crisis
  &  3139 &  3140 &  2841 & -0.0193 & -0.0118 & -0.0105 &  2758 &  3100 &  0.0028 & -0.0004 \\
post-crisis
  &  5811 &  5817 &  5290 &  0.0066 &  0.0044 &  0.0034 &  5358 &  5713 & -0.0008 &  0.0058 \\ 
\bottomrule
\end{tabular*}

\begin{tablenotes}
\item[a] A subtable-specific footnote
\end{tablenotes}

\end{threeparttable}
\end{subtable}

\end{table}
\end{document}

已计算调整-0.25pt\tabcolsep,因为超出部分略小于 5pt,并且有 20 个可用的列间距。

在此处输入图片描述

相关内容