テーブルの空白をゼロにするにはどうすればよいですか?

テーブルの空白をゼロにするにはどうすればよいですか?

&&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}

ここに画像の説明を入力してください

これは非常に単純なチェックであり、いくつかのより複雑な状況では機能しなくなる可能性があることに注意してください。たとえば、表の最後の列で使用すると機能しなくなります (これは、例に示すように、追加の空の列によって修正できます)。したがって、これをまったく使用しない方がよいでしょう。 ;-)

関連情報