Definire un ambiente personale per le citazioni in display

  • Creatore
    Topic
  • #94238
    Up
    0
    Down
    ::


    Volendo modificare leggermente il comportamento degli ambienti standard [tt]quote[/tt] e [tt]quotation[/tt] in modo che il corpo del carattere del testo citato sia più piccolo di quello corrente, si può scrivere:
    `\newenvironment{citazione}%
    {\begin{quotation}\small}%
    {\end{quotation}}`
    Vorrei sapere se, secondo voi, è il caso di aggiungere comandi come [tt]\ignorespaces[/tt] e [tt]\ignorespacesafterend[/tt]. Non ho ben capito a che cosa servano e, soprattutto, quando è il caso di metterli.

    Ricordo, per chi volesse un ambiente personale per citazioni con la possibilità di scrivere anche la fonte, che Enrico nei suoi Appunti offre questa soluzione, che permette di avere il nome dell’autore spostato al margine destro, anche stando su una riga a sé se non rimane spazio sufficiente nell’ultima riga della citazione:
    `\newenvironment{citazione}[1]
    {\def\autorecitazione{#1}\begin{quotation}}
    {{\unskip\nobreak\hfil\penalty50
    \hspace{2em}\null\nobreak
    \hfil\textit{\autorecitazione}
    \parfillskip=0pt \finalhyphendemerits=0 \par}
    \end{quotation}}`

    Ciao
    Tommaso

Visualizzazione 0 filoni di risposte
  • Autore
    Risposte
    • #94239
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Be’ quei due comandi che non sai a che cosa servono, servono per fare quello che il loro nome dice, cioè di lasciare perdere gli spazi dopo la fine di una macro o di un ambiente. Come sai gli spazi e i fine riga dopo una graffa chiusa, sono significativi; se non ci vogliono bisogna “ignorarli” e quei comandi permettono di ignorarli.

        Ma per una citazione in display non è certo il caso, quindi non preoccupartene, ameno per le citazioni.
        Se definisci macro che mettano testo in linea potresti averne bisogno, dipende da quello che fai; ricordo di averli usati lustri fa, ma in questo momento non mi viene in mente niente di utile da proporti come esempio.

        Al contrario potresti avere bisogno di \xspace che mette uno spazio, se è necessario, dopo una macro che inserisce testo in linea. Per esempio, supponi di definire il comando \pdflatex così:`\newcommand*\pdflatex{pdf\/\LaTeX\xspace}
        \newcommand\latex{\LaTeX}` e di avere caricato il pacchetto xspace nel preambolo; allora puoi scrivere tranquillamente`… il programma di composizione \pdflatex usa il mark-up \LaTeX, ma produce in uscita un file in formato PDF, al contrario di \latex produce un file DVI…`Se provi queste poche righe di codice constaterai che dopo \LaTeX non occore mettere niente, perché c’è una virgola; dopo \pdflatex non occorre mettere niente perché il comando \xspace controlla quale sia il token successivo, e se è uno spazio, inserisce uno spazio esplicito; dopo il comando \latex è terminato dallo spazio, e quindi quello spazio risulta gia usato e il logo LaTeX resta attaccato a produce.

        Ecco quindi la diversa (piccola) utilità di \ignorespaces e \ingorespacesafterend rispetto alla (grande) utilità di \xspace.

        “piccola” e “grande”, ovviamente, sono miei pareri personali, che non mi aspetto che siano condivisi; sono perfettamente al corrente che la maggior parte dei comandi dichiarativi sono privi di \xspace alla fine della loro definizione, quindi se uno prende la cattiva abitudine di fare affidamento su \xspace, invece di ridurre gli errori li moltiplica enormemente.

    Visualizzazione 0 filoni di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top