Re: Ancora problemi con l’espansione di comandi

#33473
Up
0
Down
::

Ho ancora una volta problemi con l’espansione dei comandi.
Ho questo codice:`
\documentclass{article}
\usepackage{fp}
\newcommand{\FPsv}[2][0]{\FPeval\risultato{round(#2:#1)} \risultato}
`

Così quando nel documento scrivo \FPsv{3^2} ottengo 9 (o meglio se assegno un valore ad “a”, \FPsv{a^2} mi dà il valore di a^2)

Ora vorrei assegnare il risultato di \FPsv a qualcosa, in particolare per scriverlo su un file esterno: qualcosa del tipo
`\def\quadrato{\FPsv{3^2}}
\immediate\write\prova{\quadrato}`

e \quadrato è 9 (e non \FPsv{3^2})
Ovviamente \def non funziona, ma nemmeno con \edef ottengo nulla (anzi ho un errore nella definizione)
Non posso usare la soluzione “facile” di assegnare a \quadrato il valore \risultato della macro.
Una soluzione che preveda un comando del tipo:
` \immediate\write\prova{\FPsv{3^2}}`
è più che bene accetta

Grazie per gli eventuali aiuti.
Flavio

Il pacchetto fp usa comandi non espandibili per l’aritmetica; \edef certamente non può funzionare. Da’ un’occhiata al pacchetto bigintcalc di Heiko Oberdiek che invece fornisce comandi (con sintassi diversa, temo) che sono espandibili.

Ciao
Enrico

Go to top