我想创建一个这样的表格:
以下是代码:
\begin{table}[h]
\begin{threeparttable}
\caption{\textit{Sample Selection}}
\centering
\begin{tabular}{lcccccccc}
\toprule\toprule
& (I) & (II) & (III) & (IV) & (V) & (VI) & (VII) & (VIII) \\
Variables & ADA Model & GCONCERN Model & MEET Model & LOGFEES Model & ADA Model & GCONCERN Model & MEET Model & LOGFEES Model\\\midrule
NLEAD & 0.000& -0.037& 0.0301& 0.006&&&& \\
& (0.15) & (-0.16) & (0.35) & (0.36) &&&& \\
CLEAD &&&& 0.000 &-0.038 & -0.098 & 0.020 \\
&&&& (0.22) & (-0.21) & (-0.92) & (1.43) \\
Observations & 75,188 & 6,077 & 11,165 & 24,279 & 23,306 & 3,856 & 5,632 & 16,388\\
Adjusted $R^2$ & 0.045 & 0.149 & 0.026 & 0.694 & 0.041 & 0.155 & 0.027 & 0.711\\
\bottomrule
\end{tabular}
\begin{tablenotes}
\small
\item This is where authors provide additional information about
the data, including whatever notes are needed.
\end{tablenotes}
\end{threeparttable}
\end{table}
我正在使用 booktabs 和 caption 包。我遇到的一些问题如下:
- 尽管我得到了粗体表 7,但它不是大写的,也不在单独的行上
- 我的表格中有很多空格,因此无法在输出中看到完整的表格。如何减少列之间的间距?
- 我在 caption 和 toprule 以及 note 和 bottomrule 之间找到了空格。如何重新定义空格距离。我知道我可以使用 vspace,但我想重新定义 space 选项。谢谢。
答案1
这是一个(希望)几乎完整的解决方案,包括定义一个新的 display
标题样式,然后加载makecell
(允许在单元格中使用\\
),siunitx
根据 S
列类型垂直对齐小数点标记,更有趣的是,microtype
在标题中留出一些字母间距。
但结果并不完美,因为括号的位置不太好——我不得不在其中一个单元格中进行手动更正,但我认为这是可以接受的。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[lf, mathtabular]{MinionPro}
\usepackage[nomarginpar, textwidth = 15cm]{geometry}
\usepackage{array, threeparttable, booktabs, caption}
\usepackage{makecell}%
\usepackage{siunitx}%
\usepackage{microtype}
\DeclareCaptionFormat{display}{\textls*[250]{\bfseries\MakeUppercase{#1}}\\[0.8ex]#3}
\captionsetup{format=display, skip =-0.2ex}
\begin{document}
\setcounter{table}{6}
\begin{table}[h]
\centering\small%\renewcommand{\tabcolsep}{5pt}
\begin{threeparttable}
\caption{\textit{Sample Selection}}
%
\sisetup{table-figures-integer =1,table-figures-decimal =3, table-number-alignment=center, %
table-align-text-pre=false,table-align-text-post=false,table-space-text-pre={(}, table-space-text-post={)}}%, parse-numbers=false
\begin{tabular}{@{}l*{8}{S}@{}}
\toprule\toprule%
Variables & {\thead{(I)\\\emph{ADA}\\Model (1.43)}} &{\thead{(II)\\\emph{GCONCERN}\\Model}} & {\thead{(III)\\\emph{MEET}\\Model}} & {\thead{(IV)\\\emph{LOGFEES}\\Model}} & {\thead{(V)\\\emph{ADA}\\Model}} & {\thead{(VI)\\\emph{GCONCERN}\\Model}} & {\thead{(VII)\\\emph{MEET}\\Model}} & {\thead{(VIII)\\\emph{LOGFEES}\\Model}}\\
\midrule
\addlinespace
\emph{NLEAD} & 0.000 & -0.037 & 0.0301 & 0.006 & & & & \\%
&{(}0.15{)} & {(}-0.16{)}& {(}0.35{)} & {(}0.36{)} & & & & \\%
\addlinespace
\emph{CLEAD} & & & & & 0.000 & -0.038 & -0.098 & 0.020 \\
& & & & & {(}0.22{)} & {(}0.21{)} & {(}0.92{)} & {(\kern -0.025em}1.43{)} \\
\addlinespace
Observations & {75,188}&{6,077} & {11,165} & {24,279} & {23,306} & {3,856} & {5,632} & {16,388}\\
\addlinespace
Adjusted $R²$ & 0.045 & 0.149 & 0.026 & 0.694 & 0.041 & 0.155 & 0.027 & 0.711\\%
\addlinespace
\bottomrule
\end{tabular}
%
\begin{tablenotes}
\small
\item This is where authors provide additional information about
the data, including whatever notes are needed.
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
答案2
通过以下方式加载字幕包,我已经能够获得我想要的字幕:
\usepackage[bf,tablename=TABLE,labelsep=newline,aboveskip=0pt]{caption}
这里,bf 使标签“Table”变为粗体,tablename = TABLE 将默认标签更改为 TABLE,labelsep=newline 在新行开始标题,aboveskip=0pt 减少标题和 topmargin 之间的距离。
为了在表格下生成注释,我使用了 threeparttable 包。问题中的代码已更新以反映相同的内容。
仍在努力解决其他问题。