長表和多行的問題

長表和多行的問題

我在使用多行和長表時遇到問題。多行單元格中的內容非常大,遠遠超出了「非多行」行的限制。 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 列的同一個單元格中。格中的單元格如果您新增或刪除文本,列將自動縮小和擴展。如果行中有兩個部分包含文本,則將該部分放置在單獨的行中,請參閱範例 2。

兩項額外改進:

  1. 刪除centering-環境。長桌預設居中,並使用自己的對齊演算法(請參閱文件)
  2. 考慮tabcolseps 的影響和垂直規則的寬度來計算行,請參考新的前言。如果您有多個類似的表,我建議您加載大批並使用 定義兩個新的列類型\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}

相關內容