La tabla aún es demasiado ancha al usar \textwidth y tabulary

La tabla aún es demasiado ancha al usar \textwidth y tabulary

Alto a todos,

Tengo el problema de que ciertas tablas, como la que voy a citar aquí, van más allá del ancho de texto aunque uso las opciones \textwidth con tabulary.

La tabla tiene el siguiente código:

\usepackage{tabulary}
\usepackage{tabularx}
\begin{table}[htbp]
   \centering
  \caption{Categorization of cantons}
  \scriptsize
    \begin{tabulary}{\textwidth}{|L|L|L|L|L|}
    \hline
    \multicolumn{1}{|c|}{\textbf{Central Switzerland (C)}} & \multicolumn{1}{c|}{\textbf{High Alps (HA)}} & \multicolumn{1}{c|}{\textbf{Northeast Switzerland (NE)}} & \multicolumn{1}{c|}{\textbf{Northwest Switzerland (NW)}} & \multicolumn{1}{c|}{\textbf{West Switzerland (W)}} \bigstrut\\
    \hline
    Lucerne (LU) & Grisons (GR) & Glarus (GL) & Zurich (ZH) & Fribourg (FR) \bigstrut[t]\\
    Central Switzerland (C) & Tessin (TI) & Schaffhausen (SH) & Solothurn (SO) & Vaud (VD) \\
    & Valais (VS) & Appenzell (AP) & Basel-Stadt (BS) & Neuchâtel (NE) \\
     &       & St. Gallen (SG) & Basel-Land (BL) & Geneva (GE) \\
     &       & Thurgau (TG) & Aargau (AG) &  \bigstrut[b]\\
    \hline
    \end{tabulary}%
    \vspace{5pt}
    \captionsetup{font={scriptsize}}
    \caption*{Source: Eidgenössischer Turnverein (1869), p. 67-69, own illustration}
  \label{tab:addlabel}%
\end{table}%

Aquí hay una imagen de la tabla: ¿ Mesa demasiado ancha
Cómo puedo hacer que el ancho de la tabla se ajuste automáticamente al ancho del texto? No me importa si la primera fila (es decir, Suiza central, Altos Alpes, etc.) tendría que comprimirse en dos líneas siempre que haga que la tabla se ajuste al ancho del texto. ¿Existe algún comando que logre hacer eso y que pueda usar fácilmente para tablas futuras?

¡Muchas gracias por su ayuda!

Respuesta1

Publique siempre documentos completos que muestren todos los paquetes utilizados. Supuse que su código tenía varios comandos no definidos por los paquetes, así que los eliminé aquí. El principal problema fue que anuló el Lespecificador cque no permite saltos de línea, por lo que obligó a que todas las entradas fueran demasiado anchas.

\documentclass[a4paper]{article}
\usepackage{tabulary}
\begin{document}

\begin{table}[htbp]
   \centering
  \caption{Categorization of cantons}
  \scriptsize
    \begin{tabulary}{\textwidth}{|L|L|L|L|L|}
    \hline
    \centering\textbf{Central Switzerland (C)} & 
\centering\textbf{High Alps (HA)} & 
\centering\textbf{Northeast Switzerland (NE)} & 
\centering\textbf{Northwest Switzerland (NW)} &
\centering\textbf{West Switzerland (W)}\tabularnewline
    \hline
    Lucerne (LU) & Grisons (GR) & Glarus (GL) & Zurich (ZH) & Fribourg (FR) \\
    Central Switzerland (C) & Tessin (TI) & Schaffhausen (SH) & Solothurn (SO) & Vaud (VD) \\
    & Valais (VS) & Appenzell (AP) & Basel-Stadt (BS) & Neuchâtel (NE) \\
     &       & St. Gallen (SG) & Basel-Land (BL) & Geneva (GE) \\
     &       & Thurgau (TG) & Aargau (AG) &  \\
    \hline
    \end{tabulary}%
    \vspace{5pt}
%    \captionsetup{font={scriptsize}}
    \caption{Source: Eidgenössischer Turnverein (1869), p. 67-69, own illustration}
  \label{tab:addlabel}%
\end{table}%

\end{document}

Respuesta2

Si desea tener todas las columnas con el mismo ancho y utilizar el ancho máximo de su texto, debe ir tabularxaquí:

% arara: pdflatex

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{booktabs, tabularx, threeparttable}
\usepackage{ragged2e, array}
\newcolumntype{Z}{>{\raggedright\arraybackslash}X}
\usepackage{microtype}

\begin{document}
\begin{table}[htbp]
    \centering
    \begin{threeparttable}
    \caption{Categorization of cantons}
    \begin{tabularx}{\textwidth}{*{5}{Z}}
        \toprule
        \textbf{Central Switzerland~(C)} &\textbf{High Alps~(HA)} & \textbf{Northeast Switzerland~(NE)} & \textbf{Northwest Switzerland~(NW)} & \textbf{West Switzerland~(W)} \\
        \midrule
        Lucerne~(LU) & Grisons~(GR) & Glarus~(GL) & Zurich~(ZH) & Fribourg~(FR) \\
        Central Switzerland~(C) & Tessin~(TI) & Schaff\-hau\-sen~(SH) & So\-lo\-thurn~(SO) & Vaud~(VD) \\
        & Valais (VS) & Appen\-zell~(AP) & Basel-Stadt (BS) & Neu\-châ\-tel~(NE) \\
        &       & St.~Gal\-len~(SG) & Basel-Land (BL) & Geneva~(GE) \\
        &       & Thurgau~(TG) & Aargau~(AG) & \\
        \bottomrule
    \end{tabularx}
    \begin{tablenotes}
    \item Source: Eidgenössischer Turnverein (1869), p.~67-69, own illustration
    \end{tablenotes}
    \end{threeparttable}
    \label{tab:addlabel}%
\end{table}%
\end{document}

ingrese la descripción de la imagen aquí

información relacionada