如何将表格空白处设为零?

如何将表格空白处设为零?

我想知道是否可以让 LaTeX 表解释&&&0&。因此空白不是文字 NA 或任何对应的内容。代码

\documentclass{article}

\begin{document}

\begin{table}
\begin{tabular}{| l | l | l |}
AHB        && \\ \hline
\end{tabular}
\end{table}

\end{document}

我将表格行更改为

AHB       1 && 1 \\ \hline

我希望它被解释

AHB       1 &0& 1 \\ \hline

答案1

你可以收集细胞内容测试是否为空白

在此处输入图片描述

\documentclass{article}

\usepackage{collcell}
\newcommand{\emptytozero}[1]{% https://tex.stackexchange.com/q/53068/5764
  \if\relax\detokenize{#1}\relax
    0%
  \else
    #1%
  \fi
}

\begin{document}

\begin{tabular}{ c | >{\collectcell\emptytozero}c<{\endcollectcell} }
   &   \\
   & 1 \\
 1 &   \\
 1 & 1
\end{tabular}

\end{document}

如果需要检查多个列,可以定义一个新的列类型(collcell负载array.) \newcolumntype

\newcolumntype{C}{ >{\collectcell\emptytozero}c<{\endcollectcell} }

答案2

这是一个非常简单的版本,用零填充空白表格单元格。检查由一种新的列格式执行,z该格式应用于所有必须用零填充的列(如有必要)。

\documentclass{article}
\usepackage{array}

\newcolumntype{z}{>{\zeroIfEmpty}l<{\endzero}}
\def\zeroIfEmpty#1\endzero{\setbox0=\hbox{#1}\ifdim\wd0=0pt 0\else#1\fi}

\begin{document}
\begin{tabular}{| z | z | z | l }
   &   &   &\\
   &   & 1 &\\
   & 1 &   &\\
 1 &   &   &\\
 1 & 1 & 1 &\\
\end{tabular}
\end{document}

在此处输入图片描述

请注意,这是一个非常简单的检查,在几种更复杂的情况下可能会中断,例如,如果在表格的最后一列中使用它会中断(可以通过示例中所示的额外空列来修复)。所以最好根本不使用它。;-)

相关内容