Tengo la siguiente tabla a continuación y me gustaría ajustar el texto en cada columna para que la tabla no exceda el ancho de la página. He probado varias soluciones pero parecen reducir la tabla.
¿Puede aconsejarme? He incluido mi código y una captura de pantalla de cómo se ve el resultado actualmente.
¡Gracias!
\documentclass[a4paper,11pt]{article}
\usepackage{tabulary}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{pdflscape,afterpage,booktabs,caption}
\begin{document}
\begin{landscape}% Landscape page
\begin{table}[ht]
\caption{Table test - contents of table exceeds page width}
\setlength\tabcolsep{3pt}
\centering
\small
% your table
\hspace*{-18mm}%
\begin{tabular}{cccc}
\hline\hline
Column 1&Column 2&Column 3\\ [0.5ex]
\hline
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
\hline
\end{tabular}%
\hspace*{-12mm}%
\label{table:comparison of techniques}
\end{table}
\end{landscape}
\end{document}
Respuesta1
Puede utilizar el p{}
especificador de columna, con el que puede establecer explícitamente el ancho de la columna. Además, dado que ya cargaste el booktabs
paquete (¡incluso dos veces!), deberías usarlo:
\documentclass[a4paper,11pt]{article}
\usepackage{tabulary}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{pdflscape,afterpage,caption}
\begin{document}
\begin{landscape}% Landscape page
\begin{table}[ht]
\caption{Table test -- contents of table exceeds page width}
\setlength\tabcolsep{3pt}
\centering
\small
% your table
\hspace*{-18mm}%
\begin{tabular}{ l p{60mm} p{60mm} p{60mm} }
\toprule
Column 1&Column 2&Column 3&Column 4\\ [0.5ex]
\midrule
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
\bottomrule
\end{tabular}%
\hspace*{-12mm}%
\label{table:comparison of techniques}
\end{table}
\end{landscape}
\end{document}
Respuesta2
Algunas mejoras, utilizando tabularx
para que la tabla tenga exactamente el ancho del texto de una página horizontal y algo más de espacio entre filas:
\documentclass[a4paper,11pt]{article}
\usepackage{tabularx}
\usepackage{booktabs,caption, makecell}
\usepackage{pdflscape,afterpage}
\renewcommand{\theadfont}{\normalsize\bfseries}
\begin{document}
\begin{landscape}% Landscape page
\begin{table}[ht]
\caption{Table test - contents of table exceeds page width}
\centering
\small
\begin{tabularx}{\linewidth}{@{}l*{3}{>{\arraybackslash}X}}
\toprule\midrule[0.5pt]
& \thead{Column 1} & \thead{Column 2} & \thead{Column 3} \\
\midrule
Item 1 & item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1, item 1,item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1 \\
\addlinespace
Item 1 & item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1, item 1,item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1 \\
\addlinespace
Item 1 & item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1, item 1,item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1 \\
\addlinespace
Item 1 & item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1, item 1,item 1, item 1, item 1, item 1, item 1, item 1 & item 1, item 1, item 1, item 1 \\
\bottomrule
\end{tabularx}%
\hspace*{-12mm}%
\label{table:comparison of techniques}
\end{table}
\end{landscape}
\end{document}
Respuesta3
Como ya estás cargando, tabulary
es posible que desees beneficiarte de sus columnas de ancho flexible para crear una tabla que utilice toda la altura del bloque de texto:
\documentclass[a4paper,11pt]{article}
\usepackage{tabulary}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{pdflscape,afterpage,caption}
\begin{document}
\begin{landscape}% Landscape page
\begin{table}[ht]
\caption{Table test - contents of table exceeds page width}
\setlength\tabcolsep{3pt}
\centering
\small
% your table
\hspace*{-18mm}%
\begin{tabulary}{\linewidth}{cCCC}
\toprule
Column 1&Column 2&Column 3\\ [0.5ex]
\midrule
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
Item 1&item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1, item 1&item 1, item 1, item 1, item 1, item 1,item 1 ,item 1 ,item 1 ,item 1 ,item 1 ,item 1&item 1, item 1, item 1, item 1\\
\bottomrule
\end{tabulary}%
\hspace*{-12mm}%
\label{table:comparison of techniques}
\end{table}
\end{landscape}
\end{document}