使用 \fill(或类似命令)将表格延伸至页面末尾

使用 \fill(或类似命令)将表格延伸至页面末尾

我目前正在尝试使用模板制作发票,该模板要求表格无论内容如何都延伸到页面末尾。我尝试使用\fill如下所示的方法(在 中\tabularnewline[\fill]),但它没有将行高扩展到页面末尾,而是什么也没做。有没有办法扩展表格,正如您天真地期望此代码所做的那样?我已经设置了大部分格式,因为我不确定它们是否会干扰任何可能的解决方案。

\documentclass{article}
\usepackage{array}

\begin{document}
Front matter (name, address, etc.)

\noindent
\begin{tabular}{|>{\raggedright}p{0.2\linewidth}|>{\raggedright}p{0.3\linewidth}|>{\raggedright}p{0.3\linewidth}|>{\raggedright}p{0.2\linewidth}|}\hline
    Quantity & Description & Unit Price & Amount \tabularnewline\hline
     &  &  & \tabularnewline[\fill]\hline
    \multicolumn{2}{>{\raggedright}p{0.4\linewidth}|}{Bank Details} & Total & \tabularnewline\cline{3-4}
\end{tabular}
\end{document}

未展开的表格

答案1

在此处输入图片描述

表格间距位于(几个)框内,因此不会拉伸,就像\mbox{\hfill}宽度始终为 0pt 一样。但是,您可以测量输出位置并添加合适的固定长度。这需要几次 latex 运行,并且不稳定)如下所述:如果您编辑文件,则可能必须删除辅助文件,否则它将始终尝试根据旧版本的文件强制使用不合适的大小。

\documentclass{article}
\usepackage{array}


\begin{document}
Front matter (name, address, etc.)

a
\vspace{1in}

\noindent
\begin{tabular}{|>{\raggedright}p{0.2\linewidth}|>{\raggedright}p{0.3\linewidth}|>{\raggedright}p{0.3\linewidth}|>{\raggedright}p{0.2\linewidth}|}\hline
    Quantity & Description & Unit Price & Amount \tabularnewline\hline
\makeatletter\pdfsavepos\write\@auxout{\gdef\string\tmppos{\the\pdflastypos}}%
\ifx\tmppos\@undefined\gdef\tmpheight{0pt}\else\gdef\tmpheight{\dimexpr\tmppos sp - 190pt\relax}\fi
     &  &  & \tabularnewline[\tmpheight]\hline
    \multicolumn{2}{>{\raggedright}p{0.4\linewidth}|}{Bank Details} & Total & \tabularnewline\cline{3-4}
\end{tabular}

\end{document}

相关内容