Tramite l’istruzione
`\newcommand{\mans}[1]{\hfill{\color{blue}$\displaystyle\left[#1\right]$}}`
ho definito il comando mans che scrive in blu al margine destro e fra parentesi quadre il risultato di un esercizio. Purtroppo non tutti i risultati sono perfettamente allineati a destra.
In particolare succede che se l’argomento di mans è una frazione il risultato appare lievemente a sinistra rispetto al margine. Faccio un esempio:
`
\begin{enumerate}
\item $esercizio1$ \mans{x>1}
\item $esecizion2$ \mans{x>\frac{1}{2}}
\item $esercizio3$ \mans{x>3}
\item $esecizion4$ \mans{x>\frac{1}{4}}
`Il codice precedente produce dei risultati non tutti perfettamente allineati a destra. Più in particolare \mans{x>1} e \mans{x>3} sono allineati perfettamente a destra mentre \mans{x>\frac{1}{2}} e \mans{x>\frac{1}{4}} sono un pò più a sinistra degli altri due.
Sembra che ciò dipenda dall’altezza del testo prodotto.Come posso risolvere questo strano problema? Grazie in anticipo a chiunque voglia rispondermi.
Dipende dal fatto che usi parentesi quadre di tipo diverso; più una parentesi quadra è alta, più deve essere staccata da ciò che precede o segue.
Si ottiene un risultato soddisfacente misurando l’altezza dell’espressione e inserendo uno spazio negativo di un quinto di essa:
`\newcommand{\EvalHeight}[1]{%
\setbox0=\hbox{$\displaystyle\left[\mathinner{#1}\right]$}%
\textcolor{blue}{\unhcopy0 \kern-.2\ht0}}
\newcommand{\mans}[1]{%
{\unskip\nobreak\hfil\penalty50
\hskip2em\hbox{}\nobreak\hfil\EvalHeight{#1}
\parfillskip=0pt \finalhyphendemerits=0 \par}}`
La definizione di \mans potrebbe essere semplicemente
`\newcommand{\mans}{\hfill\EvalHeight{#1}}`
ma quella che ti suggerisco evita problemi di “soluzione al margine sinistro” se l’esercizio fosse troppo lungo. Prova. È un po’ complicato, ma non c’è da temere.
Esercizio: perché ho colorato due parole, una nella citazione del tuo messaggio e una nell’ultimo capoverso? 🙂
Ciao
Enrico