[text] LaTeX 테이블에서 텍스트를 줄 바꿈하는 방법은 무엇입니까?

LaTeX에서 몇 가지 테이블이 포함 된 보고서를 작성 중입니다. 테이블의 셀 데이터가 페이지 너비를 초과함에 따라 그 문제가 발생합니다. 어떻게 든 텍스트를 테이블의 동일한 셀에서 다음 줄로 넘어갈 수 있습니까?

어떻게 든 테이블 너비와 관련이 있습니까? 그러나 페이지 너비를 초과하면 차이가 있습니까?



답변

l / r / c 대신 열 지정자에 p {width}를 사용하십시오.

\begin{tabular}{|p{1cm}|p{3cm}|}
  This text will be wrapped & Some more text \\
\end{tabular}


답변

일반적인 tabular환경에서는 p{width}marcog가 나타내는 것처럼 열 유형 을 사용하려고합니다 . 그러나 그로 인해 폭이 명시 적으로 나타납니다.

또 다른 해결책은 tabularx환경입니다.

\usepackage{tabularx}
...
\begin{tabularx}{\linewidth}{ r X }
    right-aligned foo & long long line of blah blah that will wrap when the table fills the column width\\
\end{tabularx}

모든 X 열의 너비는 동일합니다. \hsize형식 선언에서 설정 하여 이에 영향을 줄 수 있습니다 .

>{\setlength\hsize{.5\hsize}} X >{\setlength\hsize{1.5\hsize}} X

그러나 모든 요소는 1까지 합산해야한다고 생각합니다 (LaTeX 동반자에게서 이것을 취했습니다). tabulary행 높이의 균형을 맞추기 위해 열 너비를 조정 하는 패키지도 있습니다 . 자세한 내용 texdoc tabulary은 TeXlive에서 각 패키지에 대한 설명서를 얻을 수 있습니다 .


답변

또 다른 옵션은 텍스트 줄 바꿈이 필요한 각 셀에 미니 페이지를 삽입하는 것입니다. 예 :

\begin{table}[H]
\begin{tabular}{l}
\begin{minipage}[t]{0.8\columnwidth}%
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line %
\end{minipage}\tabularnewline
\end{tabular}
\end{table}


답변

나는 tabulary패키지 의 단순함을 좋아한다 .

\usepackage{tabulary}
...
\begin{tabulary}{\linewidth}{LCL}
    \hline
    Short sentences      & \#  & Long sentences                                                 \\
    \hline
    This is short.       & 173 & This is much loooooooonger, because there are many more words.  \\
    This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\
    \hline
\end{tabulary} 

이 예에서는 \ textwidth를 기준으로 테이블의 전체 너비를 정렬합니다. 예를 들어 0.4입니다. 그런 다음 나머지는 패키지에 의해 자동으로 수행됩니다.

대부분의 예제는 http://en.wikibooks.org/wiki/LaTeX/Tables 에서 가져옵니다 .


답변

케이크처럼 간단합니다!

현재 정렬 ( , 또는 ) L유지 하면서 ( 이 경우) 와 같은 새 열 유형을 정의 할 수 있습니다 .crl

\documentclass{article}
\usepackage{array}
\newcolumntype{L}{>{\centering\arraybackslash}m{3cm}}

\begin{document}

\begin{table}
    \begin{tabular}{|c|L|L|}
        \hline
        Title 1 & Title 2 & Title 3 \\
        \hline
        one-liner & multi-line and centered & \multicolumn{1}{m{3cm}|}{multi-line piece of text to show case a multi-line and justified cell}   \\
        \hline
        apple & orange & banana \\
        \hline
        apple & orange & banana \\
        \hline
    \end{tabular}
\end{table}
\end{document}

여기에 이미지 설명을 입력하십시오


답변

텍스트를 줄 바꿈하지만 정렬을 유지하려는 경우 해당 셀을 환경 minipage또는 varwidth환경 에서 줄 바꿈 할 수 있습니다 (가로 폭은 varwidth 패키지에서 제공됨). Varwidth는 “내용만큼 넓지 만 X보다 넓지 않습니다”. “p {xx}”처럼 작동하지만 다음을 사용하여 줄어드는 사용자 정의 열 유형을 만들 수 있습니다.

\newcolumntype{M}[1]{>{\begin{varwidth}[t]{#1}}l<{\end{varwidth}}}

array패키지 가 필요할 수 있습니다 . 그런 다음 \begin{tabular}{llM{2in}}처음 두 열과 같은 것을 사용할 때 우리는 정상적인 왼쪽 정렬이고 세 번째 열은 왼쪽에서 정상적인 정렬되지만 2in보다 넓 으면 텍스트가 줄 바꿈됩니다.


답변

텍스트를 변경하려면 ABA \r B테이블 셀의 셀 위치에 이것을 넣어 : \makecell{A \\ B}.

그렇게하기 전에 package도 포함해야합니다 makecell.