Re: nopagebreak

#42082
Up
0
Down
::

Mi sono costruito una macro per le soluzioni brevi di un esercizio
`
\newenvironment{solcort}{\nopagebreak\begin{flushright}\begin{slshape}\footnotesize[}
{]\end{slshape}\end{flushright}\par\bigskip}`

mi sono accorto però che il \nopagebreak non agisce. L’avevo messo proprio per evitare
di avere la soluzione (di meno di una riga) alla pagina successiva rispetto all’esercizio, ma quando è capitato il salto di pagina
non ha funzionato. Che cosa ho sbagliato?

Prima di tutto non vedo perché usare un ambiente per una cosa del genere. Il problema è che \begin{flushright} inserisce fra e altre cose un punto adatto in cui spezzare la pagina.
`\newcommand{\solcort}[1]{%
{\unskip\nobreak\hfil\penalty50
\hspace{2em}\null\nobreak
\hfil{\slshape\footnotesize[#1]}
\parfillskip=0pt \finalhyphendemerits=0 \widowpenalty=10000 \par}
}`
Scrivendo
`Testo dell'esercizio
\solcort{0}`
avrai la soluzione in fondo alla riga, se c’è abbastanza spazio, altrimenti in fondo alla riga successiva. In questo caso non verrà spezzata per via delle regole sulle righe vedove.

Proprio sicuro di \slshape?

Ciao
Enrico

Go to top