! Fuera de lugar \omitir. ¿\multispan ->\omit debido a >{\raggedleft}?

! Fuera de lugar \omitir. ¿\multispan ->\omit debido a >{\raggedleft}?

Estoy intentando crear algunas tablas de cuentas T. Este es mi código:

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

Resultando en:

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

Cuando cambio las siguientes líneas

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

funciona. Pero quiero poder utilizar todas las combinaciones posibles de \addRowEntryTTA y \addRowEmptyEntryTTA para crear múltiples \addRowTTA.

Si no uso >{\raggedleft} también funciona, pero necesito tener un diseño determinado.

¿Cuál es la causa del error?

Respuesta1

\raggedleftse redefine \\para significar un salto de línea de texto irregular y eso evita que tenga el significado de fin de fila de la tabla.

Utilícelo \tabularnewlineen lugar de \\para finalizar la fila de la tabla (esta es la definición normal guardada de \\las tablas internas) o úselo \raggedleft\arraybackslash y luego puede usarlo \\nuevamente como \arraybackslashredefinición \\para tener su significado de matriz/tabular.

información relacionada