threeparttable 中的表格注释未对齐

threeparttable 中的表格注释未对齐

对此很陌生。写过类似这样的内容:

\begin{threeparttable}

..... table contents....


\end{tabular}
   \begin{tablenotes}[flushleft]
     \small
\item table comment 1
\item table comment 2
\item blah blah comment 3
   \end{tablenotes}
 \end{threeparttable}

我希望注释与表格的左边缘齐平,它已经做到了,但它对齐错了——每个注释第一行的第一个字符前有一个空格,第二行则靠左对齐。

看起来像这样:

    table comment 1..........

 table 1 comment continued (spans two lines)

    table comment 2

我希望音符在左边排列成一条直线。

另外,有没有办法在笔记之间留出一个小间隙?谢谢您的帮助!

答案1

\item[<marker>]不带可选标记参数时默认使用空标记。标记放入\tnote,或多或少是 的包装器\textsuperscript(数学模式下的空上标)。然后\item附加空格\labelsep

简而言之,我们有:$^{}$\kern\labelsep

第一个添加空格\scriptspace(参见“The TeXbook”,“附录 G. 从公式生成框”,规则 18c)。数量为 0.5 pt。\labelsep0.2em约 2 pt。因此,整体空间约为 2.5 pt。

因此可以通过以下方式删除该空间:

\item
  \leavevmode
  \kern-\scriptspace
  \kern-\labelsep

下面的示例还通过修补在音符之间添加了一些垂直空间\TPTdoTablenotes

\documentclass{article}
\usepackage{threeparttable}
\usepackage{etoolbox}

\makeatletter
\patchcmd\TPTdoTablenotes{%
  \TPTnoteSettings
}{%
  \TPTnoteSettings
  \setlength{\itemsep}{2ex}%
}{}{\errmessage{Patching \noexpand\TPTdoTablenotes failed}}
\makeatother

\begin{document}
\begin{threeparttable}
\begin{tabular}{ll}
1&a\tnote{a}\\2&b\tnote{b}\\3&c\\
\hline
\end{tabular}
\begin{tablenotes}[flushleft]
\small
\item[a] table comment~1
\item[b] table comment~2
\item \leavevmode\kern-\scriptspace\kern-\labelsep table comment~3
\end{tablenotes}
\end{threeparttable}
\end{document}

结果

答案2

我已经将 Heiko Oberdiek 的回答调整为更简单的答案惯于可以正常工作。Heiko指出的\tnote神奇数字来自2.49997\scriptspace + \labelsep

我所做的就是设置标签缩进更改为负值并添加\\到行尾以获取额外空间,但可以使用任何垂直间距(如\vspace{0.5pt)。

这并不好看,我强烈建议你使用booktabs包以获得更好的表格。

labelsep 向左

\documentclass{article}
\usepackage{threeparttable}
\begin{document}
\begin{table}[]
\begin{threeparttable}
\begin{tabular}{|c|c|c|}
\hline 
something &  &  something else \\ 
\hline 
 & & \\ 
\hline 
\end{tabular}
   \begin{tablenotes}[flushleft]
        { %this is to restrict the following commands to this group of tablenotes
        \setlength{\itemindent}{-2.49997pt}
        \small
\item table comment 1 \\
\item table comment 2, a very very very very long comment \\
\item blah blah comment 3 %if you supress the \\ then lines have default spacing
\item blah blah comment 4
} %end the group
   \end{tablenotes}
 \end{threeparttable}
 \end{table}
\end{document

相关内容