Re: Listings Babel e spazi nei nomi dei file.

#27521
Up
0
Down
::

Sono senza parole…
Grazie Enrico.

LuCa

…accidenti, ho raggiunto e superato i 137 messaggi senza accorgermene… 😀 😀

Questo è il mio numero 3540 ❗

Vediamo adesso di capire dove sta il problema. Il modulo dell’italiano di babel dichiara attivo il carattere “, perché serve per alcune scorciatoie. Purtroppo questo va in conflitto con la specifica di nomi tra doppi apici. Alcuni pacchetti, per esempio graphicx, controllano la faccenda, purtroppo listings non lo fa.

Perciò la prima riga del codice proposto salva il significato di \lstinputlisting in un altro comando, ne avremo bisogno dopo. A questo punto dobbiamo usare il comando \shorthandoff{“} di babel per togliere il significato speciale di “; lo faremo in un gruppo, in modo che alla chiusura tutto torni allo stato precedente.

Ridefiisco dunque \lstinputlisting aprendo un gruppo e dando quel comando. Poi uso il trucco di mettere da parte un token da far eseguire dopo la successiva assegnazione che comincia subito dopo: \def\next. TeX adesso si trova davanti \def\next{“percorso”} che è un’assegnazione con tutti i crismi e, cosa importante, ” non ha significati speciali. Perciò TeX esegue la definizione ed espande il token messo da parte che, a sua volta, esegue l’originale \lstinputlistings prendendo come argomento \next (o meglio la sua espansione; funziona, avevo prima pensato di mettere un paio di \expandafter che non si sono rivelati necessari). Poi si chiude il gruppo cominciato prima.

Et voilà.

Ciao
Enrico

Go to top