¿Cómo configuro el ancho de varias columnas en celdas de tabla larga? Si ejecuta mi MWE, verá que la primera fila de mi tabla larga excede los límites de página.
\documentclass[11pt,a4paper,oneside]{report}
\usepackage{setspace}
\usepackage{array}
\usepackage{covington}
\usepackage[danish,english]{babel}
\usepackage{longtable}
\usepackage{caption}
\usepackage{multirow}
\begin{document}
\begin{longtable}{Rp{9cm}}
\caption{Example}\\
\endfirsthead
\caption[]{(continued)}\\
\endhead
\endlastfoot
\multicolumn{2}{l}{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}\\
\\
\textsc{Lorem}&"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."\\
{\dag} \textsc{Ipsum}&"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."\\
\end{longtable}
\end{document}
Respuesta1
Tienes suerte, porque el paquete longtable
registra el ancho de las columnas del .aux
archivo. Eso se puede utilizar para calcular el ancho de las dos primeras columnas.
Macro \GetLongtableWidths
extrae los anchos del siguiente longtable
. Se llama justo antes \begin{longtable}
. Dentro se utiliza la p
especificación . \wdcal
El primer argumento es un ancho mínimo que se utiliza si los anchos aún no están en el .aux
archivo. Este ancho debe ser menor o como máximo igual al ancho final. El segundo argumento de \wdcal
toma una expresión. \wdcol<colnum>
se reemplaza por el ancho de la columna <colnum>
. Debido a que la especificación p{...}
de la columna \multicolumn
no suprime \tabcolsep
(a la izquierda y a la derecha de la columna), \tabcolsep
es necesario restar dos.
\documentclass[11pt,a4paper,oneside]{report}
\usepackage{setspace}
\usepackage{array}
\usepackage{covington}
\usepackage[danish,english]{babel}
\usepackage{longtable}
\usepackage{caption}
\usepackage{multirow}
\makeatletter
\newcommand*{\GetLongtableWidths}{%
\begingroup
\count@=\value{LT@tables}%
\advance\count@\@ne
\edef\tmp{LT@\romannumeral\count@}%
\@ifundefined{\tmp}{%
}{%
\count@=\z@
\def\LT@entry##1##2{%
\advance\count@\@ne
\expandafter
\gdef\csname @wdcol\the\count@\endcsname{##2}%
}%
\csname\tmp\endcsname
}%
\endgroup
}
\newcommand*{\wdcol}[1]{%
\@ifundefined{@wdcol\number#1}%
{0pt}%
{\csname @wdcol\number#1\endcsname}%
}
\newcommand*{\wdcal}[2]{%
\ifdim\dimexpr(#2)\relax<0pt %
\dimexpr(#1)\relax
\else
\dimexpr(#2)\relax
\fi
}
\makeatother
\begin{document}
\GetLongtableWidths
\begin{longtable}{rp{9cm}}
\caption{Example}\\
\endfirsthead
\caption[]{(continued)}\\
\endhead
\endlastfoot
\multicolumn{2}{p{\wdcal{9cm}{\wdcol{1}+\wdcol{2}-2\tabcolsep}}}{Lorem ipsum dolor s
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.}\\
\\
\textsc{Lorem}&"Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum."\\
{\dag} \textsc{Ipsum}&"Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum."\\
\end{longtable}
\end{document}