vorrei proporre un testo di sintesi\conferma di quanto ho capito per questo comando, ho l’esigenza di collaborare sullo stesso file con diverse persone, utilizzatrici di LaTeX, differenti…con impostazioni differenti…su piattaforme differenti…
cominciamo:
quando apriamo\compiliamo\modifichiamo-salviamo un file .tex eseguiamo sostanzialmente tre operazioni differenti:
– leggiamo un file .tex codificato (traducendolo per “vederlo”) — apertura;
– produciamo un file .pdf interpretando il codice scritto .tex (in una certa codifica) — compilazione;
– codifichiamo un file .tex (codificandolo) — modifica-salvataggio.
il TeXShop (per gli utilizzatori del mac) di default unifica la prima e l’ultima operazione, ovvero ha un’unica impostazione “codifica” che individuiamo dal menù preferences>encoding (a metà schermata, la prima che appare, sulla destra).
[io ad esempio ho settato “Western (ISO Latin 1)”, quindi ogni file .tex lo aprirò interpretandolo come un “latin 1” e quando lo salverò lo codificherò come un “latin 1”]
è possibile “forzare” la lettura del file in una data codifica inserendo una riga commentata magica: “% !TEX encoding = IsoLatin” in testa al codice, ovvero la prima riga (senza virgolette iniziale e finale ovviamente…)
non mi è noto un “codice” da scrivere sul file .tex per “forzare” la codifica in fase di salvataggio\input da tastiera…(e non credo sia fattibile senza modificare i driver…)
quando creiamo un .pdf compilando il .tex, il motore TeX tradurrà quello che “legge” nel nostro file .tex come sta scritto in luogo di XXXXXX nella riga del preambolo “\usepackage[XXXXXX]{inputenc}”…che in linea di principio non corrisponde necessariamente a come noi “vediamo” il testo a video (cosa che riguarda TeXShop e non TeX…)…
facciamo un esempio per fare, e chiarire, un po’ di confusione:
1)io il mio TeXShop l’ho impostato su preferences>encoding “utf8” e nel preambolo del mio file scrivo \usepackage[utf8]{inputenc};
2)ti passo il file
3)tu hai impostato il tuo TeXShop con preferences>encoding su ISO Latin 1, apri il file e tutte le lettere accentate e altro non le vedi a video e noti caratteri strani (perché hai aperto un file codificato utf8 come fosse un latin1)!!
4)quando compili però funziona tutto e il pdf viene bene e bello (perché io ho scritto \usepackage[utf8]{inputenc} e quindi il TeXShop lo legge male e te lo fa vedere in modo incomprensibile ma il motore TeX lo interpreta giusto e quindi il pdf viene bene!)
5)trovi degli errori e fai delle modifiche al file .tex, lo salvi e me lo rimandi;
6)io lo apro e leggo tutto male (perché tu salvandolo lo ha salvato come un latin1 e io lo sto aprendo come utf8) tra l’altro compilo e non funziona niente..magari mi da pure errore e si blocca (perché quello che hai scritto tu è stato salvato in latin1 e il motore tex (di chiunque) lo interpreta utf8 per via della riga \usepackage[utf8]{inputenc})
7)macello e delirio generale.
8)tutto da buttare…
soluzione in prima approssimazione…
1)io il mio TeXShop l’ho impostato su preferences>encoding “utf8” e nel preambolo del mio file scrivo \usepackage[utf8]{inputenc}; 1bis) preventivamente so già che il file non lo aprirò (con lo scopo di modificarlo) solo io oppure quando sarà il momento di passare il file “penso” al fatto che se sto passando un .tex, forse, non lo modificherò solo io…
1ter) inserisco nella primissima riga la dicitura “% !TEX encoding = utf8” (a questo punto quando tu lo aprirai, il tuo TeXShop ignorerà le proprie impostazioni e lo “leggerà” come un utf8)
2)ti passo il file
3)lo apri e leggi tutto (grazie alla riga magica)
4)compili e funziona tutto (grazie alla riga nel preambolo \usepackage[utf8]{inputenc})
5)trovi degli errori e fai delle modifiche al file .tex, lo salvi e me lo rimandi;
6)io lo apro e leggo COMUNQUE tutto male (perché tu salvandolo lo hai salvato come un latin1 e io lo sto aprendo come utf8..tra l’altro per via della riga magica “% !TEX encoding = utf8” CHIUNQUE lo aprirebbe come un utf8…anche tu…e quindi una volta chiuso nessuno lo leggerà più bene!) tra l’altro compilo e non funzione (perché quello che hai scritto tu è stato salvato in latin1 e il motore tex lo interpreta utf8 per via della riga \usepackage[utf8]{inputenc})
7)macello e delirio generale…da te in poi…
8)tutto da buttare…
soluzione in approssimazione generale…non la conosco…
un’idea che mi è venuta è:
decido PRIMA con chi interagirà quel file…tutti impostano la codifica allo stesso modo…(utf8…che è lo standard mondiale o per lo meno latin 1 che è quello europeo…mac os roman non so che vantaggi ha…) e si lavora tutti in sinergia…
…ma…se non so a priori chi interagirà con il file .tex come faccio? e se chi interagirà non ha modo (o voglia) di cambiare impostazioni per ogni gruppo di lavoro che non usa le medesime impostazioni, come faccio?…
c’è una soluzione, in fase di creazione di un file nuovo in in generale, per fare in modo che sia “auto-etero-compatibile”? è giusto, perlomeno quello che ho capito? quando consigliate di usare utf8? quando latin1? perché e quando usare mac os roman e come mai se non va bene è di default su TeXShop? 🙂
Grazie a chiunque vorrà rispondere 🙂
ciao ciao,
Corrado.
Tutti i misteri sulle codifiche sono svelati nella guida tematica alle codifiche scritta da Claudio e da me. Puoi scaricarla dalla sezione documentazione qui sopra.