! Неправильно указано \omit. \multispan ->\omit из-за >{\raggedleft}?

! Неправильно указано \omit. \multispan ->\omit из-за >{\raggedleft}?

Я пытаюсь создать несколько таблиц T-account. Вот мой код:

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

в результате чего:

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

Когда я меняю местами следующие строки

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

это работает. Но я хочу иметь возможность использовать все возможные комбинации из \addRowEntryTTA и \addRowEmptyEntryTTA для создания нескольких \addRowTTA.

Если я не использую >{\raggedleft}, это тоже работает, но мне нужна определенная раскладка.

В чем причина ошибки?

решение1

\raggedleftпереопределяет \\, чтобы обозначить неровный разрыв строки текста и таким образом лишить его значения конца строки таблицы.

Либо используйте \tabularnewlineвместо , \\чтобы завершить строку таблицы (это сохраненное обычное определение \\внутренних таблиц), либо используйте , \raggedleft\arraybackslash затем вы можете использовать его \\снова как \arraybackslashпереопределяет \\, чтобы иметь его массивное/табличное значение.

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