Ajustar texto para todas las columnas en una tabla horizontal

Ajustar texto para todas las columnas en una tabla horizontal

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}

ingrese la descripción de la imagen aquí

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 booktabspaquete (¡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}

ingrese la descripción de la imagen aquí

Respuesta2

Algunas mejoras, utilizando tabularxpara 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} 

ingrese la descripción de la imagen aquí

Respuesta3

Como ya estás cargando, tabularyes 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}

información relacionada