Re: [Risolto] legare quote al testo precedente

#56122
Up
0
Down
::

[…]
C’è un’altra soluzione che funziona se il capoverso precedente la citazione è di almeno quattro righe (se il capoverso precedente è di tre righe o meno il problema non si pone: tutto di là).
`\newenvironment{specialpar}[1]{\par#1}{\par}

\begin{specialpar}{\widowpenalties 3 10000 -10000 0\relax}
Testo del capoverso precedente la citazione, lungo almeno quattro righe
\end{specialpar}
\begin{quote}
Citazione che si porterà dietro esattamente due righe del capoverso precedente.
\end{quote}`
Carino, vero?

[…]

Non mi convince appieno, per almeno due motivi:

1) occorre intervenire anche sul capoverso precedente la citazione, per incapsularlo nell’ambiente specialpar;

2) ma soprattutto, non è che una variante della prima soluzione (forzare un cambio di pagina due righe prima della citazione), e ne condivide il difetto di richiedere di sapere già che la pagina sta per finire.

Infine, sono un vecchio barbogio tradizionalista, e finché posso rimanere fedele al TeX di Knuth son più contento.

Insisto col dire che la soluzione del problema sia cambiare il valore di \@beginparpenalty, o definendo un ambiente ad hoc come il sopraccitato quote*, o direttamente per le vie brevi:
`
\begingroup
\makeatletter \@beginparpenalty = \@M \makeatother
\begin{quote}
Mettete qui la vostra citazione.\qquad
(\textsl{B.~Stroustrup})
\end{quote}
\endgroup
`
(come avevo scritto — e poi scientemente cancellato! — prima di tentare maldestramente di fare troppo il furbo).

Si può anche considerare una variante più blanda, con \@beginparpenalty impostato a \@highpenalty anziché a 10000.

Ciao.


Gustavo

Go to top