ロングテーブルとマルチ行の問題

ロングテーブルとマルチ行の問題

multirow と longtable の使用時に問題が発生します。multirow セルの内容が非常に大きく、「非 multirow」行の制限をはるかに超えています。LaTeX はこれを無視し、それらの行のすぐ後ろから次の行を開始するため、内容が上書きされます。

以下は最小限の動作コードです:

\documentclass{article}

\usepackage{longtable}
\usepackage {multirow}
\usepackage{lipsum}

\begin{document}

\begin{center}

\begin{longtable}{|p{.15\textwidth}|p{.15\textwidth}|p{0.65\textwidth}|}
    \hline  
    1 & 1.1 & \multirow{3}{.65\textwidth} {\lipsum[1] }\\
     & 1.2 & \\
     & 1.3 & \\ \hline  
     2 & 2.1 & \lipsum[2] \\ \hline  
     \end{longtable} 
    \end{center}

\end{document}

どのような助けでも本当にありがたいです...

答え1

あなたが何を探しているのかまだよく分かりませんが、追加に関する最後のコメントに基づいてvspace、セクション番号 (1.1、1.2、1.3) を列 2 の同じセルに配置しない理由が気になります。テキストを追加または削除すると、3 列目のセルは自動的に縮小および拡大します。行に 2 つのセクションにテキストが含まれている場合は、そのセクションを別の行に配置します (例 2 を参照)。

追加の 2 つの改善点:

  1. -環境を削除しますcenteringロングテーブルデフォルトでは中央に配置され、独自の配置アルゴリズムを使用します(ドキュメントを参照)。
  2. tabcolsepsの影響と垂直線の幅を考慮して行を計算します。新しい序文を参照してください。類似のテーブルが複数ある場合は、ロードすることをお勧めします。配列そして を使用して 2 つの新しい列タイプを定義します\newcolumntype。これらはテーブルのプリアンブルで使用できます。

\newcolumntype{M}{p{\dimexpr(0.175\linewidth-2\tabcolsep-1.5\arrayrulewidth)}}
\newcolumntype{N}{p{\dimexpr(0.65\linewidth-2\tabcolsep-\arrayrulewidth)}}

最初の表の前文:

 \begin{longtable}{|M|M|N|}

ここに画像の説明を入力してください

\documentclass{article}

\usepackage{longtable}
\usepackage{lipsum, array}

\begin{document}

\begin{longtable}{
|p{\dimexpr(0.175\linewidth-2\tabcolsep-1.5\arrayrulewidth)}
|p{\dimexpr(0.175\linewidth-2\tabcolsep-1.5\arrayrulewidth)}
|p{\dimexpr(0.65\linewidth-2\tabcolsep-\arrayrulewidth)}|}
\hline  
1 & 1.1 \par 1.2\par 1.3 & \lipsum[1]\\\hline  
 2 & 2.1 & \lipsum[2] \\ \hline  
 \end{longtable} 
\end{document}

確かに、私は別のレイアウトを選んだでしょう。ブックタブルールがあり、垂直のルールはありません。

ここに画像の説明を入力してください

\documentclass{article}

\usepackage{longtable}
\usepackage{lipsum, array}

\newcolumntype{O}{p{\dimexpr(0.175\linewidth-1.5\tabcolsep)}}
\newcolumntype{P}{p{\dimexpr(0.65\linewidth-\tabcolsep)}}

\begin{document}

\begin{longtable}{@{}OOP@{}}
    \toprule \addlinespace[1ex]
    1 & 1.1 \par 1.2\par 1.3 & \lipsum[1]\\\midrule  \addlinespace[1ex]
    2 & 2.1 & \lipsum[2] \\\cmidrule(l{\tabcolsep}){3-3}
      & 2.2\par 2.3 & \lipsum[2] \\ \midrule
     \end{longtable}

\end{document}

関連情報