Problemas de tamanho de legenda e fonte com tabularx

Problemas de tamanho de legenda e fonte com tabularx

Esta tabela funciona bem. No entanto,

\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}

quando altero o tamanho da fonte, como na tabela a seguir,

\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}

Recebo a mensagem de erro:

Undefined control sequence. \end{tabularx}.

Além disso, não consigo adicionar uma legenda; se eu fizer,

\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}

Recebo uma lista de mensagens de erro:

! 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}
...

Resolvi o problema do título adicionando a linha \captionof{table}{\textbf{Inflation categories}}before \begin{tabularx}, mas a desvantagem é que o título e a tabela podem acabar em páginas diferentes.

Como posso resolver esses problemas?

EDITAR 1 Após as mensagens abaixo, esta é uma solução funcional:

\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}

Eu cometi um erro de digitação \footnotesizee tabularxpreciso ser encapsulado por table.

Responder1

Quando compilo o seguinte documento,

\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}

Eu recebi a seguinte mensagem de erro:

! Undefined control sequence.
<recently read> \footnosize 

l.11 \end{tabularx}

Assim, é \footnosize, e não \end{tabularx}, o objeto da denúncia. O que fazer? Caso não seja dolorosamente óbvio: mude \footnosizepara \footnotesize.

Presumo que você esteja ciente de que a \footnotesizediretiva não afeta a linha inteira, mas apenas a primeira célula da linha em questão.

Para aplicar a \captionnesta tabela, é necessário incorporar o tabularxambiente em um tableambiente, algo assim:

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

informação relacionada