threeparttable - добавление команд в \TPTnoteSettings не работает, если пакет вызван с опцией flushleft

threeparttable - добавление команд в \TPTnoteSettings не работает, если пакет вызван с опцией flushleft

В tablenotesсреде, определяемой пакетом threeparttable, мне хотелось изменить размер заметок глобально по всему документу.

Я нашел ответ на вопрос, заданный кем-то в связи с похожей проблемой:Использование \apptoиз etoolboxпакета для добавления к\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}

введите описание изображения здесь

Связанный контент