我正在用 LaTeX 制作一本手册,我想在手册末尾插入一张整页的空白表格,以便人们签名以确认他们已阅读过该手册。
目前我正在这样做:
\section{Sign on sheet}
% NOTE: This is a very messy way of making a one page table.
\begin{tabularx}{\textwidth}{|+l|^X|^l|^X|}
\hline
\rowstyle{\bfseries}
Date & Name & Signature \\\hline\hline
1 January 2012 & John Citizen & XXXXXXXXX \\\hline
& & \\[0.4cm]\hline
& & \\[0.4cm]\hline
...
& & \\[0.4cm]\hline
\end{tabularx}
而且我必须调整行数以使其填满整个页面。我习惯\\[0.4cm]
将行数设置得稍微大一些,以便在打印文档时留出手写空间。有没有更好的方法可以做到这一点?
答案1
我建议采用不同的方法,不使用表格结构;\linefill
下面示例中的命令是对来自考试文档类;它用 声明的水平线模式填充高度为给定参数的垂直空间\linefill
。您可以使用高度固定的 minipageh
作为页眉,然后只需使用用模式填充页面;可以使用长度(初始设置为)\linefill{\textheight-h}
更改行之间的垂直分隔:\linefillheight
1cm
\documentclass{article}
\newlength\linefillheight % vertical distance between lines
\setlength\linefillheight{1cm}
\newlength\wcolone %first column width
\setlength\wcolone{\dimexpr.25\textwidth-4mm\relax}
\newlength\wcoltwo %second column width
\setlength\wcoltwo{.5\textwidth}
\newlength\wcolthree % third column width
\setlength\wcolthree{\dimexpr.25\textwidth-4mm\relax}
\newcommand\linefill{\leavevmode
\rule{\wcolone}{0.4pt}\hspace*{4mm}\rule{.50\textwidth}{0.4pt}\hspace*{4mm}\rule{\dimexpr.25\textwidth-4mm\relax}{0.4pt}}
\makeatletter
\def\fillwithlines#1{%
\begingroup
\ifhmode
\par
\fi
\hrule height 0pt
\nobreak
\cleaders\hbox to \hsize{\hskip \@totalleftmargin
\vrule height \linefillheight depth 0pt width 0pt
\linefill} \vskip #1 \hbox{}%
\endgroup}
\makeatother
\begin{document}
\noindent\begin{minipage}[c][1cm][t]{\textwidth}
\section{Sign on sheet}
\parbox{\dimexpr\wcolone+4mm\relax}{\textbf{Date}}%
\parbox{\dimexpr\wcoltwo+4mm\relax}{\textbf{Name}}%
\parbox{\wcolthree}{\textbf{Signature}}
\end{minipage}
\fillwithlines{\dimexpr\textheight-1cm\relax}
\end{document}