- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni fa da .
-
Topic
-
Ultimamente mi sono dato un’occhiata al codice dei pacchetti offerti da latex e, a parte qualche trucchetto interessante sono incappato in un pò di comandi strani che non riesco a capire.Il primo di questi l’ho letto mentre esploravo il file di dichiarazioni del formato texinfo. Volevo capire come loro fossero riusciti a fare in modo che il carattere _ (underscore) diventasse un carattere normale e poi ero curioso di capire come avevano fatto a modificare tex in modo che il carattere che introduce un comando non fosse \ ma @. Vabbè, ciancio alle bande, sono incappato in… spe che faccio un copia incolla…
`\catcode`+=\active \catcode`\_=\active`
Fatto, qualcuno mi spiega a cosa serve precisamente il comando catcode?
Ho trovato anche il comando \char{codice-ascii} che permette di inserire un carattere qualsiasi e il suo equivalente latex \symbol{codice-ascii}
In più ho trovato questo:
`\chardef\colonChar = `\:`E una cosa che ho trovato in altri sorgenti è
`\@ifnextchar[…]` che non capisco se da la possibilità di effettuare I/O da file carattere per carattere… 💡A parte la parola ifnextchar, non è la prima volta che vedo il carattere @ nel nome di un comando… ho cercato in rete ma non ho trovato niulla… voi sapete dirmi a cosa serve?
Ultima cosa poi vi lascio in pace… In questi giorni che sto personalizzando i comandi mi sono imbattuto nel pacchetto keyval. Il manuale dice che si dichiara una nuova macro si dichiarano i parametri utilizzando comandi come:
`\define@key{set}{id}{body}`
e si utilizzano i parametri identificandoli con nomi come
`\KV@set@id`
Il problema è che la cosa non mi funziona, quando elaboro mi dice:
` Undefined control sequence:
\define
@key{…..
`
Son sicuro di aver importato il pacchetto ma non funziona… peccato sembra comodo… 😥Vabbè, ringrazio in anticipo e me ne vado a dormire…
PS: Su questa text entry si sente la mancanza di un tag per l’inserimento di un pezzetto di codice inline 😉
- Devi essere connesso per rispondere a questo topic.