Probleme mit newcommand und Tabelle

Tabellen und Grafiken erstellen und anordnen


thor
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Do 25. Okt 2012, 14:43

Probleme mit newcommand und Tabelle

Beitrag von thor »

Hallo,

ich habe mir gerade eine Vorlage für Buchungssätze gebastelt, indem ich eine Tabelle in einem newcommand gepackt habe. Wenn man jetzt zwei der vier möglichen Eingabefelder leer lässt, verschiebt sich die das Ganze. Das passiert aber nur beim newcommand nicht in der Originaltabelle. Das MBB ist hier. Auf dem angehängten Bild sieht man es gut!!
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}

\begin{document}
\newcommand{\bsatz}[4]{%
    \begin{tabular}{@{}%
            p{3cm}%
            S[table-format=6.2,round-integer-to-decimal]%
            r%
            p{3cm}%
            S[table-format=6.2,round-integer-to-decimal]%
        }%
        #1&#2& an &#3&#4\\%
    \end{tabular}\\}

\noindent
\bsatz{Verbindlichkeiten}{125000}{Kasse}{256}\\
\bsatz{Forderungen}{1250}{Darlehen}{1250}\\
\bsatz{}{}{Verbindlichkeiten}{1250000}\\

\noindent
\begin{tabular}{@{}%
        p{3cm}
        S[table-format=6.2,round-integer-to-decimal]%
        r%
        p{3cm}
        S[table-format=6.2,round-integer-to-decimal]%
    }
    Bank & 125000 	& an 		& Kasse & 20000\\
    &        		& an 		& Kasse & 2575000\\
    &        		& an 		& Verbindlichkeiten 		&  125000\\
\end{tabular}
\end{document}
Dateianhänge
newcommand.png
newcommand.png (28.35 KiB) 1461 mal betrachtet

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Mit den Befehlen erzeugst Du drei einzelne einzeilige Tabellen, während die Orginaltabelle eine Tabelle mit drei Zeilen ist. Die Spaltenbreite wird vom Inhalt vorgegeben. Die S Spalte hat nur dann eine Breite entsprechend des vorgegebenen Formates, wenn in irgendeiner ihrer Zellen eine Zahl eingetragen ist. In der unteren Tabelle erledigt das die obere Zeile. Kommentierst Du die aus, dann hast Du in der Tabelle die gleiche Verschiebung.

Du kannst für die S-Spalten aber auch eine feste Breite vorgeben:
\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{siunitx} 

\begin{document} 
\newcommand{\bsatz}[4]{% 
     \noindent\begin{tabular}{@{}% 
             p{3cm}% 
             S[table-format=6.2,table-column-width=10ex]% 
             r% 
             p{3cm}% 
             S[table-format=6.2,round-integer-to-decimal,table-column-width=10ex]% 
         }% 
         #1&#2& an &#3&#4\\% 
     \end{tabular}\\} 

\bsatz{Verbindlichkeiten}{125000}{Kasse}{256}
\bsatz{Forderungen}{1250}{Darlehen}{1250}
\bsatz{}{}{Verbindlichkeiten}{1250000}

\noindent 
\begin{tabular}{@{}% 
         p{3cm} 
         S[table-format=6.2,round-integer-to-decimal]% 
         r% 
         p{3cm} 
         S[table-format=6.2,round-integer-to-decimal]% 
     } 
    % Bank & 12500   & an       & Kasse & 20000\\ 
     &              & an       & Kasse & 2575000\\ 
     &              & an       & Verbindlichkeiten       &  125000\\ 
\end{tabular} 
\end{document} 
Gruß
Elke

thor
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Do 25. Okt 2012, 14:43

Beitrag von thor »

Vielen Dank Elke, das war genau das, was ich haben wollte! Die Option
bei S-Spalten feste Breiten vorzugeben kannte ich noch nicht!

Klasse!!

VG
Thorsten

Antworten