Como defino a largura de várias colunas em células longtable? Se você executar meu MWE, verá que a primeira linha da minha tabela longa excede os limites da 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}
Responder1
Você tem sorte, porque o pacote longtable
registra a largura das colunas no .aux
arquivo. Isso pode ser usado para calcular a largura das duas primeiras colunas.
Macro \GetLongtableWidths
extrai as larguras do próximo arquivo longtable
. É chamado um pouco antes \begin{longtable}
. Dentro da p
especificação \wdcal
é usada. O primeiro argumento é uma largura mínima usada se as larguras ainda não estiverem no .aux
arquivo. Esta largura deverá ser menor ou no máximo igual à largura final. O segundo argumento de \wdcal
recebe uma expressão. \wdcol<colnum>
é substituído pela largura da coluna <colnum>
. Como a especificação da coluna p{...}
não \multicolumn
suprime \tabcolsep
(à esquerda e à direita da coluna), dois \tabcolsep
precisam ser subtraí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}