threeparttable 的 tablenotes 中出现不需要的换行符

threeparttable 的 tablenotes 中出现不需要的换行符

我总体上对threeparttable,但即使我使用了该选项,表格注释中有时也会出现不必要的换行符para。例如,在下面的 MWE 中,“a”注释后有一个不必要的换行符。

我如何确保笔记之间不会出现换行符?

请注意,MWE 只是一个示例表,用于说明问题。更一般地,我可以通过逐步添加几个单词来生成这些不需要的换行符。(这表明一种解决方案是重新措辞笔记,但我宁愿不这样做。)

\documentclass{article}
\usepackage[para]{threeparttable}
\usepackage{tabularx}
\begin{document}
  \begin{table}
    \begin{threeparttable}
      \caption{Lorem ipsum dolor sit amet, consectetur}

      {
        \begin{tabularx}{\linewidth}{X r r}
          & \textbf{A} & \textbf{B} \\
          Lorem\tnote{a} ipsum\tnote{b} dolor\tnote{c} sit amet, consectetur adipisicing elit & 123 & 456
        \end{tabularx}
      }

      \begin{tablenotes}
        Note. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
        \item[a] Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
        \item[b] Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
        \item[c] Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      \end{tablenotes}
    \end{threeparttable}
  \end{table}
\end{document}

结果

答案1

这是一个功能,因此注释不会从行末开始。

我会将此视为一个建议,即使用可配置参数来控制注释的首行需要容纳多少内容。如果没有这种便利,您就只能重新定义宏。

\makeatletter
\def\TPT@doparanotes{\par
   \prevdepth\z@ \TPT@hsize
   \TPTnoteSettings
   \parindent\z@ \pretolerance 8
   \linepenalty 200
   \renewcommand\item[1][]{\relax\ifhmode \begingroup
       \unskip
       \penalty -45 \hskip\z@\@plus 10pt\penalty-19
       \hskip 25pt \penalty 9999 \hskip-25pt
       \hskip 1em\@plus3pt
      \endgroup\fi
      \tnote{##1}\,\ignorespaces}%
   \let\TPToverlap\relax
   \def\endtablenotes{\par}%
}
\makeatother

如果你绝对地需要一个齐平的右边距,它可能是

\makeatletter
\def\TPT@doparanotes{\par
   \prevdepth\z@ \TPT@hsize
   \TPTnoteSettings
   \parindent\z@ \pretolerance 8
   \linepenalty 200
   \renewcommand\item[1][]{\relax\ifhmode \begingroup
       \unskip
       \hskip 1em\@plus3pt
      \endgroup\fi
      \tnote{##1}\,\ignorespaces}%
   \let\TPToverlap\relax
   \def\endtablenotes{\par}%
}
\makeatother

相关内容