Liverpool” post=80129Ho un’altra domanda (stupida) sugli operatori, perciò la scrivo qui.
[tt]\dimen0=0.25\dimen0[/tt] è la stessa cosa di [tt]\divide\dimen0 by 4[/tt]?
Dove posso trovare un riferimento completo sulle operazioni, per non dare più fastidio sul forum?Grazie
Sessione interattiva con TeX:
`This is TeX, Version 3.1415926 (TeX Live 2012)
**\relax
*\dimen0=3cm
*\dimen0=0.25\dimen0
*\message{\number\dimen0}
1398509
*\dimen0=3cm
*\divide\dimen0 by 4
*\message{\number\dimen0}
1398509`
Sì, è lo stesso, perché puoi esprimere 1/4 con un decimale finito con meno di cinque cifre decimali. Proseguiamo:
`*\dimen0=3cm
*\divide\dimen0 by 3
*\message{\number\dimen0}
1864679
*\dimen0=3cm
*\dimen0=.33333\dimen0
*\message{\number\dimen0}
1864651`
Come vedi c’è una differenza di 28sp, per via dell’aritmetica intera (binaria) usata internamente.
Devi preoccuparti? No. Tanto non otterrai praticamente mai il “vero” valore: se proseguiamo da dov’eravamo, abbiamo questo:
`*\setbox0=\hbox to 3cm{\hskip\dimen0 \hskip\dimen0 \hskip\dimen0 }
Underfull \hbox (badness 10000) detected at line 0
*\dimen0=3cm
*\divide\dimen0 by 3cm
*\setbox0=\hbox to 3cm{\hskip\dimen0 \hskip\dimen0 \hskip\dimen0 }
Underfull \hbox (badness 10000) detected at line 0`
Che ci si può fare? Niente, se non aggiungere qualche [tt]\hfil[/tt]
Ciao
Enrico