Ciao a tutti,
vorrei chiedervi un’informazione. All’epoca avevo iniziato a usare LaTeX seguendo la guida impara LaTeX, la quale indicava di usare il comando:
`\usepackage[latin1]{inputenc}`
Sull’arte, invece, e spesso anche nel forum, vedo che viene usato:
`\usepackage[utf8]{inputenc}`
Che differenza c’è? E quale opzione è preferibile usare con inputenc? (Se dovesse servire: io uso MikTeX sotto windows vista).Grazie e buona giornata a tutti,
Daniele
Come giustamente segnalato da Ivan e scritto nell’Arte, usa utf8.
Ricorda però, sempre come scritto nell’Arte, che non tutti gli editor supportano utf8.
Se usi TeXniccenter o Winedt infatti, ti conviene usare ancora la codifica latin1.
Dato che chiedevi anche la differenza tra le due opzioni, cercherò di spiegartela in breve.
Con il termine codifica si intende una corrispondenza tra oggetti (in questo caso simboli)
e numeri (espressi nel sistema binario nei computer).
Quando si scrive un file di testo e per esempio si inserisce la lettera “a”,
l’editor di testo mette una sequenza di bit nel file a seconda di quale codifica l’utente
ha scelto. Nelle codifiche ASCII, ISO-8859-1 (cioè la latin1) e UTF-8 la lettera “a”
è rappresentata dalla stessa sequenza di bit in tutti e tre i casi (01100001 cioè 61 in binario).
ASCII però descrive solo 128 simboli, ISO-8859-1 ne descrive 256 mentre UTF-8
una infinità.
I primi 128 simboli sono uguali nei tre casi. Quindi di un file che usi solo
questi primi 128 simboli puoi dire che è codificato in ASCII, o in ISO-8859-1 o in UTF-8.
Il compilatore LaTeX normalmente usato accetta solo caratteri ASCII. E se devi far
comparire caratteri che non sono tra i 128 dell’ASCII come fai? Per esempio la lettera
accentata “é”? Semplice, esistono dei comandi appositi, nell’esempio \’e.
E se volessi scrivere direttamente il carattere “é” nel sorgente? Innanzitutto dovresti
usare una codifica che contempli più di 128 simboli e che contenga il carattere che mi
interessa. Solitamente ISO-8859-1, cioè latin1, oppure UTF-8. Come fare a usarla?
Lo devi dire al tuo editor di testo in qualche opzione, in modo che quando scriverai
“é” lui la sostituirà con la sequenza di bit opportuna (11101001 in latin1 oppure 1100001110101001 in UTF-8 ).
Una volta salvato il file nella codifica che più ti piace, come facciamo a far digerire
al compilatore LaTeX delle sequenze di bit che non sono ASCII? Semplice, non possiamo.
L’unica cosa che possiamo fare è trasformare quelle sequenze di bit nei vecchi comandi,
tanto scomodi. Di questo se ne occupa proprio il pacchetto inputenc al quale dobbiamo
dire prima di tutto con che codifica abbiamo scritto il file. Dopodiché, in fase di
compilazione, lui si preoccuperà di trasformare tutte le sequenza di bit “inaspettate”
in comandi tranquilli. Per esempio se abbiamo scelto UTF-8, inputenc ogni volta che
incontrerà la sequenza 1100001110101001 la trasformerà nel comando \’e.
È chiaro quindi che se il file lo salviamo in una codifica e a inputenc gli diciamo che ne
abbiamo usata un’altra, questa sostituzione sarà sbagliata.
Le cose a grandi linee vanno in questo modo.
Il fatto di scegliere UTF-8 al posto di ISO-8859-1, cioè latin1, dipende solo dal fatto
che la prima è una codifica universale, pensata per rappresentare tutti i simboli
di tutte le lingue del mondo. E infatti pian piano tutti i software stanno migrando
verso questa codifica in modo che in un mondo ideale ci sarà, in futuro, solo lei.
L’altra, la latin1, è più vecchia e copre solo i caratteri usati nelle lingue dell’europa
occidentale.
Chiaramente in entrambi i casi il risultato che otterrai sarà identico però se scegli
UTF-8 il tuo sorgente sarà “più moderno”.
Ciao ciao.
Fra