Tabellenzeilen zu breit
Ich habe eine Tabelle erstellt, die gut aussieht. Bei einigen Zeilen mit langem Text wird die Latex-Tabelle jedoch nicht richtig dargestellt.
Leider verlassen sie die Breite des Textblocks. Gibt es eine Möglichkeit, basierend auf der Länge automatisch zu wickeln?
\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}
Wie kann ich hier den Text für die Zeile mit dem Text "Bildungsjahre, Bildungsjahre, Bildungsjahre, Bildungsjahre, Bildungsjahre" umbrechen?
Antworten
In Anlehnung an den früheren Kommentar von @leandriis möchte ich empfehlen, dass Sie von einer tabularzu einer tabularxUmgebung wechseln und den Spaltentyp Xfür die zweite Spalte verwenden, um einen automatischen Zeilenumbruch zu ermöglichen. Sie können eine andere Gesamtbreite als festlegen \textwidth. Im folgenden Beispiel verwende ich 0.8\textwidth.
Darüber hinaus möchte ich vorschlagen, dass Sie (a) die linke Ausrichtung anstelle der Zentrierung für beide Spalten verwenden, (b) mehr Struktur in der Tabelle bereitstellen, indem Sie die vier Dummy-Variablen in einer Gruppe platzieren und ihnen eine Unterüberschrift geben und (c) eine hängende Einkerbung in der zweiten Spalte verwenden, um die Lesbarkeit zu verbessern.
Optional zu können Sie (d) alle vertikalen Regeln auslassen und einige der User - Makros des verwenden booktabsPaket - \toprule, \midrule, \bottomruleund \addlinespace- um der Tabelle einen offenen und einladenden „Look“ zu geben.
Unabhängig davon finde ich es etwas schlampig, einen Variablennamen wie zu verwenden \textit{ln(wage)}. IMNSHO $\ln(\textit{wage})$ist zu bevorzugen, da es sowohl aufrechte Buchstaben für "ln" als auch aufrechte Klammern verwendet.
\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}
Nachtrag zur Beantwortung der Folgeabfrage des OP: Die Anweisung
\begin{tabularx}{0.8\textwidth}{@{} l L @{}}
initiiert eine tabularxUmgebung mit einer Gesamtbreite von 0.8\textwidth2 Spalten. Die erste Spalte ist vom Typ l, ein grundlegender LaTeX-Spaltentyp, für Spalten, deren Inhalt ohne Zeilenumbruch linksbündig ausgerichtet werden soll, und die zweite ist vom Typ L. Der LSpaltentyp wird früher in der Antwort über eine \newcolumntypeDirektive definiert. Der LSpaltentyp wird vom XSpaltentyp abgeleitet , der wiederum im tabularxPaket als Ableitung des grundlegenderen pSpaltentyps definiert ist. Für unsere Zwecke sind die beiden Hauptmerkmale des XSpaltentyps (i) er ermöglicht automatisch das Unterbrechen von Zeilen nach Bedarf (im Gegensatz zum lSpaltentyp) und (ii) seine Breite wird von LaTeX dynamisch als Residuum berechnet, d. H. , als Differenz zwischen der Gesamt- oder Zielbreite der tabularxUmgebung (hier 0.8\textwidth:) einerseits und den Breiten aller anderen vorhandenen Spalten (hier: nur 1 Spalte, deren breiteste Zelle durch das Wort festgelegt ist \vn{married}) plus einer beliebigen Zwischenspalten-Leerzeichen dagegen. (Der LSpaltentyp unterscheidet sich vom zugrunde liegenden XSpaltentyp in zweierlei Hinsicht: Er setzt seinen Inhalt eher unregelmäßig als vollständig gerechtfertigt und implementiert "hängende Einrückung", beginnend mit der zweiten Zeile der Zelle.) Schließlich @{}dienen die beiden Partikel um die Leerzeichenauffüllung zu unterdrücken, die andernfalls links von der ersten Spalte und rechts von der letzten Spalte eingefügt würde.