\tnote 后吞噬的空间

\tnote 后吞噬的空间

我用它threeparttable来向表格中添加表格注释tabu*。一个常见的用例是在单元格末尾添加注释。但是,如果注释未添加到单元格的最后一个单词,则后面的空间将被吞噬。

enter image description here

可以\hspace在注释后面添加一个,如第三行所示。此外,作为全局解决方法,可以在\tnote命令的定义中添加一个空格:

\renewcommand{\tnote}[1]{\protect\TPToverlap{\textsuperscript{\TPTtagStyle{#1}}}~}% 

\footnote前一种解决方案在某种程度上是可以接受的,而后一种解决方案则有点老套。有没有更好的方法来实现不是吞咽空间?

 

\documentclass{article}
\usepackage{booktabs}
\usepackage{tabu}
\usepackage{threeparttable}

\usepackage{xpatch}
\makeatletter
\chardef\TPT@@@asteriskcatcode=\catcode`*
\catcode`*=11
\xpatchcmd{\threeparttable}
  {\TPT@hookin{tabular}}
  {\TPT@hookin{tabular}\TPT@hookin{tabu}}
  {}{}
\catcode`*=\TPT@@@asteriskcatcode
\makeatother

\begin{document}
\centering
\begin{threeparttable}
    \begin{tabu} to .4\textwidth {XX}
        a & b\tnote{*} and c                \\\toprule
        1 & {2\tnote{*}}{~and 3}            \\
        4 & 5\tnote{*}\hspace{1.5ex}and 6   \\\bottomrule
    \end{tabu}
    \begin{tablenotes}
        \footnotesize
        \item[*] The table note.
    \end{tablenotes}
\end{threeparttable}
\end{document}

(*)这得益于@egreg 的补丁

答案1

threeparttable定义\tnote使得它所排版的符号不会影响单元格的宽度,这就是 的含义\TPToverlap

我建议保持\tnote原样(对于出现在单元格文本末尾的注释)并定义

\newcommand{\mtnote}[1]{\textsuperscript{\TPTtagStyle{#1}}}

为“中调”。

相关内容