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: ¿
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 L
especificador c
que 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 tabularx
aquí:
% 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}