Las filas de la mesa son demasiado anchas
He creado una mesa que se ve bien. Sin embargo, para algunas filas que tienen texto extenso no se representa correctamente en la tabla de Latex.
Desafortunadamente, se están saliendo del ancho del bloque de texto. ¿Hay alguna forma de envolver automáticamente en función de la longitud?
\begin{table}[htbp]
\caption{Variable Descriptions}
\label{tab:2}
\begin{center}
\begin{tabular}{|c|c|}\hline
Variables & Descriptions\\\hline
\textit{ln(wage)} & log of wage\\
\textit{educ} & years of education, years of education, years of education, years of education, years of education\\
\textit{black} & 1 if black and 0 if not\\
\textit{hisp} & 1 if hispanic and 0 if not\\
\textit{exper} & years of experience\\
\textit{exper$^{2}$} & years of experience squared\\
\textit{married} & 1 if married and 0 if not\\
\textit{union} & 1 if belongs to a union and 0 if not\\\hline
\end{tabular}
\end{center}
\end{table}
Aquí, ¿cómo puedo ajustar el texto de la fila que tiene el texto "años de educación, años de educación, años de educación, años de educación, años de educación"?
Respuestas
Haciendo eco comentario anterior @leandriis', me gustaría recomendar que se cambia de una tabular
a un tabularx
medio ambiente y emplear el X
tipo de columna de la segunda columna con el fin de permitir los saltos de línea automático. No dude en establecer un ancho total distinto de \textwidth
; en el siguiente ejemplo, utilizo 0.8\textwidth
.
Además, me gustaría sugerir que (a) use la alineación a la izquierda en lugar de centrar para ambas columnas, (b) proporcione más estructura en la tabla al colocar las cuatro variables ficticias en un grupo y darles un subtítulo y (c) use sangría francesa en la segunda columna para mejorar la legibilidad.
Opcionalmente, es posible que desee (d) omitir todas las reglas verticales y utilizar algunas de las macros de usuario del booktabs
paquete - \toprule
, \midrule
, \bottomrule
, y \addlinespace
- para dar la mesa un "look" más abierto y acogedor.
Por separado, creo que parece un poco descuidado usar un nombre de variable como \textit{ln(wage)}
. IMNSHO, $\ln(\textit{wage})$
es preferible ya que usa letras verticales para "ln" así como paréntesis verticales.

\documentclass{article}
\usepackage{tabularx} % for 'tabularx' env. and 'X' col. type
\usepackage{ragged2e} % for \RaggedRight macro
\usepackage{booktabs} % for \toprule, \midrule etc macros
%% create a derivative column type called 'L':
\newcolumntype{L}{>{\RaggedRight\hangafter=1\hangindent=1.5em}X}
% How to typeset variable names:
\newcommand\vn[1]{\textit{#1}}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Variable Names and Descriptions\strut}
\label{tab:2}
\begin{tabularx}{0.8\textwidth}{@{} l L @{}}
\toprule
Name & Description\\
\midrule
$\ln(\vn{wage})$ & logarithm of wage\\
\vn{educ} & years of education, years of education, years of education, years of education, years of education\\
\vn{exper} & years of experience\\
\vn{exper$^{\,2}$}& years of experience squared\\
\addlinespace
\multicolumn{2}{@{}l}{Dummy variables:}\\
\vn{black} & 1 if black, 0 if not\\
\vn{hisp} & 1 if hispanic, 0 if not\\
\vn{married} & 1 if married, 0 if not\\
\vn{union} & 1 if belongs to a union, 0 if not\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
Anexo para abordar la consulta de seguimiento del OP: La instrucción
\begin{tabularx}{0.8\textwidth}{@{} l L @{}}
inicia un tabularx
entorno cuyo ancho total es 0.8\textwidth
y que contiene 2 columnas. La primera columna es de tipo l
, que es un tipo de columna básica de LaTeX, para columnas cuyo contenido debe estar alineado a la izquierda sin saltos de línea, y la segunda es de tipo L
. El L
tipo de columna se define anteriormente en la respuesta mediante una \newcolumntype
directiva. El L
tipo de columna se deriva del X
tipo de columna que, a su vez, se define en el tabularx
paquete como un derivado del p
tipo de columna más básico . Para nuestros propósitos, las dos características principales del X
tipo de columna son (i) permite automáticamente el salto de línea según sea necesario (a diferencia del l
tipo de columna) y (ii) su ancho es calculado dinámicamente por LaTeX como un residuo, a saber. , como la diferencia entre el ancho total o objetivo del tabularx
entorno (aquí :) 0.8\textwidth
por un lado y los anchos de todas las demás columnas que pueden estar presentes (aquí: solo 1 columna, cuya celda más ancha está establecida por la palabra \vn{married}
) más cualquier espacios en blanco entre columnas, por otro lado. (El L
tipo de columna difiere del X
tipo de columna subyacente de dos maneras: escribe su contenido irregular a la derecha en lugar de justificado completamente, e implementa "sangría colgante", comenzando con la segunda fila de la celda). Finalmente, las dos @{}
partículas sirven para suprimir el relleno de espacios en blanco que de otro modo se insertaría a la izquierda de la primera columna y a la derecha de la columna final.