Re: Dizionario

#66400
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    L’importante è che funzioni, ma il mio comando \@lista, quello che fa tuto il lavoro, si appoggia ad una funzionalità del linguaggio primitivo di TeX, quindi è difficile da capire.
    Cerco di spiegarmi, anche se trovi una spiegazione migliore con altri esempi se cerchi nella cartella di ArsTeXnica il mio articolo sugli “Argomenti delimitati.

    In poche parole (e poche parole non bastano) \@lista prende una lista di nomi separati da virgole che funzionano da delimitatori degli argomenti; il punto esclamativo alla fine funziona da delimitatore finale. Allora i tre argomenti di \@lista separano il primo nome prima della prima virgola, il secondo nome prima della seconda virgola e poi tutto il resto fino alla fine. Se il secondo argomento è vuoto, vuol dire che il primo argomento era l’ultimo della lista, quindi lo emette pronto per essere stampato; se invece il secondo non è vuoto lo emette seguito da una virgola e poi uno spazio e infine richiama se stesso (\@lista) rimettendo in file il secondo e il terzo argomento. L’argomento facoltativo di \lista contiene la dichiarazione con cui viene specificato la serie, la forma, volendo la famiglia e il corpo del nome da stampare, quindi il primo o unico elemento della lista viene in realtà emesso dentro un gruppo e preceduto dalla dichiarazione o dalla dichiarazioni relative ai font da usare; siccome queste dichiarazioni compaiono dentro un gruppo esse valgono solo dentro il gruppo e non si propagano fuori.

    Si può fare di meglio, ma ho scritto il codice di getto e non sono stato lì a rifinire; ci sono altri comandi primitivi di TeX o di plain TeX che lavorano a basso livello, una specie di linguaggio macchina, ma che permettono di fare altri giochetti del genere e forse in modo più efficiente.

    Io ti suggerirei di non preoccuparti troppo di queste cose; prima di imparare a scriverle tu stesso/a ci vuole del tempo e molta pratica (quindi anche molti errori…); bisogna studiare gli Elementi di programmazione in TeX e LaTeX di Enrico; poi bisogna approfondire nel TeXbook; è lunga, molto lunga questa strada; la si accorcia se si ha una forte passione per questo tipo di programmazione con un linguaggio interpretato e sulla base delle conoscenze informatiche che si possono già possedere. Io per esempio non ho nessuna nozione di Java o di Python, nemmeno di Bash (tutti linguaggi interpretati), che oggi fanno parte del normale curriculum di studi per studenti universitari, non necessariamente nei corsi di laurea di informatica delle facoltà di scienze o di ingegneria. Quindi ci ho messo molto tempo; siccome ho cominciato quasi 30 anni fa, di tempo ne ho avuto molto…

    Go to top