我想在表格末尾添加注释。我使用 \extracolsep 使表格均匀分布在 \textwidth 上。似乎注释使表格移到了左侧。如何解决这个问题?
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{
a4paper,
top= 20mm,
left=20mm,
right=20mm,
headheight=5mm,
}
\usepackage{pdflscape}
\usepackage{pbox}
\usepackage{booktabs}
\usepackage{lscape,longtable,array}
\usepackage{multirow}
\usepackage{afterpage}
\newlength\tmplen
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\title{}
\author{}
\begin{document}
\clearpage
\afterpage{
\begin{table}[!p]
\centering
\caption{results}
\ra{.98}
\footnotesize
\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}}lllllll}
\toprule
\multicolumn{7}{l}{Panel A: Daily} \\
\toprule
& \multicolumn{3}{c}{3-month} & \multicolumn{3}{c}{10-year} \\
\midrule
\multirow{2}[0]{*}{Const} & 0.039*** & 0.049*** & 0.045*** & 0.039* & 0.048** & 0.040* \\[-4pt]
& (0.01) & (0.01) & (0.01) & (0.02) & (0.02) & (0.02) \\
\midrule
Adj $R^2$ & 0.645 & 0.643 & 0.646 & 0.980 & 0.980 & 0.980 \\
\bottomrule
\\ [3mm]
\toprule
\multicolumn{7}{l}{Panel B: Weekly} \\
\toprule
& \multicolumn{3}{c}{3-month} & \multicolumn{3}{c}{10-year} \\
\midrule
\multirow{2}[0]{*}{Const} & 0.136*** & 0.136*** & 0.140*** & 1.656** & 1.314** & 1.210* \\[-4pt]
& (0.04) & (0.04) & (0.04) & (0.67) & (0.66) & (0.66) \\
\midrule
Adj $R^2$ & 0.530 & 0.527 & 0.526 & 0.866 & 0.875 & 0.876 \\
\bottomrule
\multicolumn{7}{p{0.95\textwidth}}{*This is a comment.}
\end{tabular*} \label{tab:var_weekly}%
\normalsize
\end{table}}
\end{document}
如果我注释掉最后一行,输出如下。
答案1
您的评论看起来非常像表格注释,那么为什么不简单地使用threeparttable
?
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{
a4paper,
top= 20mm,
left=20mm,
right=20mm,
headheight=5mm,
}
\usepackage{pdflscape}
\usepackage{pbox}
\usepackage{booktabs}
\usepackage{lscape,longtable,array}
\usepackage{multirow}
\usepackage{threeparttable}
\usepackage{afterpage}
\newlength\tmplen
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\title{}
\author{}
\begin{document}
\clearpage
\afterpage{
\begin{table}[!p]
\centering
\begin{threeparttable}
\caption{results}
\footnotesize
\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}}lllllll}
\toprule
\multicolumn{7}{l}{Panel A: Daily} \\
\toprule
& \multicolumn{3}{c}{3-month} & \multicolumn{3}{c}{10-year} \\
\midrule
\multirow{2}[0]{*}{Const} & 0.039\tnote{***} & 0.049\tnote{***} & 0.045\tnote{***} & 0.039\tnote{*} & 0.048\tnote{**} & 0.040\tnote{*} \\[-0.5ex]
& (0.01) & (0.01) & (0.01) & (0.02) & (0.02) & (0.02) \\
\midrule
Adj $R^2$ & 0.645 & 0.643 & 0.646 & 0.980 & 0.980 & 0.980 \\
\bottomrule
\\ [3mm]
\toprule
\multicolumn{7}{l}{Panel B: Weekly} \\
\toprule
& \multicolumn{3}{c}{3-month} & \multicolumn{3}{c}{10-year} \\
\midrule
\multirow{2}[0]{*}{Const} & 0.136\tnote{***} & 0.136\tnote{***} & 0.140\tnote{***} & 1.656\tnote{**} & 1.314\tnote{**} & 1.210\tnote{*} \\[-0.5ex]
& (0.04) & (0.04) & (0.04) & (0.67) & (0.66) & (0.66) \\
\midrule
Adj $R^2$ & 0.530 & 0.527 & 0.526 & 0.866 & 0.875 & 0.876 \\
\bottomrule%
\end{tabular*} \label{tab:var_weekly}%
\begin{tablenotes}[flushleft]
\item[*]This is a comment.
\item[**]This is another comment.
\item[***]This is a last comment.
\end{tablenotes}
\end{threeparttable}
\end{table}}
\end{document}
答案2
您已使用
\multicolumn{7}{p{0.95\textwidth}}{*This is a comment.}
这意味着表格的自然宽度已经几乎是整个宽度,因此几乎不需要拉伸就可以\extracolsep
使其达到整个宽度,因此列之间几乎没有添加额外的空间。
你可以使用
\multicolumn{7}{l}{*This is a comment.}
或者更好的办法是,将此评论作为一个段落放在表格之后,而不是表格内部。
答案3
好的,所以您确实需要一个段落条目。一种解决方案是使用tabularx
环境和x
段落的列类型。
不过,我喜欢一个技巧:让 extra-colsep收缩适合而不是伸展
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\columnwidth}{@{\extracolsep{210pt minus 200pt}}lllllll}
\toprule
\multicolumn{7}{l}{Panel A: Daily} \\
...
\midrule
\multicolumn{7}{p{\columnwidth}}{*This is a comment.}
\end{tabular*}
其他一些细节如下:
您(和我)的使用
@{}
会影响列间距,使得某些条目相对于其他条目缩进,因此这会将其设置为零\tabcolsep
并使用\extracolsep
作为间距。\midrule
我根据下面的评论修改了最后一条规则。注释宽度应为,
\columnwidth
因为这是tabular*
使用的。如果\tabcolsep
为零,注释段落将占用整个\columnwidth
,否则将是\columnwidth-2\tabcolsep
。如果不设置
\tabcolsep
为零,那么@{}
开头应该提供它,例如@{\hspace{\tabcolsep}\extracolsep{200pt minus 200pt}}