tikz Ergebnis in Variablen speichern
Verfasst: Mo 23. Jul 2012, 18:21
Hallo miteinander
ich versuche gerade mit tkiz etwas in LATEX zu rechnen. (nur kleinere zusammenzählungen)
ich habe folgende Probleme:
-ich kann nicht das modul fpu (Floating Point Unit Library) verwenden. Ansonsten funktioniert meine formatierte Ausgabe nicht mehr.
Ich erhalte 30 Fehlermeldungen ( ! Package pgfkeys Error: I do not know the key '/pgf/fpu' and I am going to ignore it. Perhaps you misspelled it.
...)
-ich schaff es nicht die Ergebnisse von einfachen Berechnungen in Variablen (bzw. in Makros) zu speichern. wenn ich die Variable das erste mal aufrufe klappt alles - aber beim zweitenmal nicht mehr.
Im pgfmanual.pdf wird immer mit \def gearbeitet aber laut l2tabu sollte man \def nicht verwenden, wenn es nicht unbedingt sein muss. (Wobei die Beispiele dort kapier ich auch nicht unbedingt)
- wie kann ich den Variablennamen an ein anderes Macro übergeben so dass dort die Variable bearbeitet werden kann? (siehe Macro \zuweisen)
Fehler:
ich versuche gerade mit tkiz etwas in LATEX zu rechnen. (nur kleinere zusammenzählungen)
ich habe folgende Probleme:
-ich kann nicht das modul fpu (Floating Point Unit Library) verwenden. Ansonsten funktioniert meine formatierte Ausgabe nicht mehr.
Ich erhalte 30 Fehlermeldungen ( ! Package pgfkeys Error: I do not know the key '/pgf/fpu' and I am going to ignore it. Perhaps you misspelled it.
...)
-ich schaff es nicht die Ergebnisse von einfachen Berechnungen in Variablen (bzw. in Makros) zu speichern. wenn ich die Variable das erste mal aufrufe klappt alles - aber beim zweitenmal nicht mehr.
Im pgfmanual.pdf wird immer mit \def gearbeitet aber laut l2tabu sollte man \def nicht verwenden, wenn es nicht unbedingt sein muss. (Wobei die Beispiele dort kapier ich auch nicht unbedingt)
- wie kann ich den Variablennamen an ein anderes Macro übergeben so dass dort die Variable bearbeitet werden kann? (siehe Macro \zuweisen)
\documentclass{article} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathtools} %% \usepackage{amslatex} % angebliches MikTex Paket - geht aber nicht \usepackage{tikz} % ich würde gerne fpu nutzen wegen der höheren Genauigkeit - allerdings funktioniert das bei mir nicht % was mach ich falsch? %\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed,precision=2,use comma,set thousands separator={ }} \newcommand{\AUSGEBEN}[2][3]{ % Es werden zwei Argumente verwendet - das erste wird mit "`3"' vorbelegt \pgfmathparse{#2} % führt die Rechnung durch (mit dem zweiten Argument \pgfkeys{ % gibt die Ausgabeformatierung vor /pgf/number format/.cd, % Formatierung für "`Number"' fixed zerofill, % Füllt die Nachkommastellen mit Nullen auf precision=#1, % Anzahl der Nachkommastellen wird mit dem Argument übergeben use comma, % verwendet bei der Ausgabe ein Komma - Achtung: beim Speichern muss ein Punkt verwendet werden % set thousands separator={.} % verwendet Punkt als Tausender seperator set thousands separator={ } % verwendet keinen Tausender seperator - default: "`,"' } \pgfmathprintnumber{\pgfmathresult} %gibt das Ergebnis aus } \newcommand{\ZUWEISEN}[2]{ % Es werden zwei Argumente verwendet \pgfmathparse{#2} % führt die Rechnung durch (mit dem zweiten Argument) \renewcommand{#1}{\pgfmathresult} % speichert das Ergebnis in der bereits existierenden Variablen % \renewcommand{\mygammadrei}{\pgfmathresult} % das würde funktionieren } \begin{document} \newcommand{\mygammaeins}{4.2} % richtige Eingabe \newcommand{\mygammazwei}{4,2} % falsche Eingabe \newcommand{\mygammadrei}{0} eins: \AUSGEBEN{\mygammaeins}\\ zwei: \AUSGEBEN{\mygammazwei}\\ drei: \AUSGEBEN{\mygammadrei} % eins: \AUSGEBEN{\mygammaeins*10000}\\ % Fehler -> Dimension too large eins: \AUSGEBEN{\mygammaeins*1000}\\ % Ergebnis = eins: 4199,997 und nicht eins: 4200 %zwei: \AUSGEBEN{\mygammazwei*1000}\\ % geht natürlich nicht, da in \mygammazwei keine Zahl steht \pgfmathparse{\mygammaeins*100} \renewcommand{\mygammadrei}{\pgfmathresult} drei: \AUSGEBEN{\mygammadrei}\\ % das erste mal funktioniert es %drei: \AUSGEBEN{\mygammadrei}\\ % dann nicht mehr -> erzeugt vier Fehler %drei: \AUSGEBEN{\mygammadrei}\\%erzeugt noch viel mehr Fehler %drei: \AUSGEBEN{\mygammadrei}\\ %% \ZUWEISEN[{mygammadrei}]{\mygammaeins+2000} % ich kann keine Makronamen übergeben eins: \AUSGEBEN{\mygammaeins}\\ %drei: \AUSGEBEN{\mygammadrei} %erzeugt drei Fehler \end{document}
- ! Undefined control sequence.
\pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@
l.54 drei: \AUSGEBEN{\mygammadrei}
% dann nicht mehr
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Missing number, treated as zero.
<to be read again>
\
l.54 drei: \AUSGEBEN{\mygammadrei}
% dann nicht mehr
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
Runaway argument?
pgfmath@bgroup\expandafter \def \expandafter \pgfmath@number \expandafter \ETC.
! Paragraph ended before \pgfmath@dimen@@ was complete.
<to be read again>
\par
l.54 drei: \AUSGEBEN{\mygammadrei}
% dann nicht mehr
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.
! Package PGF Math Error: Could not parse input '420{,}000' as a floating point
number, sorry. The unreadable part was near ',000'. (in '420{,}000').
See the PGF Math package documentation for explanation.
Type H <return> for immediate help.
...
l.54 drei: \AUSGEBEN{\mygammadrei}
% dann nicht mehr
This error message was generated by an \errmessage
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues,
and deduce the truth by order and method.