Ciao Enrico, mi dispiace che tu abbia perso del tempo per rispondermi, alla fine sono riuscito a combinare, grazie a questo messaggio: <http://article.gmane.org/gmane.comp.tex.danish/4960> (fortunatamente il linguaggio è «universale», perché il danese proprio non lo capisco).
La soluzione cui ero arrivato:
`\newsavebox{\contenitore}
\newenvironment{enfasiForte}{%
\par\medskip\centering\begin{lrbox}{\contenitore}%
\begin{minipage}{.95\linewidth}%
\setlength{\parindent}{1.5em}%
}%
{%
\end{minipage}
\end{lrbox}%
{\fboxsep=.5em\fbox{\usebox{\contenitore}}}%
\par\medskip%
}
`
Comunque, ti ringrazio, e domani cercherò di migliorare la mia soluzione integrandola con la tua, che sicuramente presenterà qualche aspetto che non avrò preso in considerazione.
Quello che mi fa sorridere è che l’ambiente «lrbox» l’avevo già visto, ma non credevo fosse quello il suo ambito di utilizzo principale; dagli Appunti di informatica libera, <http://na.mirror.garr.it/mirrors/appuntilinux/HTML/a2.htm>, capitolo LaTeX: spazi e scatole, sezione Testo da salvare e da recuperare:
LaTeX ha una capacità limitata di memorizzare del testo in modo da poterlo inserire successivamente nella composizione:
`+———————————————————————+
| Comando | Descrizione |
+———————————————————————+
| \begin{lrbox}{n}testo\end{lrbox} | accumula nel registro n il testo |
| | indicato. |
|———————————————————————|
| | inserisce nella composizione il |
| \usebox{n} | testo corrispondente al registro |
| | n, in una scatola orizzontale. |
+———————————————————————+
`
Esempio (codice):
`\begin{lrbox}{1}
ciao a tutti
\end{lrbox}\begin{lrbox}{2}
ma che bello
\end{lrbox}Bla bla bla \usebox{2} bla bla bla \usebox{1} bla bla bla \usebox{2} bla
bla bla \usebox{1} bla bla bla
`
Esempio (output):
`Bla bla bla ma che bello bla bla bla ciao a tutti bla bla bla ma che bello bla
bla bla ciao a tutti bla bla bla
`
non ridete per l’ambiente «center», so che non si dovrebbe usare, ma questa era solo una prova; fossi stato in grado di realizzare l’ambiente finale «enfasiForte» avrei richiamato «\centering»
Non c’è niente di male a usare l’ambiente center. Non va usato all’interno di un ambiente figure o table, ma è un’altra faccenda.
Intendevo dire che lo stavo usavo direttamente nel corpo ver vedere l’effetto finale, ma se fossi riuscito ad arrivare alla definizione di un ambiente apposito lo avrei sicuramente rimosso, in quanto
-
è vero che non lo si usa né in «figure» né in «table», ma secondo me non lo si dovrebbe usare in nessun altro ambiente in cui, comunque, si va a definire manualmente una qualche forma di spaziatura (nel mio caso, «\par» e «\medskip»);
-
più in generale, sempre per la separazione tra logica e presentazione, se possibile, cerco sempre di spostare la seconda nelle classi di documento e nei pacchetti (la centratura, per me, è presentazione, non logica).
l’ambiente «minipage» azzera «\parindent»
[…]
Bel suggerimento, ma quanto vale «\parindent»? un «\the\parindent» esplicito nel corpo mi ritorna 15.0pt, ma dubito seriamente che nei sorgenti di LaTeX (o di TeX) questa grandezza sia stata definita in modo non elastico.Vale quanto vale 🙂 Di sicuro non è una lunghezza elastica, non avrebbe senso.
Non si finisce mai di imparare. Ad ogni modo, sono rimasto colpito dal fatto che l’unità di misura di quella lunghezza non è qualcosa di relativo, come em. Immagino che questo voglia dire che classi di documento diverse (se vogliono) ridefiniranno questa lunghezza secondo le loro esigenze. Me la immaginavo come un qualcosa di «intoccabile».
Non puoi aprire una graffa nella prima parte e chiuderla nella seconda. L’unico modo è di usare l’ambiente lrbox, ideato proprio per questo
Ecco la morale di oggi.
`\setlength{\eFlen}{\parindent}% memorizzo la dimensione del rientro
\centering % prima di dare \centering che la azzera
`
Anche questa è una cosa molto utile che mi servirà sicuramente in futuro.
Due ultime osservazioni prima che io pensi a sistemare definitivamente l’ambiente:
-
è indifferente se lo spazio tra il riquadro e il suo contenuto («\fboxsep») viene dichiarato all’interno dell’ambiente «lrbox» (come hai fatto tu) o nel momento in cui questo «registro» viene usato (come ho fatto io)? Sembrerebbe di sì;
-
memore di un’altra conversazione che abbiamo avuto un po’ di tempo fa (<http://www.guit.sssup.it/phpBB2/viewtopic.php?p=7872#7872>), mi sono chiesto se anche nella definizione di questo ambiente ci sarebbe stato bisogno di uno «\ignorespaces», ma sembrerebbe che con una o più andate a capo il risultato (in questo caso) sia identico. Immagino dipenda dal fatto che ci troviamo in un contesto differente.
Grazie e a presto!