Righe della tabella troppo larghe
Ho creato un tavolo che sembra carino. Tuttavia, per alcune righe con testo lungo non viene rappresentato correttamente nella tabella Latex.
Sfortunatamente, stanno uscendo dalla larghezza del blocco di testo. C'è un modo per avvolgere automaticamente in base alla lunghezza?
\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}
Qui come posso racchiudere il testo per la riga contenente il testo "anni di istruzione, anni di istruzione, anni di istruzione, anni di istruzione, anni di istruzione"?
Risposte
Facendo eco al commento precedente di @leandriis, vorrei consigliarti di passare da a tabular
a un tabularx
ambiente e di utilizzare il X
tipo di colonna per la seconda colonna per consentire l' interruzione di riga automatica. Dovresti sentirti libero di impostare una larghezza complessiva diversa da \textwidth
; nell'esempio seguente, utilizzo 0.8\textwidth
.
Inoltre, vorrei suggerire di (a) utilizzare l'allineamento a sinistra piuttosto che il centraggio per entrambe le colonne, (b) fornire più struttura nella tabella posizionando le quattro variabili fittizie in un gruppo e dare loro un'intestazione secondaria e (c) utilizzare una rientranza sporgente nella seconda colonna per migliorare la leggibilità.
Opzionalmente, si può decidere di (d) omettere tutte le regole verticali e utilizzare alcune delle macro utente del booktabs
pacchetto - \toprule
, \midrule
, \bottomrule
, e \addlinespace
- per dare al tavolo un "look" più aperto e invitante.
Separatamente, penso che sembri un po 'sciatto usare un nome di variabile come \textit{ln(wage)}
. IMNSHO, $\ln(\textit{wage})$
è da preferire in quanto utilizza lettere verticali per "ln" e parentesi verticali.

\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 per affrontare la domanda successiva dell'OP: l'istruzione
\begin{tabularx}{0.8\textwidth}{@{} l L @{}}
avvia un tabularx
ambiente la cui larghezza complessiva è 0.8\textwidth
e che contiene 2 colonne. La prima colonna è di tipo l
, che è un tipo di colonna LaTeX di base, per colonne il cui contenuto deve essere allineato a sinistra senza interruzioni di riga, e la seconda è di tipo L
. Il L
tipo di colonna è definito in precedenza nella risposta tramite una \newcolumntype
direttiva. Il L
tipo di colonna è derivato dal X
tipo di colonna che, a sua volta, è definito nel tabularx
pacchetto come derivato del p
tipo di colonna più semplice . Per i nostri scopi, le due caratteristiche principali del X
tipo di colonna sono (i) consente automaticamente l'interruzione di riga secondo necessità (a differenza del l
tipo di colonna) e (ii) la sua larghezza è calcolata dinamicamente da LaTeX come residuo, vale a dire. , come la differenza tra la larghezza complessiva o di destinazione tabularx
dell'ambiente (qui:) 0.8\textwidth
da un lato e le larghezze di tutte le altre colonne che possono essere presenti (qui: solo 1 colonna, la cui cella più larga è impostata dalla parola \vn{married}
) più qualsiasi spazio bianco intercolonna d'altra parte. (Il L
tipo di colonna differisce dal X
tipo di colonna sottostante in due modi: compone il suo contenuto irregolare a destra invece che completamente giustificato, e implementa un "rientro sporgente", a partire dalla seconda riga della cella.) Infine, le due @{}
particelle servono per sopprimere la spaziatura interna degli spazi che altrimenti verrebbe inserita a sinistra della prima colonna ea destra della colonna finale.