
En mi pregunta anterior hubo un par de soluciones que resolvieron mi problema inmediato. Sin embargo, tengo la sensación de que esos dos paquetes no funcionan bien juntos. Agregar una columna más y tener varias filas en diferentes conjuntos de filas hace que las soluciones no funcionen.
Aquí está el código:
\documentclass{article}
\usepackage{longtable}
\usepackage {multirow}
\usepackage{lipsum}
\begin{document}
\begin{center}
\begin{longtable}{p{.15\textwidth} p{.15\textwidth} p{0.32\textwidth} p{0.32\textwidth}}
\hline
1 & 1.1 & \multirow{2}{.32\textwidth} {\lipsum[1] } & some text \\ \cline{4-4}
& 1.2 & & \multirow{2}{.32\textwidth}{\lipsum[2]} \\ \cline{2-3}
& 1.3 & some other text & \\ \hline
2 & 2.1 & some more text & \lipsum[3] \\ \hline
\end{longtable}
\end{center}
\end{document}
Y el resultado claramente no es bueno. Cualquier ayuda para encontrar una solución genérica a este problema sería muy apreciada.
Respuesta1
La respuesta a tu pregunta anterior (casi la misma) resuelve tu problema. Si no, tu pregunta no está clara.
Adopción de @sveinungrespuesta:
\documentclass{article}
\usepackage{makecell, longtable}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\begin{document}
\begin{longtable}{|p{\dimexpr0.07\textwidth-2\tabcolsep-1.25\arrayrulewidth}
|p{\dimexpr0.07\textwidth-2\tabcolsep-1.25\arrayrulewidth}
|p{\dimexpr0.43\textwidth-2\tabcolsep-1.25\arrayrulewidth}
|p{\dimexpr0.43\textwidth-2\tabcolsep-1.25\arrayrulewidth}
|}
\hline
1 & 1.1 & \lipsum[1] & some text \\ \cline{2-4}
& 1.2 & & \lipsum[2] \\ \cline{2-4}
& 1.3 & some other text & \\
\hline
2 & 2.1 & some more text & \lipsum[3] \\
\hline
\end{longtable}
\end{document}
Nota: \multirow[<number of rows>{...}{cell's contents}
no determina su altura con el número de filas (que contiene). Abarca el número dado de líneas en la columna adyacente. Si su altura es menor que la altura de la multirow
celda, entonces su contenido se derramará en las celdas adyacentes como observa en su pregunta.
Por favor, lea la documentación del paquete como sugiere @ebcontrol en su comentario.
Editar:El ancho de la columna ahora está corregido y el ancho de la columna longtable
es exactamente \textwidth
.
Respuesta2
NÓTESE BIENHe actualizado el código por ejemplo 2
Utilizo textos ficticios más cortos para que los ejemplos sean más legibles. Mira los dos ejemplos adjuntos y cuéntanos (me) en qué se desvían de lo que intentas lograr. En particular, el ejemplo 2 exige trabajo manual:
Ejemplo 1
\documentclass{article}
\usepackage{longtable, booktabs, array}
\usepackage{lipsum}
\newcolumntype{O}{p{\dimexpr(0.15\linewidth-1.5\tabcolsep)}}
\newcolumntype{Q}{p{\dimexpr(0.35\linewidth-1.5\tabcolsep)}}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\newcommand{\mytexti}{This is a dummy text, however I have an issue using multirow and longtable. The content in the multirow cell is very large, and it goes well beyond the limit of the "non-multirowed" rows. LaTeX ignores that and starts the following row just behind those rows, therefore overwriting the content.}
\newcommand{\mytextii}{This is a shorter dummy text, LaTeX ignores me!}
\begin{document}
\begin{longtable}{@{}OOQQ@{}}
\toprule\addlinespace[1ex]
1 & 1.1 & \mytexti & some text \\ \cmidrule{4-4}
& 1.2 & & \mytextii \\ \cmidrule{3-3}
& 1.3 & some other text & \\ \bottomrule \addlinespace[1ex]
2 & 2.1 & some more text & \mytexti \\ \bottomrule
\end{longtable}
\end{document}
Ejemplo 2
\documentclass{article}
\usepackage{longtable, booktabs, array, multirow, bigstrut}
\usepackage{lipsum}
\newcolumntype{O}{p{\dimexpr(0.15\linewidth-1.5\tabcolsep)}}
\newcolumntype{Q}{p{\dimexpr(0.35\linewidth-1.5\tabcolsep)}}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\newcommand{\mytexti}{This is a dummy text, however I have an issue using multirow and longtable. The content in the multirow cell is very large, and it goes well beyond the limit of the "non-multirowed" rows. LaTeX ignores that and starts the following row just behind those rows, therefore overwriting the content.}
\newcommand{\mytextii}{This is a shorter dummy text, LaTeX ignores me!}
\begin{document}
\begin{longtable}{@{}OOQQ@{}}
\toprule\addlinespace[1ex]
1 & & \mytexti & some text\strut \hrule \\
& \multirow[t]{-14}{=}{1.1\\ 1.2} & some other text & \multirow[t]{-12.9}{=}{\mytextii} \\ \cmidrule{3-3}
& 1.3 & some other text & \\
\bottomrule \addlinespace[1ex]
2 & 2.1 & some more text & \mytexti \\ \bottomrule
\end{longtable}
\end{document}