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 accettaGrazie 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