Re: Ambiente esempio con sfondo e righe orizzontali

#31447
Up
0
Down
::

😯 Ti ringrazio davvero di cuore Enrico, che più volte hai risposto alle mie richieste con rapidità strabiliante.

Direi che è meglio se sostituisci 1.2em nella definizione dello stile esempio con \parindent.

Fatto, grazie mille, se l’avessi saputo l’avrei fatto da subito!

Inoltre è inutile chiedere \textsc dentro a \textbf, i font cmbright non possiedono il maiuscoletto nero.

Strabiliante, ma a giudicare da quello che vedo ho l’impressione che dal cappello sia uscito il maiuscoletto grassetto! Il risultato della compilazione è disponibile come file pdf all’indirizzo: http://documents.scribd.com/docs/1axsrezopw6qx4g7sofz.pdf Tra l’altro non era neppure mia intenzione, è stato solo un’errore di distrazione!

In definitiva lo trovo piuttosto brutto.
Ciao
Enrico

Questo mi sembra molto interessante, sono pronto a mettere tutto in discussione! Solo che non ho detto che ho usato lo stile classictesi + arsclassica. al link di sopra si vedono i risultati

`\newsavebox{\esbox}
\newenvironment{ruledgray}[1][\linewidth]
{\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
\hrule\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
\begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
{\end{minipage}\end{lrbox}%
\colorbox{lightbkgnd}{\usebox{\esbox}}%
\hrule\addvspace{\medskipamount}}`

Ho già abusato della tua pazienza, lo so, ma mi piacerebbe capire quello che sto facendo, per non dover più chiedere aiuto, e magari per poter anche aiutare! Il mio codice l’avevo scritto più o meno dopo una giornata di ricerche, e riprende quanto fatto dalla guida GUIT a pag 207.
Questo codice dovrebbe comportarsi così:
* Crea una “scatola”
* inserisce al suo interno un ambiente
* l’ambiente per prima cosa mette uno spazio, poi una riga, fin qui più o meno si capisce
* \begin{lrbox}{\esbox} questo fa un’altra scatola?!?
* e poi dentro ci metto una minipage?!? Una matriosca di testo!!!
* il testo al suo interno è largo quanto il testo meno 2 separazioni ( #1-2\fboxsep)
* chiudo tutto e passo le scatole create a colorbox per applicare lo sfondo,
* infine la riga orizzontale di chiusura e l’altro spazio..
Quello che non capisco è il perché di questo gioco di matriosche e l’uso dei tanti \keepparindent

Come si vede dal pdf la riga iniziale non è attaccata al blocco seguente, infatti resta alla pagina precedente! Non è un problema, non mi va di fare altre richieste, alla fine forzo un’interruzione di pagina manualmente dove dovesse servire. Infine faccio notare che se si guarda il pdf al 105% con il reader di adobe la riga superiore scompare (almeno sul mio pc), per via di una erronea visualizzazione, superabile se lo sfondo grigio fosse messo sotto le linee orizzontali!

Ciao, grazie mille, Roberto!

Il comando \newsavebox{\esbox} riserva un registro box; meglio fare così che usare \box0 in questo caso. L’ambiente ruledgray è essenzialmente lo stesso che hai scritto tu, ma in linguaggio LaTeX; meglio così per via del colore, credimi.

L’ambiente lrbox crea una box memorizzandola nel registro \esbox; ma questa box è simile a una \mbox, quindi dentro ci metto una minipage larga #1-2\fboxsep (dimenticavo che occorre caricare il pacchetto calc). Tu usavi una \vbox con \hsize=#1 e questo era la causa dello “spostamento” che lamentavi: devi tenere conto del piccolo margine dovuto al \colorbox seguente. Prima ho impostato a zero \fboxrule, che non ci interessa, altrimenti si avrebbe un riquadro.

Il trucco con \keepparindent serve per impostare dentro alla minipage il rientro uguale a quello normale, nel caso ci sia più di un paragrafo.

Per evitare il problema della riga iniziale nella pagina precedente, inserisci \nobreak fra \hrule e \noindent.

Il fatto che il filetto sparisca probabilmente è dovuto al visualizzatore di pdf. Guarda al massimo ingrandimento e vedrai che c’è

Ciao
Enrico

Go to top