LaTeX에서 몇 가지 테이블이 포함 된 보고서를 작성 중입니다. 테이블의 셀 데이터가 페이지 너비를 초과함에 따라 그 문제가 발생합니다. 어떻게 든 텍스트를 테이블의 동일한 셀에서 다음 줄로 넘어갈 수 있습니까?
어떻게 든 테이블 너비와 관련이 있습니까? 그러나 페이지 너비를 초과하면 차이가 있습니까?
LaTeX에서 몇 가지 테이블이 포함 된 보고서를 작성 중입니다. 테이블의 셀 데이터가 페이지 너비를 초과함에 따라 그 문제가 발생합니다. 어떻게 든 텍스트를 테이블의 동일한 셀에서 다음 줄로 넘어갈 수 있습니까?
어떻게 든 테이블 너비와 관련이 있습니까? 그러나 페이지 너비를 초과하면 차이가 있습니까?
답변:
l / r / c 대신 열 지정자에 p {width}를 사용하십시오.
\begin{tabular}{|p{1cm}|p{3cm}|}
This text will be wrapped & Some more text \\
\end{tabular}
\begin{tabular}{p{1cm}p{3cm}}
begin{tabular}{lp{<whatever is left to fill the line width>}}
p{0.2\linewidth}p{0.6\linewidth}}
일반적인 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}
itemize
내 셀에 목록 을 넣을 수있었습니다 .
\columnwidth
. 시도했을 때 열 너비보다 테이블 너비가 더 넓어 보였으므로 0.2\columnwidth
합리적인 너비를 얻는 것과 같은 수동 비율을 설정해야했습니다 .
나는 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
을 유지 하면서 ( 이 경우) 와 같은 새 열 유형을 정의 할 수 있습니다 .c
r
l
\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보다 넓 으면 텍스트가 줄 바꿈됩니다.
\begin{table}
\caption{ Example of force text wrap}
\begin{center}
\begin{tabular}{|c|c|}
\hline
cell 1 & cell 2 \\ \hline
cell 3 & cell 4 & & very big line that needs to be wrap. \\ \hline
cell 5 & cell 6 \\ \hline
\end{tabular}
\label{table:example}
\end{center}
\end{table}