长表中的段落描述符

长表中的段落描述符

我想在我的 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}

相关内容