Re: PROBLEMA: includegraphics e caratteri speciali nel nome file

#25574
Up
0
Down
::

Scusa per le informazioni incomplete.
Comunque è esatto, il sistema operativo è Win e la codifica è latin1.
Il tipo di errore è:
`
! LaTeX Error: File '”c:/cartella 1/cartella.2/\IeC {\pounds }”' not found.
`

Ho provato con \string£ e…era proprio quello che cercavo! Adesso funziona tutto!! Forse non avevo ben compreso il significato di \string…quindi in LaTeX \string permette di fare l’escape sequence del carattere che lo segue?

Esattamente. Forse è il caso di ripetere quanto già scritto altre volte su come funziona inputenc. Ogni codifica a 8 bit (escludendo però utf8, per motivi che dirò dopo) fa scelte diverse su come interpretare i byte dell’intervallo 128-255.

Un editor interpreta i byte secondo la codifica che gli viene detto di usare (se ne è capace), mostrando i caratteri appropriati; TeX invece vede semplicemente i byte. Perciò inputenc rende attivi i byte della metà superiore, definendone il significato tramite una tabella che rispecchia la codifica richiesta. Ricordo che un carattere attivo è del tutto simile a un comando espandibile; nel caso di latin1, l’espansione del carattere che appare nell’editor come il simbolo della sterlina è “\IeC{\pound}”; a parte \IeC che serve per compiti amministrativi, il risultato è quello richiesto.

Il comando \string agisce sul token che segue; se è un token complesso (un comando con la barra rovescia, per semplificare), emette il nome del comando preceduto da una barra rovescia, ma con tutti i caratteri di categoria 12; non è il caso che ci interessa. Se il token che segue è semplice (cioè un byte), il risultato è quel byte con codice di categoria 12: bingo! Il comando \includegraphics è contento.

A questo punto, però, se il sistema operativo non legge i nomi dei file secondo la stessa codifica, siamo nei pasticci: il nome del file potrebbe non corrispondere. Per esempio, Mac OS X usa utf8 per i nomi dei file, quindi la soluzione non funzionerebbe. Ignoro quale codifica usi la tua versione di Windoze; se è la solita ANSI modificata, non differisce troppo da ISO-8859-1 (alias latin1), ma non c’è da farci conto per tutti i caratteri.

Per concludere: usare, per i nomi di file, solo caratteri ASCII stampabili a 7 bit è sempre la strategia migliore.

Ciao
Enrico

Go to top