threeparttable - 如果使用 flushleft 选项调用包,则无法将命令附加到 \TPTnoteSettings

threeparttable - 如果使用 flushleft 选项调用包,则无法将命令附加到 \TPTnoteSettings

在包tablenotes定义的环境中threeparttable,我想在整个文档中全局调整注释的大小。

我找到了某人针对类似问题发布的问题的答案:使用\apptoetoolbox包中附加到\TPTnoteSettings

threeparttable现在事实证明:如果使用诸如 之类的选项调用,此解决方案将不起作用,flushleft请参阅 MWE。结果如下所示(请注意,表格下方的文本与表格中的文本大小相同): 脚注未变

将其与不使用任何选项或使用 调用包进行比较[normal],后者也有效:

当调用包时没有选项,文本较小。

\documentclass{scrartcl}

\usepackage{booktabs}
\usepackage[flushleft]{threeparttable}
\usepackage{etoolbox}

\appto\TPTnoteSettings{\footnotesize}

\begin{document}
  \begin{table}
    \begin{threeparttable}[b]
      \caption{A caption}
      \begin{tabular}{llll}
        \toprule
        42& some & text & to have room\\
        \bottomrule
      \end{tabular}
      \begin{tablenotes}
        \item the first note
      \end{tablenotes}
    \end{threeparttable}
  \end{table}
\end{document}

答案1

使用\TPT@defaults\g@addto@macro您不需要使用etoolbox):

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage[flushleft]{threeparttable}

\makeatletter 
\g@addto@macro\TPT@defaults{\footnotesize} 
\makeatother

\begin{document}
  \begin{table}
    \begin{threeparttable}[b]
      \caption{A caption}
      \begin{tabular}{llll}
        \toprule
        42& some & text & to have room\\
        \bottomrule
      \end{tabular}
      \begin{tablenotes}
        \item the first note
      \end{tablenotes}
    \end{threeparttable}
  \end{table}
\end{document}

在此处输入图片描述

相关内容