如果表格为空,如何避免排版任何单元格

如果表格为空,如何避免排版任何单元格

下列的如何定义一个宏来向尚未打印的表中添加一行?,我想出了一个宏(\AddToTable),它“构建”一个表,即将其参数附加为表的最后一行。

问题是,即使我不调用任何 \AddToTable命令(以便表格应该是空的),我仍然得到两个垂直分隔符。

在此处输入图片描述

我该如何避免这种情况?

以下是我的示例:

\documentclass{article}
\usepackage{etoolbox}
\usepackage{tabu}
\usepackage{fancyhdr}

\let\TableBody\relax
\newcommand{\foottable}{%
  \begin{tabu} {|l|l|} \TableBody \end{tabu}}

\newcommand{\AddToTable}[1]{%
  \gappto\TableBody{#1}%
}

\begin{document}
Test Test Test Test Test\\

\AddToTable{1 & a\\}
\AddToTable{2 & b\\}
\AddToTable{\multicolumn{2}{l}{Text}} % test
\foottable
\end{document}

笔记:

:)自从第一次发布以来,这个问题已经被大量编辑,所以如果你想理解下面的评论(或者你只是好奇),请查看编辑历史。

答案1

后续内容:表格始终至少有一个单元格。您只需在代码中添加一个测试即可:

  \newcommand{\foottable}{%
    \ifx\TableBody\relax\else
      \begin{tabular} {|l|l|} \TableBody \end{tabular}
    \fi
  }

相关内容