Re: Nuovi ambienti: prevenire l’andata a capo

#13751
Up
0
Down
::

8) Prometti di usarlo solo se capisci ciò che fanno questii comandi 8)

Ti do la mia parola d’onore. Anzi, il minimo che posso fare per ringraziarti è spiegare cio che sono riuscito a capire della tua definizione agli altri lettori interessati:

  • `\makeatletter
    […]
    \makeatother`
    Tutto l’ambiente è compreso tra le istruzioni «\makeatletter» e «\makeatother», che fanno sì che gli eventuali caratteri chiocciola («@») in esse contenuti vengano trattati come dei caratteri qualsiasi, senza effetti collaterali;

  • `\newenvironment{esercizio}
    { […] } <--- apertura { [...] } <--- chiusura` Viene dichiarato l'ambiente «esercizio»; [li]`\par\addvspace{\medskipamount}\noindent\textbf{Esercizio.}\ % \@ifnextchar\par{\@gobble}{}` Questo è il codice di apertura:[ul][li]`\par` Si inizia un nuovo paragrafo (o capoverso); [li]`\addvspace{\medskipamount}` Il comando «\addvspace» ci hai già gentilmente spiegato tu che cosa fa:

    Quando LaTeX vede due \addvspace consecutivi, esegue solo quello che ordina la spaziatura maggiore (uno solo se viene ordinata la stessa spaziatura da ambedue).

    «\medskipamount» in questo caso è la dimensione di questa spaziatura. Si può mettere una grandezza a piacere;

  • `\noindent`
    Il paragrafo immediatamente seguente non è interessato dall’indentazione;

  • `\textbf{Esercizio.}`
    Viene stampata la stringa «Esercizio.» (sul perché si usa «\textbf» al posto di «\bfseries», si legga il topic sottolineato, in particolare i messaggi <http://www.guit.sssup.it/phpBB2/viewtopic.php?p=10943#10943> e <http://www.guit.sssup.it/phpBB2/viewtopic.php?p=10952#10952>), in neretto (non «grassetto», come credevo fino a non molto tempo fa, altra perla, Parole chiave in grassetto con listings [Risolto], <http://guit.sssup.it/phpbb/viewtopic.php?highlight=neretto&p=11978#11978>);

  • `\ <--- c'è uno spazio` Questa stringa viene separata da un carattere di spaziatura dal testo immediatamente seguente; [li]`\@ifnextchar\par` Questo è il punto chiave (almeno per me, visto che è la prima volta che mi capita sotto il naso): evidentemente, esiste un comando di nome «\@ifnextchar» che effettua un test sul carattere immediatamente successivo: a seconda dell’esito di questo test, può fare (o non fare) qualcosa. In questo caso, se il carattere immediatamente successivo è «\par» (o, immagino, un’equivalente andata a capo)…

  • `{\@gobble}{}`
    … viene chiamato il comando «\@gobble», che, come abbiamo già letto nella discussione Occultare un comando con parametri, <http://guit.sssup.it/phpbb/viewtopic.php?t=1578&highlight=gobble>, oppure all’indirizzo <http://www.tug.org/pipermail/macostex-archives/2005-April/014764.html>, “cancella” il primo carattere che trova (che non sia uno spazio bianco) oppure la prima stringa che trova raggruppata tra parentesi; se, al contrario, il carattere immediatamente successivo non è «\par», non si fa nulla («{}»).

  • `\par\addvspace{\medskipamount}`
    Questo è il codice di chiusura:

    • `\par`
      Come sopra, si inizia un nuovo paragrafo o capoverso;

    • `\addvspace{\medskipamount}`
      Come sopra, si tiene conto della spaziatura.

    [/ul]L’ultima cosa che mi viene da dire, che non c’entra tantissimo con questo argomento, è che dovrò riuscire a capire il significato del carattere chiocciola per TeX/LaTeX quando non è reso come un carattere come tutti gli altri. Visto che è già un bel po’ che mi scontro con questo argomento, mi sa che questa è la volta buona per comprare il TeXbook

    Grazie ancora e a presto!!! 🙂

  • Go to top