FPadd verändert Wert nur innerhalb der Umgebung

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

FPadd verändert Wert nur innerhalb der Umgebung

Beitrag von iTob »

Nabend,

eigentlich geht das Problem aus dem Minimalbeispiel hervor.
Ich würde gerne eine Summe \erg über das gesamte Dokument aufsummieren. Aber alle \FPadd-Befehle, die in einer Umgebung stehen, werden am ende der Umgebung rückgängig gemacht. Ich brauche den Befehl aber in der Umgebung, weil er ein Argument einer eigenen Umgebung (Punktzahl) zu \erg (Gesamtpunktzahl) addieren soll.

Hier das Beispiel:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\setlength{\parindent}{0pt}

\begin{document}
\FPset\erg{0}
\verb|\erg| wurde auf 0 gesetzt: \erg

\FPadd\erg{\erg}{2.5}
zu \verb|\erg| wurden 2,5 addiert: \erg
\begin{quote}
\FPadd\erg{\erg}{10}
In der \verb|qoute|-Umgebung sollen nochmal 10
addiert werden: \erg
\end{quote}
Nach einer Umgebung hat \verb|\erg|  aber denselben Wert,
wie zuvor: \erg

Es soll aber der Wert aus der Umgebung erhalten bleiben.

\end{document}
Hat jemand eine Idee?

Vielen Dank,
liebe Grüße
und einen schönen Abend!
Tobi

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2528
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Lokales Ergebnis global bekanntmachen

Beitrag von Stefan Kottwitz »

Hallo Tobi,

notfalls geht es damit:
\expandafter\xdef\expandafter\erg{\erg}
Das kannst Du natürlich auch in ein Makro fassen.

Stefan

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo ich weiß nicht was du genau machen willst, noch ob dir das hilft, aber vll schaust du dir mal pgfmath an.

Im übrigen ein netter Blog zu fixed point Rechnungen in TeX: http://www.texdev.net/2010/06/19/fixed- ... ns-in-tex/
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Re: FPadd verändert Wert nur innerhalb der Umgebung

Beitrag von CrazyHorse »

iTob hat geschrieben:
eigentlich geht das Problem aus dem Minimalbeispiel hervor.
Ich würde gerne eine Summe \erg über das gesamte Dokument aufsummieren. Aber alle \FPadd-Befehle, die in einer Umgebung stehen, werden am ende der Umgebung rückgängig gemacht. Ich brauche den Befehl aber in der Umgebung, weil er ein Argument einer eigenen Umgebung (Punktzahl) zu \erg (Gesamtpunktzahl) addieren soll.

Hat jemand eine Idee?
vor \end{quote} einfach den \erg-Wert global definieren:
...
\xdef\erg{\erg}
\end{quote}

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2528
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Ja, die \expandafter im 2. Beitrag kann man weglassen, ich wollte es zunächst anders vorschlagen und hatte die noch drin.

Stefan

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Danke für die Antworte, werde das nachher mal versuchen.

pgfmath schaue ich mir auch an, aber ich bin noch nicht sicher, ob ich Lust habe alles von FP auf pgs umstuzellen.

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Guten Morgen... 8)

die Definition einer globalen Variable hat mein Problem gelöst, mit pgfmath hab ich mich aber noch nicht beschäftigt, mal sehen, wann ich dazu Lust hab..

Danke nochmal!
Viele Grüße
Tobi

Antworten