표 행이 너무 넓음

Aug 20 2020

멋지게 보이는 테이블을 만들었습니다. 그러나 긴 텍스트가있는 일부 행의 경우 Latex 테이블에서 제대로 표시되지 않습니다.

불행히도 그들은 텍스트 블록의 너비를 벗어나고 있습니다. 길이에 따라 자동으로 감싸는 방법이 있나요?

\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하려면 a에서 tabularx환경으로 전환 X하고 두 번째 열에 열 유형을 사용하는 것이 좋습니다 . 다른 전체 너비를 자유롭게 설정해야합니다 \textwidth. 아래 예에서는 0.8\textwidth.

또한, (a) 두 열에 대해 중앙 정렬 대신 왼쪽 정렬을 사용하고, (b) 4 개의 더미 변수를 그룹에 배치하고 하위 헤더를 제공하여 테이블에 더 많은 구조를 제공 할 것을 제안하고 싶습니다. , 및 (c) 두 번째 열에내어 쓰기를 사용하여 가독성을 높입니다.

선택적으로, 모든 수직 규칙을 생략 (D)에 원하고의 사용자 매크로의 일부 사용할 수 있습니다 booktabs패키지 - \toprule, \midrule, \bottomrule,와 \addlinespace- 테이블에게보다 개방적이고 초대 "모양"을 제공하기를.

이와는 별도로 .NET과 같은 변수 이름을 사용하는 것이 약간 엉성해 보인다고 생각합니다 \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\textwidth2 개 열을 포함 하는 환경을 시작합니다 . 첫 번째 열은 l내용이 줄 바꿈없이 왼쪽 정렬되어야하는 열에 대한 기본 LaTeX 열 유형 인 유형 이고 두 번째 열은 유형 L입니다. L열 유형은을 통해 이전의 대답에 정의 \newcolumntype지시어. L열 타입으로부터 파생 X차례로, 정의되어, 열 유형 tabularx보다 염기성의 유도체로서 패키지 p열 유형. 우리의 목적을 위해 X열 유형 의 두 가지 주요 특성 은 (i) 필요에 따라 자동으로 줄 바꿈을 허용 l하고 (열 유형 과 달리 ) (ii) LaTeX에 의해 그 너비가 잔차, 잔차로 동적으로 계산된다는 것 입니다. , tabularx환경 의 전체 또는 대상 너비 (여기 0.8\textwidth:)와 존재할 수있는 다른 모든 열의 너비 (여기 : 단어로 가장 넓은 셀이 설정된 열 1 개 \vn{married})와 반면에 열간 공백. ( 열 유형은 두 가지 측면에서 L기본 열 유형과 다릅니다 X. 내용이 완전히 정렬되지 않고 오른쪽으로 정렬되며 셀의 두 번째 행부터 시작하여 "매달려 들여 쓰기"를 구현합니다.) 마지막으로 두 @{}입자가 제공됩니다. 그렇지 않으면 첫 번째 열의 왼쪽과 마지막 열의 오른쪽에 삽입되는 공백 패딩을 억제합니다.