Newsgroup: it.comp.software.tex
Titolo: Derivare un ambiente da un altro

Arisalve a tutti.
Devo inserire delle citazioni in un documento e vorrei utilizzare 
l'ambiente quote. Dato che queste citazioni sono in posizione nota (sempre 
all'inizio di ogni section) e a volte sono lunghe e doppie (il testo che 
cito ne cita a sua volta un'altro) vorrei evitare il margine più stretto. 
Ho dunque il bisogno di creare un nuovo ambiente identico a quote ma con 
l'impostazione \setlength{\leftmargin{0pt}}.
Se faccio un \renewenvironment anche il testo citato la seconda volta viene 
scritto col margine normale, se scrivo il \setlength subito dopo il 
\begin{quote} oppure scrivo:
{\setlength{\leftmargin{0pt}}
\begin{quote}
testo testo testo testo testo testo testo testo testo testo testo.
end{quote}
}
non mi si fila: resta il margina più stretto.
-- 
Una volta che avete conosciuto il volo, camminerete sulla Terra guardando 
il cielo, perché là siete stati e là desiderate tornare (Leonardo da Vinci)

Stefano Costantini (
indi...@email.it
) wrote:
[CUT]
Ho trovato la definizione dell'ambiente quote dentro la classe book (che è 
quella che uso):
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item\relax}
               {\endlist}
e l'ho mosdificata così:
\newenvironment{quota}
               {\list{}{\rightmargin 0pt
                        \leftmargin 0pt}%
                \item\relax}
               {\endlist}
Funziona.
Sarebbe comunque interessante sapere se è possibile 'clonare' gli ambienti.


 Sarebbe comunque interessante sapere se č possibile 'clonare' gli ambienti.
In che senso "clonare" gli ambienti? Puoi sempre fare
\newenvironment{myenv}{\begin{env}<comandi>}{<comandi>\end{env}}
ma non sempre ottieni quello che ti serve, come nell'esempio
precedente. Invece di usare \begin{env} e \end{env}, per evitare
di aprire gruppi basta impiegare \env e \endenv. Naturalmente
"env" va sostituito con il nome dell'ambiente desiderato.
Non ho seguito il thread, ma se tutto ciň che serviva era lasciare
un po' di spazio bianco prima e dopo un paragrafo, non occorre scomodare
"list". Forse
\newenvironment{quota}{\trivlist\item[]}{\endtrivlist}
sarebbe stato meno complicato.
Ciao
Enrico

 sarebbe stato meno complicato.
In realtà vorrei anche cambiare il carattere ma non ho trovato niente di 
carino (l'ideale sarebbe stato qualcosa di 'calligrafico' ma poi mi serve 
anche il corsivo quindi...). L'ambiente quote mi va bene perché anziché far 
rientrare la prima riga lascia un po' di spazio tra i paragrafi (il 
contrario del resto del testo).


 \renewenvironment{myquote}{<comandi>}
Augh!  \newenvironment e \renewenvironment non funzionano mica cosi'
(vogliono *due* argomenti).
La ricetta generale e' guardare come e' definito (in latex.ltx,
article.cls o dovunque sia) quello che vuoi modificare; poi di copiare
il tutto nel tuo preambolo, modificato come garba a te, dentro un
\renewcommand o \renewenvironment.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 \renewcommand o \renewenvironment.
Quello che vorrei io è la comodità di non dovermi cercare la definizione 
originale ovunque essa sia. Semplicemente gli dico: vattela a cercare tu e 
cambia solo quello che ti dico di cambiare. Se faccio un \renewenvironment 
gli devo ripetere anche tutto quello che non voglio modificare, o sbaglio?


 cambia solo quello che ti dico di cambiare.
Se non guardi, come sai _cosa_ vuoi cambiare e _come_?  Prova a dire a
LaTeX \renewcommand{\chapter}{Mettimelo in sans-serif, per favore} ;
anche usando la parola magica ("per favore") non funziona tanto bene.
YMMV, of course                         8^)



Ehm, neanche io mi intendo di Latex, ma credo che il nostro amico
chieda semplicemente se c'e' un meccanismo tipo di ereditarietà
(vedi programmazione a oggetti...).
Antonio, Fabio Di Narzo.
-- 
Creato con M2, il rivoluzionario client e-mail di Opera: 
http://www.opera.com/m2/

 (vedi programmazione a oggetti...).
