Baris tabel terlalu lebar

Aug 20 2020

Saya telah membuat tabel yang terlihat bagus. Namun, untuk beberapa baris yang memiliki teks panjang tidak terwakili dengan benar dalam tabel Latex.

Sayangnya, mereka keluar dari lebar textblock. Apakah ada cara untuk membungkus secara otomatis berdasarkan panjangnya?

\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}

Di sini bagaimana saya bisa membungkus teks untuk baris yang memiliki teks "tahun pendidikan, tahun pendidikan, tahun pendidikan, tahun pendidikan, tahun pendidikan"?

Jawaban

2 Mico Aug 20 2020 at 14:00

Menggemakan komentar sebelumnya @leandriis, saya ingin merekomendasikan Anda beralih dari lingkungan tabularke tabularxlingkungan dan menggunakan Xjenis kolom untuk kolom kedua untuk memungkinkan pemutusan baris otomatis. Anda harus merasa bebas untuk mengatur lebar keseluruhan selain \textwidth; pada contoh di bawah ini, saya menggunakan 0.8\textwidth.

Selain itu, saya ingin menyarankan agar Anda (a) menggunakan perataan kiri daripada memusatkan kedua kolom, (b) menyediakan lebih banyak struktur dalam tabel dengan menempatkan empat variabel dummy dalam grup dan memberinya sub-header , dan (c) menggunakan lekukan gantung di kolom kedua untuk meningkatkan keterbacaan.

Opsional, Anda mungkin ingin (d) menghilangkan semua aturan vertikal dan menggunakan beberapa macro pengguna dari booktabspaket - \toprule, \midrule, \bottomrule, dan \addlinespace- untuk memberikan meja yang lebih terbuka dan mengundang "terlihat".

Secara terpisah, menurut saya akan terlihat agak ceroboh untuk menggunakan nama variabel seperti \textit{ln(wage)}. IMNSHO, $\ln(\textit{wage})$lebih disukai karena menggunakan huruf tegak untuk "ln" serta tanda kurung tegak.

\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}

Tambahan untuk mengatasi permintaan tindak lanjut OP: Instruksi

\begin{tabularx}{0.8\textwidth}{@{} l L @{}} 

memulai tabularxlingkungan yang lebar keseluruhannya 0.8\textwidthdan yang berisi 2 kolom. Kolom pertama adalah tipe l, yang merupakan tipe kolom LaTeX dasar, untuk kolom yang isinya harus rata kiri tanpa pemutusan garis, dan yang kedua adalah tipe L. The Ljenis kolom didefinisikan sebelumnya dalam jawabannya melalui \newcolumntypedirektif. The Lkolom jenis ini berasal dari Xjenis kolom yang, pada gilirannya, didefinisikan dalam tabularxpaket sebagai turunan dari lebih mendasar pjenis kolom. Untuk tujuan kita, dua karakteristik utama dari Xtipe kolom adalah (i) secara otomatis memungkinkan pemutusan garis sesuai kebutuhan (tidak seperti ltipe kolom) dan (ii) lebarnya dihitung secara dinamis oleh LaTeX sebagai residual, yaitu. , sebagai perbedaan antara lebar keseluruhan atau target dari tabularxlingkungan (di sini 0.8\textwidth:) di satu sisi dan lebar semua kolom lain yang mungkin ada (di sini: hanya 1 kolom, yang sel terluasnya diatur oleh kata \vn{married}) ditambah spasi kosong antar kolom di sisi lain. ( LJenis kolom berbeda dari Xjenis kolom yang mendasari dalam dua cara: Ini mengeset isinya ragged-right daripada benar-benar dibenarkan, dan ini menerapkan "indentasi gantung", dimulai dengan baris kedua sel.) Akhirnya, kedua @{}partikel berfungsi untuk menekan padding spasi yang seharusnya disisipkan di kiri kolom pertama dan di kanan kolom terakhir.