我想在我的 longtable 中使用“p”格式,并且我希望每列大约 1 英寸宽。我知道有一些列间距,所以我过去@{}
尽可能地抑制它。我也知道单元格之间的垂直线会占用一点空间。无论如何,我尝试了这个:
\documentclass{scrartcl}
\usepackage{longtable}
\begin{document}
\hspace*{0.53in}\rule{4in}{0.4pt}
\noindent\begin{longtable}%
{%
@{}|p{1in}%
@{}|p{1in}%
@{}|p{1in}%
@{}|p{1in}|@{}}\hline%
ABC& & & \\\hline
\end{longtable}
\end{document}
这样就制作出了一张大约 4.5 英寸宽的长桌,也就是说,每列比我要求的宽大约 1/8 英寸。当然,我可以摆弄数字,但这张桌子是由程序生成的,所以最好能以某种方式把它弄好,而不需要聘请一位出色的裁缝。
答案1
该表格的宽度为 4 英寸加 2pt(因为有五条规则的宽度)。
请注意,\noindent
在 前面什么也不做longtable
。
\documentclass{article}
\usepackage{longtable}
\begin{document}
\begin{longtable}{
@{\vline}p{1in}
@{\vline}p{1in}
@{\vline}p{1in}
@{\vline}p{1in}
@{\vline}
}
\hline
Abc & Def & Ghi jkl mno pqr stu & vw xyz \\
\hline
\end{longtable}
\end{document}
另一方面,文字会触及规则。
如果您只想在文档准备阶段制定规则,那么定义新的列类型可能会很方便。在下面的示例中,我重新定义了列类型,只是为了模拟如果您在序言中的两行中切换注释会发生什么。
\documentclass{article}
\usepackage{longtable,array}
\newcolumntype{?}{@{\vline}}\newcommand{\yline}{\hline}
%\newcolumntype{?}{@{}}\newcommand{\yline}{}
\begin{document}
\begin{longtable}{
?p{1in}
?p{1in}
?p{1in}
?p{1in}
?
}
\yline
Abc & Def & Ghi jkl mno pqr stu & vw xyz \\
\yline
\end{longtable}
% just to show what happens if you switch the comments in the preamble
\newcolumntype{?}{@{}}\renewcommand{\yline}{}
\begin{longtable}{
?p{1in}
?p{1in}
?p{1in}
?p{1in}
?
}
\yline
Abc & Def & Ghi jkl mno pqr stu & vw xyz \\
\yline
\end{longtable}
\end{document}
答案2
根据@daleif 的评论,以下是供其他人复制的修订后的表格规范:
\noindent\begin{longtable}%
{%
@{}|@{}p{1in}%
@{}|@{}p{1in}%
@{}|@{}p{1in}%
@{}|@{}p{1in}@{}|@{}}\hline%
ABC& & & \\\hline
\end{longtable}