แถวของตารางกว้างเกินไป

Aug 20 2020

ฉันได้สร้างตารางที่ดูดี อย่างไรก็ตามสำหรับบางแถวที่มีข้อความยาวจะแสดงไม่ถูกต้องในตารางลาเท็กซ์

น่าเสียดายที่พวกเขากำลังออกจากความกว้างของบล็อกข้อความ มีวิธีห่อโดยอัตโนมัติตามความยาวหรือไม่?

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

ฉันจะตัดข้อความสำหรับแถวที่มีข้อความว่า "ปีการศึกษาปีการศึกษาปีการศึกษาปีการศึกษาปีการศึกษา" ได้อย่างไร

คำตอบ

2 Mico Aug 20 2020 at 14:00

สะท้อนความคิดเห็นก่อนหน้านี้ @leandriis' ผมอยากจะขอแนะนำให้คุณเปลี่ยนจากtabularกับtabularxสภาพแวดล้อมและการจ้างXประเภทคอลัมน์คอลัมน์ที่สองเพื่อที่จะอนุญาตให้มีการทำลายสายอัตโนมัติ คุณควรตั้งค่าความกว้างโดยรวมที่ไม่ใช่\textwidth; ในตัวอย่างด้านล่างฉันใช้0.8\textwidth.

นอกจากนี้ฉันต้องการแนะนำให้คุณ (ก) ใช้การจัดแนวด้านซ้ายแทนที่จะจัดกึ่งกลางสำหรับคอลัมน์ทั้งสอง (b) จัดเตรียมโครงสร้างเพิ่มเติมในตารางโดยการวางตัวแปรดัมมี่สี่ตัวในกลุ่มและให้ส่วนหัวย่อย และ (c) ใช้การเยื้องแขวนในคอลัมน์ที่สองเพื่อปรับปรุงความชัดเจน

หรือคุณอาจต้องการที่จะ (ง) ละเว้นกฎแนวตั้งและใช้บางส่วนของผู้ใช้แมโครของbooktabsแพคเกจ - \toprule, \midrule, \bottomruleและ\addlinespace- เพื่อให้ตารางเปิดกว้างมากขึ้นและเชิญชวน "มอง"

ฉันคิดว่าการใช้ชื่อตัวแปรเช่น\textit{ln(wage)}. ควรใช้ IMNSHO $\ln(\textit{wage})$เนื่องจากใช้ตัวอักษรตั้งตรงสำหรับ "ln" เช่นเดียวกับวงเล็บตั้งตรง

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

ภาคผนวกเพื่อตอบคำถามติดตามผลของ OP: คำแนะนำ

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

เริ่มต้นtabularxสภาพแวดล้อมที่มีความกว้างโดยรวม0.8\textwidthและประกอบด้วย 2 คอลัมน์ คอลัมน์แรกเป็นประเภทlซึ่งเป็นคอลัมน์ชนิดน้ำยางขั้นพื้นฐานสำหรับคอลัมน์ที่มีเนื้อหาควรจะจัดชิดซ้ายโดยไม่ต้อง linebreaking Lและที่สองเป็นประเภท Lคอลัมน์ชนิดถูกกำหนดไว้ก่อนหน้านี้ในคำตอบผ่านทาง\newcolumntypeคำสั่ง Lคอลัมน์ชนิดมาจากXคอลัมน์ชนิดซึ่งในที่สุดก็จะถูกกำหนดไว้ในtabularxแพคเกจที่เป็นอนุพันธ์ของพื้นฐานมากขึ้นpคอลัมน์ชนิด สำหรับวัตถุประสงค์ของเราลักษณะหลักสองประการของXประเภทคอลัมน์คือ (i) อนุญาตให้มีการแบ่งบรรทัดได้โดยอัตโนมัติตามต้องการ (ไม่เหมือนกับlประเภทคอลัมน์) และ (ii) ความกว้างของคอลัมน์จะคำนวณแบบไดนามิกโดย LaTeX เป็นส่วนที่เหลือได้แก่ เนื่องจากความแตกต่างระหว่างความกว้างโดยรวมหรือเป้าหมายของtabularxสภาพแวดล้อม (ที่นี่ :) 0.8\textwidthในด้านหนึ่งและความกว้างของคอลัมน์อื่น ๆ ทั้งหมดที่อาจมีอยู่ (ที่นี่: เพียง 1 คอลัมน์ซึ่งมีคำว่าเซลล์ที่กว้างที่สุดกำหนด\vn{married}) บวกด้วย ในทางกลับกันช่องว่างระหว่างคอลัมน์ ( Lประเภทคอลัมน์แตกต่างจากXประเภทคอลัมน์ที่อยู่ข้างใต้ใน 2 ลักษณะ: จะเรียงลำดับเนื้อหาแบบมอมแมม - ขวาแทนที่จะเป็นแบบสมบูรณ์และใช้ "การเยื้องแขวน" โดยเริ่มจากแถวที่สองของเซลล์) สุดท้าย@{}อนุภาคทั้งสองจะให้ เพื่อระงับช่องว่างช่องว่างที่อาจแทรกทางด้านซ้ายของคอลัมน์แรกและทางด้านขวาของคอลัมน์สุดท้าย