Как сделать так, чтобы пустые ячейки таблицы были нулями?

Как сделать так, чтобы пустые ячейки таблицы были нулями?

Я хотел бы знать, возможно ли интерпретировать LaTeX Table &&как &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}

введите описание изображения здесь

Обратите внимание, что это очень простая проверка, которая, скорее всего, сломается в нескольких более сложных ситуациях, например, она сломается, если используется в последнем столбце таблицы (что можно исправить с помощью дополнительного пустого столбца, как показано в примере). Так что, вероятно, лучше вообще не использовать ее. ;-)

Связанный контент