
Ich würde gerne wissen, ob es möglich ist, LaTeX-Tabellen &&
als interpretieren zu lassen &0&
. Das Leerzeichen ist also nicht das wörtliche NA oder etwas Entsprechendes hier. Code
\documentclass{article}
\begin{document}
\begin{table}
\begin{tabular}{| l | l | l |}
AHB && \\ \hline
\end{tabular}
\end{table}
\end{document}
Ich ändere die Tabellenzeile in
AHB 1 && 1 \\ \hline
Ich möchte, dass es interpretiert wird
AHB 1 &0& 1 \\ \hline
Antwort1
Du kannstSammeln Sie den ZellinhaltUndTesten Sie, ob es leer ist:
\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}
Wenn mehrere Spalten untersucht werden sollen, kann man einen neuen Spaltentyp definieren (collcell
Ladungenarray
.) \newcolumntype
:
\newcolumntype{C}{ >{\collectcell\emptytozero}c<{\endcollectcell} }
Antwort2
Hier eine sehr einfache Variante, die leere Tabellenzellen mit einer Null auffüllt. Die Prüfung übernimmt ein neues Spaltenformat, z
das für alle Spalten verwendet werden sollte, die ggf. mit Nullen aufgefüllt werden müssen.
\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}
Beachten Sie, dass dies eine sehr einfache Prüfung ist, die in mehreren komplizierteren Situationen wahrscheinlich nicht funktioniert. Beispielsweise funktioniert sie nicht, wenn sie in der letzten Spalte einer Tabelle verwendet wird (was durch eine zusätzliche leere Spalte behoben werden kann, wie im Beispiel gezeigt). Daher ist es wahrscheinlich besser, sie überhaupt nicht zu verwenden. ;-)