如何摆脱这些过多的规则?

如何摆脱这些过多的规则?

在此处输入图片描述

\documentclass{article}%cannot be minimal
\usepackage{longtable}
\usepackage{ifthen, xspace}
\newcounter{xyz}
\setcounter{xyz}{1}
\def\and{&\xspace}
\begin{document}

\begin{longtable}{|*2{c|}}\hline
\whiledo{\value{xyz}<6}%
{\thexyz \and something\stepcounter{xyz} \\\hline}
\end{longtable}

\end{document}

答案1

这也会删除最后两条垂直线:

\newcommand*{\condition}{\value{xyz}<6}
\begin{longtable}{|*2{c|}}\hline
\whiledo{\condition}%
{\thexyz \and something\stepcounter{xyz}%
\ifthenelse{\condition}{\\\hline}{\\\hline\end{longtable}}}

有趣的是,如果我\\\hline从中取出这些行,就会出现这些行\ifthenelse,如果我将\end{longtable}其放在后面(甚至在%换行符之前),也会出现类似的情况。实际上,我不喜欢在循环构造中结束环境。

答案2

来自booktabs包装文档:

2 正式餐桌的布局

如果你始终记住两个简单的指导原则,就不会犯大错:

  1. 永远不要使用垂直规则。

  2. 切勿使用双重规则。这些准则可能看起来很极端,但我从未发现过打破它们的好理由。例如,如果您认为表格左半部分的信息与右半部分的信息差别很大,需要用垂直线将其分开,那么您应该使用两个表格。

\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{ifthen, xspace}

\newcounter{xyz}
\def\and{&\xspace}

\begin{document}

\begin{longtable}{>{\stepcounter{xyz}\thexyz}cc}
\toprule
\whiledo{\value{xyz}<5}
  {\and something \\}
 & \xspace something \\
\bottomrule
 \end{longtable}

\end{document}

答案3

\documentclass{article}%cannot be minimal
\usepackage{longtable}
\usepackage{ifthen, xspace}
\newcounter{xyz}
\setcounter{xyz}{1}
\def\and{&\xspace}
\begin{document}

\begin{longtable}{|*2{c|}}\hline
\whiledo{\value{xyz}<5}%
{\thexyz \and something\stepcounter{xyz} \\\hline}%
\thexyz \and something\stepcounter{xyz}\\\hline%
\end{longtable}

\end{document}

相关内容