Grazie ad Antonio ed al Prof. Enrico.
La codifica del font NON è il problema. Infatti (era un po’ complicato spiegarlo), faccio uso di una classe specializzata che contiene:
`%
% section: loading package
%
\RequirePackage[italian]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage[latin1]{inputenc}
%
\RequirePackage{fancyhdr}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{calctab}
\RequirePackage{tikz}
\RequirePackage{eurosym}
\RequirePackage{lmodern}
\RequirePackage{indentfirst}
\RequirePackage{microtype}
\RequirePackage{geometry}
\RequirePackage{graphicx}
\RequirePackage{lastpage}`(So che le codifiche non andrebbero scritte nelle classi, ma in questo caso si tratta di una classe scritta da me e che uso soltanto io.)
Il problema sta nel numero di colonne!! infatti nel sorgente di test aggiunto un comando \twocolumn, si verifica il disallineamento, SOLO nel caso in cui la colonna è troppo stretta per il testo in verbatim e si verifica overfull hbox.
Se accorcio le stesse linee, eliminando l’overfull, l’allineamento ritorna perfetto.
Bé almeno ho scoperto che se avessi controllato il log, avrei scoperto l’overfull!!
Morale: consultate sempre il log!!! LaTeX a SEMPRE ragione!!
Grazie a tutti.Ci manca una H? 🙂
La questione è un po’ più sottile: il font Inconsolata, per motivi a me ignoti, definisce come positivi alcuni parametri che in un font a spaziatura fissa dovrebbero essere nulli, precisamente \fontdimen3 e \fontdimen4; questi parametri danno il fattore di espandibilità e di comprimibilità degli spazi tra parole quando è attivo il font stesso.
Nel caso di Computer Modern Typewriter, i parametri sono nulli, Inconsolata invece ha \fontdimen3 uguale a 2.5 pt e \fontdimen4 uguale a 1.66667 pt. Nel caso la riga in verbatim sia più lunga della giustezza, TeX cerca di strizzarla usando gli spazi tra parole: ahi! Nel caso di Inconsolata ci riesce!
Per ovviare all’inconveniente puoi fare così:
`\usepackage{inconsolata}
\makeatletter
\expandafter\ifx\csname fifour@scaled\endcsname\relax
\let\fifour@scaled\@empty
\fi\DeclareFontFamily{T1}{fi4}{\hyphenchar\font=\m@ne
\fontdimen3\font=\z@ \fontdimen4\font=\z@}
\DeclareFontShape{T1}{fi4}{m}{n}{
<-> \fifour@scaled ec-inconsolata
}{}
\makeatother`
e mandare a Karl Berry una segnalazione: come minimo occorre un’opzione per scegliere spazi tra parole immodificabili.Spiegazione del trucco: il pacchetto inconsolata definisce come default per i font dattilografici la famiglia fi4; normalmente, quando LaTeX incontra per la prima volta la richiesta di un font in quella famiglia, cerca un file di nome t1fi4.fd (il prefisso è variabile, qui suppongo che la codifica corrente sia T1) dove troverà l’opportuno comando \DeclareFontFamily.
L’ultimo argomento di \DeclareFontFamily contiene codice da eseguire ogni volta che un font di quella famiglia è caricato: nel caso dei font a spaziatura fissa è sempre “\hyphenchar\font=-1” per disabilitare la sillabazione.
Tuttavia, se la famiglia è già dichiarata, il file t1fi4.fd non verrà nemmeno cercato; così posso semplicemente copiare il contenuto di t1fi4.fd, aggiungere il comando di azzeramento dei parametri e sono a posto.
Siccome sono tra \makeatletter e \makeatother, posso far sfoggio della mia conoscenza dei comandi interni di LaTeX e usare \m@ne invece di -1 e \z@ invece di 0pt. 🙂
Ciao
Enrico
Professore ci pensa lei a mandare la segnalazione a Karl Berry? Mi farebbe una cortesia viste le mie scarse conoscenze di TeX specie per gli argomenti riguardanti i font. Grazie mille.