web-dev-qa-db-ja.com

ラテックス:表内の複数行の行を分割する方法

表形式で複数行内の行を分割する方法がわかりません。 2行の高さのセルが1つあり、長いテキストが含まれるテーブルを作成する必要がありますが、行が切れず、テキストが左側の別のセルに重なっています。

助言がありますか?

コードのサンプル:

\begin{center}
    \begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
    \hline
    \multirow{2}{*}{Long text to break} % HERE IS A PROBLEM
        & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
    \\ \cline{2-6}
        & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
\hline
\end{tabular}
\end{center}
29
kokosing

minipage itを試すことができます:

\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{\begin{minipage}{0.5in}Long text to break\end{minipage}}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ 
    \hline
    \hline
\end{tabular}
\end{center}

ただし、特定のケースでは、無駄になっているスペースが多すぎるため、他の列の制限を緩和することをお勧めします。各p{}、他の列を特定の幅に強制するため、最初の列に十分なスペースがありません。

次のコードは、コンパイルしたときに見栄えがしました。

\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{Long text to break}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\
    \hline
    \hline
\end{tabular}
\end{center}
11
Steve Tjoa

p列と\parboxも機能します。

\usepackage{multirow}

\begin{document}
\begin{center}
\begin{tabular}{|p{1.5cm}|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{\parbox{1.5cm}{Long text to break}}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ 
    \hline
    \hline
\end{tabular}
\end{center}
\end{document}

parbox in latex document

33
Tombart

私にとって最短かつ最も実用的答え:

使用する \linewidthの長さとして{width}パラメータ。

\usepackage{multirow}
\begin{document}

\begin{center}
\begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
\multirow{2}{\linewidth}{Long text to break} % HERE IS A PROBLEM
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
\\ \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
\hline
\end{tabular}
\end{center}

\end{document}

それだけです!

唯一の問題は、他のセルのテキストが非常に短いというありそうもないケースでは、次のように見えることです。 Broken text in the right width but sadly going out of the table

ただし、通常、テーブルの「sth1」以外のセルに他のセルのテキストが多い場合は、見栄えがよくなります。 enter image description here

11
loved.by.Jesus

私にとっては、「multirow」の組み込みコマンドを使用するように機能しました-{*}は「{width}」です

7
OddballDK

また、parbox\\

\documentclass{article}
\usepackage{multirow}

\begin{document}

\begin{center}
    \begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
        \hline
        \multirow{2}{*}{\parbox{1cm}{Long\\ text\\ to\\ break}} % NOT A PROBLEM?
        & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
        \\ \cline{2-6}
        & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
        \hline
    \end{tabular}
\end{center}

\end{document}

とにかく、セルのマージンを超えないように注意してください。

1
MattAllegro