Hallo zusammen,
kennt sich hier jemand mit fp aus? Ich habe da ein komisches Problem beim Rechnen in Verbindung mit \newcommand und Tabelle.
Ich erläutere mal...
1. Ich habe eine eigene Tabellenumgebung mit \NewEnviron gebaut. So kann man mit einem einfachen
Code:
\begin{tab}
% Tabelleninhalt
\end{tab}
eine komplexe Tabelle einfügen.
2. Die einzelnen Zeilen der Tabelle sollen per Makro eingefügt werden, damit im Hintergrund Berechnungen durchgeführt und Formatierungen eingefügt werden können:
Code:
\begin{tab}
\newrow{2}{5}
\end{tab}
Das Problem: Das Rechnen mit dem fp-Paket funktioniert grundsätzlich. Wenn ich aber versuche Berechnungsergebnisse in die Tabelle zu schreiben gibt es den Fehler "! Missing } inserted.". Kurios ist, dass die Ausgabe funktioniert, wenn vor der Tabelle schon eine Berechnung mit der gleichen Ergebnisvariable durchgeführt wird. In diesem Fall wird aber das Ergebnis der ersten Berechnung (außerhalb der Tabelle) in der Tabelle ausgegeben.
Code:
\documentclass[12pt,pdftex]{scrartcl}
\usepackage[ngerman, english]{babel}
\usepackage{tabularx}
\usepackage{fp}
\usepackage{environ}
% Rechnen ohne Tabelle und ohne Ausgabe
\newcommand{\calc}[2]{
\FPset\a{#1}
\FPset\b{#2}
\FPmul\c\a\b
\FPround\c\c{2}
}
% Rechnen mit Ausgabe einer Tabellenzeile
\newcommand{\newrow}[2]{
\FPset\a{#1}
\FPset\b{#2}
\FPmul\c\a\b
\FPround\c\c{2}
{#1}&{#2}&{\FPprint\c}\\
}
% vordefinierte Tabellenumgebung
\NewEnviron{tab}{%
\def\temp{%
\begin{tabularx}{\textwidth}{@{}XXX@{}}
\textbf{a} & \textbf{b} & \textbf{c} \\
\hline}%
\expandafter\temp\BODY%
\hline
\end{tabularx}
}
\begin{document}
% wird folgender Befehl weggelassen, dann funktioniert \newrow unten nicht mehr
\calc{1}{5} %Berechnungsergebnis ist 5.00
% wird \calc vorher aufgerufen wird die Tabelle ausgegeben
% Spalte c enthält dann aber das Ergebnis von \calc (5.00) statt das richtige Ergebnis (10.00)
\begin{tab}
\newrow{2}{5} %
\end{tab}
\end{document}
Kann mir bitte jemand helfen!?
Lesezeichen