Проблемы с заголовками и размером шрифтов в tabularx

Проблемы с заголовками и размером шрифтов в tabularx

Эта таблица работает нормально. Однако,

\begin{tabularx}{\textwidth}{lllX}
    \toprule
    A & B & C & D\\
    \midrule

    A & B & C & aaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaa \\
    \hline

\end{tabularx}

когда я меняю размер шрифта, как в следующей таблице,

\begin{tabularx}{\textwidth}{lllX}
    \toprule
    A & B & C & D\\
    \midrule
    \footnosize
    A & B & C & aaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaa \\
    \hline
\end{tabularx}

Я получаю сообщение об ошибке:

Undefined control sequence. \end{tabularx}.

Кроме того, я не могу добавить подпись. Если я это сделаю,

\begin{tabularx}{\textwidth}{lllX}
    \toprule
    A & B & C & D\\
    \midrule
    \caption{ABC}
    A & B & C & aaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaa \\
    \hline
\end{tabularx}

Я получаю список сообщений об ошибках:

! You can't use `\hrule' here except with leaders.
\caption@hrule ->\hrule 
                        \@height \z@ 
l.167 \end{tabularx}

To put a horizontal rule in an hbox or an alignment,
you should use \leaders or \hrulefill (see The TeXbook).

! Missing number, treated as zero.
<to be read again> 
                   \vskip 
l.167 \end{tabularx}

A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)

! Illegal unit of measure (pt inserted).
<to be read again> 
                   \vskip 
l.167 \end{tabularx}
...

Я обошел проблему с заголовком, добавив строку \captionof{table}{\textbf{Inflation categories}}раньше \begin{tabularx}, но недостаток в том, что заголовок и таблица могут оказаться на разных страницах.

Как мне решить эту проблему?

ПРАВКА 1 После сообщений ниже, это рабочее решение:

\begin{table}
    \caption{ABC}
    \footnotesize
    \begin{tabularx}{\textwidth}{lllX}
    \toprule
    A & B & C & D\\
    \midrule

    A & B & C & aaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaa \\
    \hline
\end{tabularx}
\end{table}

У меня была опечатка, \footnotesizeи tabularxее нужно инкапсулировать в table.

решение1

Когда я составляю следующий документ,

\documentclass{article}
\usepackage{tabularx,booktabs}
\begin{document}
\begin{tabularx}{\textwidth}{lllX}
    \toprule
    A & B & C & D\\
    \midrule
    \footnosize
    A & B & C & aaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaaaaaa aaaaa aaaaa \\
    \hline
\end{tabularx}
\end{document}

Я получаю следующее сообщение об ошибке:

! Undefined control sequence.
<recently read> \footnosize 

l.11 \end{tabularx}

Таким образом, именно \footnosize, а не \end{tabularx}, является предметом жалобы. Что делать? На всякий случай, если это не совсем очевидно: измените \footnosizeна \footnotesize.

Полагаю, вы знаете, что \footnotesizeдиректива влияет не на всю строку, а только на первую ячейку рассматриваемой строки.

Чтобы применить \captionк этой таблице, необходимо встроить tabularxсреду в tableсреду, например так:

\begin{table}
\caption{Stuff} \label{tab:stuff}
\begin{tabularx}{\textwidth}{lllX}
...
\end{tabularx}
\end{table}

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