Rangées de tableau trop larges
J'ai créé une table qui a l'air bien. Cependant, pour certaines lignes, le texte long n'est pas représenté correctement dans le tableau Latex.
Malheureusement, ils sortent de la largeur du bloc de texte. Existe-t-il un moyen d'envelopper automatiquement en fonction de la longueur?
\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}
Ici, comment puis-je envelopper le texte de la ligne contenant le texte "années d'éducation, années d'éducation, années d'éducation, années d'éducation, années d'éducation"?
Réponses
Faisant écho au commentaire précédent de @leandriis, je voudrais vous recommander de passer d'un environnement tabularà un tabularxenvironnement et d'utiliser le Xtype de colonne pour la deuxième colonne afin de permettre le saut de ligne automatique. Vous devriez vous sentir libre de définir une largeur totale autre que \textwidth; dans l'exemple ci-dessous, j'utilise 0.8\textwidth.
De plus, j'aimerais vous suggérer (a) d'utiliser l'alignement à gauche plutôt que de centrer pour les deux colonnes, (b) de fournir plus de structure dans le tableau en plaçant les quatre variables factices dans un groupe et de leur donner un sous-en-tête et (c) utiliser une indentation suspendue dans la deuxième colonne pour améliorer la lisibilité.
En option, vous pouvez (d) omettre toutes les règles verticales et utiliser certaines des macros utilisateur du booktabspackage - \toprule, \midrule, \bottomruleet \addlinespace- pour donner la table un « look » plus ouvert et accueillant.
Par ailleurs, je pense qu'il semble un peu bâclé d'utiliser un nom de variable tel que \textit{ln(wage)}. IMNSHO, $\ln(\textit{wage})$doit être préféré car il utilise des lettres verticales pour "ln" ainsi que des parenthèses 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}
Addendum pour répondre à la question de suivi du PO: l'instruction
\begin{tabularx}{0.8\textwidth}{@{} l L @{}}
lance un tabularxenvironnement dont la largeur totale est 0.8\textwidthet qui contient 2 colonnes. La première colonne est de type l, qui est un type de colonne LaTeX de base, pour les colonnes dont le contenu doit être aligné à gauche sans saut de ligne, et la seconde est de type L. Le Ltype de colonne est défini plus tôt dans la réponse via une \newcolumntypedirective. Le Ltype de colonne est dérivé du Xtype de colonne qui, à son tour, est défini dans le tabularxpackage comme un dérivé du ptype de colonne plus basique . Pour nos besoins, les deux principales caractéristiques du Xtype de colonne sont (i) il permet automatiquement le saut de ligne si nécessaire (contrairement au ltype de colonne) et (ii) sa largeur est calculée dynamiquement par LaTeX comme un résidu, à savoir. , comme la différence entre la largeur globale ou cible de l' tabularxenvironnement (ici 0.8\textwidth:) d'une part et les largeurs de toutes les autres colonnes éventuellement présentes (ici: juste 1 colonne, dont la cellule la plus large est définie par le mot \vn{married}) plus tout espace blanc intercolonne d'autre part. (Le Ltype de colonne diffère du Xtype de colonne sous-jacent de deux manières: il compose son contenu irrégulier à droite plutôt que complètement justifié, et il implémente une "indentation suspendue", en commençant par la deuxième ligne de la cellule.) Enfin, les deux @{}particules servent pour supprimer le remplissage d'espaces qui autrement serait inséré à gauche de la première colonne et à droite de la dernière colonne.