私はLaTeXでいくつかのテーブルを含むレポートを作成しています。テーブル内の私のセルデータがページの幅を超えているので、私はそれにこだわっています。テキストが表の同じセル内の次の行に入るようにテキストを折り返すことはできますか。
それはどういうわけかテーブルの幅に関係していますか?しかし、それはページの幅をオーバーシュートしているので、それは違いを生むでしょうか?
列指定子にはl/r/cの代わりにp {width}を使用してください。
\begin{tabular}{|p{1cm}|p{3cm}|}
This text will be wrapped & Some more text \\
\end{tabular}
通常のtabular
環境では、marcogが示すようにp{width}
列型を使用します。しかし、それはあなたに明示的な幅を与えることを強制します。
別の解決策は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
パッケージもあります。詳細については、(TeXliveの)texdoc tabulary
で各パッケージのドキュメントを入手できます。
他の選択肢は、テキストの折り返しが望まれる各セルにミニページを挿入することである。
\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 から取得されます。
テキストを折り返して整列を維持したい場合は、そのセルをminipage
またはvarwidth
環境で折り返すことができます(varwidthはvarwidthパッケージに由来します)。可変幅は「内容と同じ幅ですが、Xよりは広くありません」となります。 "p {xx}"のように振る舞うカスタムカラムタイプを作成することができます。
\newcolumntype{M}[1]{>{\begin{varwidth}[t]{#1}}l<{\end{varwidth}}}
これはarray
パッケージを必要とするかもしれません。 \begin{tabular}{llM{2in}}
のようなものを使うと、最初の2列は通常左寄せになり、3列目は通常左寄せになりますが、2inより広くなるとテキストは折り返されます。
ケーキのようにシンプル!
現在の配置を維持(L
name__、c
name__またはr
name__)のように(この場合はl
name__)のような新しい列型を定義できます。
\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}