! Falsch platziertes \omit. \multispan ->\omit wegen >{\raggedleft}?

! Falsch platziertes \omit. \multispan ->\omit wegen >{\raggedleft}?

Ich versuche, einige T-Konten-Tabellen zu erstellen. Dies ist mein Code:

\documentclass[10pt,draft,oneside,titlepage]{report}
\usepackage[a4paper, left=2cm, right=2cm, top=1.5cm, bottom=1.5cm]{geometry}

\usepackage{ngerman}
\usepackage[natural,table]{xcolor}
\usepackage{float}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}

\newcommand{\tableTAccount}[4]{
\begin{figure}[H]
\caption{#1}
\scriptsize
\setlength{\tabcolsep}{3pt}
\begin{tabular}{
p{1.27cm}
p{0.69cm}
p{1.8cm}
p{2cm}
>{\raggedleft}p{1.55cm}|
p{1.27cm}
p{0.69cm}
p{1.8cm}
p{2cm}
>{\raggedleft}p{1.55cm}
}
    \multicolumn{4}{l}{Soll} & \multicolumn{2}{c}{#2} & \multicolumn{4}{r}{Haben} \\ \hline
    #3
    \multicolumn{5}{r|}{} & \multicolumn{5}{r}{} \\
    #4
\end{tabular}
\end{figure}
}

\newcommand{\addRowTTA}[2]{#1 & #2 \\}

\newcommand{\addRowEntryTTA}[5]{#1 & #2 & #3 & #4 & #5}

\newcommand{\addRowEmptyEntryTTA}{&&&&}

\newcommand{\addRowTTAResults}[3]{
\multicolumn{5}{r|}{#1} & \multicolumn{5}{r}{#2} \\
\multicolumn{5}{r|}{} & \multicolumn{5}{r}{#3} \\
}

\begin{document}

\tableTAccount
{T-Account}
{account}
{
\addRowTTA
    {\addRowEmptyEntryTTA}
    {\addRowEntryTTA{1}{2}{3}{4}{12.36}}
}
{\addRowTTAResults{0}{12.36}{12.36}}

\end{document}

ergebend:

! Misplaced \omit.
\multispan ->\omit 
               \@multispan 
l.56     {\addRowTTAResults{0}{12.36}{12.36}}

Wenn ich folgende Zeilen vertausche

{\addRowEntryTTA{1}{2}{3}{4}{12.36}} 
{\addRowEmptyEntryTTA}

es funktioniert. Aber ich möchte in der Lage sein, jede mögliche Kombination aus \addRowEntryTTA und \addRowEmptyEntryTTA zu verwenden, um mehrere \addRowTTA zu erstellen.

Wenn ich >{\raggedleft} nicht verwende, funktioniert es auch, aber ich brauche ein bestimmtes Layout.

Was ist die Fehlerursache?

Antwort1

\raggedleftwird neu definiert \\, sodass es sich um einen unregelmäßigen Textzeilenumbruch handelt, wodurch verhindert wird, dass es die Bedeutung „Ende der Tabellenzeile“ hat.

Verwenden Sie entweder \tabularnewlineanstelle von \\, um die Tabellenzeile zu beenden (dies ist die gespeicherte normale Definition \\innerhalb von Tabellen) oder verwenden Sie . \raggedleft\arraybackslash Anschließend können Sie es \\erneut als \arraybackslashNeudefinition verwenden \\, um die Array-/Tabellenbedeutung zu erhalten.

verwandte Informationen