Se derivi da una classe base, e vuoi fare l'override di qualche metodo
virtuale... non e' che per caso ti guardi la signature dei metodi da
ridefinire e magari che cosa fanno?


contrario del resto del testo).
Cambiare font nelle citazioni non è una grande idea, soprattutto se, come
dici, sono molto lunghe. In qualche modo vanno caratterizzate, certo, ma un
carattere corsivo (o, ancor peggio, calligrafico) attira troppo
l'attenzione e distrae dalla lettura. E' una di quelle cose che sembrano
simpatiche a pensarci, e divertenti per le prime pagina, ma poi stancano.
Considerazioni personali, evidentemente, ma con un buon riscontro in
letteratura e una qualche base di psicologia percettiva.
Ciao.

ridefinire e magari che cosa fanno?
Certamente, non basta dare una mano di "oggetti" e qualche spruzzatina di
"ereditarietà" qui e là per rendere il codice facilmente riutilizzabile e
personalizzabile. Anche se si usa un linguaggio ad oggetti puro e completo,
bisognerà comunque scrivere il codice in modo che possa essere facilmente
personalizzato dove si vuole che lo sia. E comunque l'utilizzatore finale
qualcosa di suo dovrà rassegnarsi a mettercelo.
A volte però sembra proprio che gli sviluppatori di LaTeX (sia Lamport che
gli autori dei vari pacchetti) abbiano fatto di tutto per garantirsi il
fine opposto: che una qualunque modifica e personalizzazione sia il più
possibile complicata, macchinosa e problematica.
La natura del linguaggio può aiutare od ostacolare (nel caso di TeX,
certamente non aiuta), ma è vero che quello che conta è come si progetta il
codice. Nel caso di LaTeX, però, anche il progetto è stato fatto con tutto
in mente tranne la possibilità di riutilizzare e personalizzare facilmente
i comandi.
Ciao.

 
In effetti era proprio un qualcosa tipo ereditarietà. Capisco i problemi (a 
cui prima non avevo pensato) ma credo comunque che resterebbe comodo.
In particolare io volevo solo cambiare i margini quindi il risultato lo 
vedo ad occhio.
Più in generale potrei definirmi una classe partendo da zero in cui 
definisco uno stile 'normale' e poi derivo un secondo stile 'citazione' o 
'approfondimento' per citazioni e approfondimenti definiti per differenza.


 letteratura e una qualche base di psicologia percettiva.
Si accettano suggerimenti. Che mi consigli? Basta il fatto che si sa che 
ogni section si apre con una citazione e quando arrivo allo spazietto so 
che inizia il testo (oltre al fatto che nella citazione i paragrafi sono 
evidenziati con un \parsep > 0 e un \parindent = 0 mentre per il testo è 
il contrario)?


 ogni section si apre con una citazione
FAQ.  Capitoletto "Typesetting epigraphs".
Cfr.: 
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=epigraph


il contrario)?
Io trovo accettabile la soluzione dell'ambiente quote originale, un rientro
su entrambi i margini. Certo, se hai citazioni dentro citazioni, può essere
giustificata la tua scelta di eliminare il rientro. Una qualche separazione
(asterisco, righina, o anche solo uno spazio) potrebbe essere sufficiente.
Si potrebbe forse tentare anche di utilizzare il medesimo font del testo,
ma in un corpo un po' più piccolo, con attenzione a non scendere troppo (se
già usi un 10pt per il testo, perché sia apprezzabile la differenza
dovresti forse usare un 8pt, che per alcuni può già essere affaticante).
O metterci proprio un bel "Citazione" all'inizio, e alla fine fonte e
autore, che così, accidenti, si capirà pure!
Un'idea più ragionevole che seguire i miei consigli, comunque, è sfogliare
qualche libro, vedendo quali soluzioni sono state utilizzate per il
problema e quali ti convincono di più.
Ciao.

 Cfr.: 
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=epigraph
Non era quello che intendevo ma grazie lo stesso: potrà sempre tornare 
utile in futuro.


 per il problema e quali ti convincono di più.
Grazie per i consigli.


 il contrario)?
Il modo tradizionale per le citazioni lunghe è di scriverle in 
carattere di corpo minore con separazione verticale prima e dopo.
Il rientro almeno nei paragrafi successivi al primo.
Quindi
\newenvironment{myquote}{\begin{quote}\small}{\par\end{quote}}
Ciao
Enrico