проблемы с longtable и multirow

проблемы с longtable и multirow

У меня проблема с использованием multirow и longtable. Содержимое многорядной ячейки очень большое и выходит далеко за пределы "не многорядных" строк. 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) в той же ячейке i столбца 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}

Связанный контент