Impossibile capirci qualcosa. Cerca di produrre una versione dimagrita del documento che manifesti lo stesso errore.
Nella redazione del documento minimo da postare ho notato che il preambolo che genera l’errore è il seguente:
`\documentclass[a4paper,10pt,fleqn]{book}
\usepackage{listings}
\lstset{language=Matlab}
\usepackage[english,french,italian]{babel}
\usepackage[onehalfspacing]{setspace}`
Considerazioni:
1) L’errore sparisce se si elimina l’opzione french in babel
2) L’errore sparisce se si riordina: babel / setspace / listings
Applicando il punto 2 al documento originale l’errore è scomparso.
Mi potete spiegare qual era la causa?
Grazie
Meglio usare un ordine migliore del caricamento dei pacchetti; nel tuo caso
`\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc} % controlla la codifica
\usepackage[english,french,italian]{babel}
\usepackage{listings}
\lstset{language=Matlab}
\usepackage[onehalfspacing]{setspace}`
Se poi puoi evitare setspace è anche meglio. Non trascurerei inputenc e fontenc.
Il problema del francese è presto detto: per via delle (orride) convenzioni tipografiche francesi, quando babel carica questa lingua rende “attivo” il carattere “due punti” e altri. Il modo di funzionamento di listings è influenzato dai caratteri attivi al momento del caricamento: perciò metterlo prima di babel è fonte sicura di grattacapi.
Ciao
Enrico