Newsgroup: it.comp.software.tex
Titolo: Problemi con babel con piu` lingue caricate

Se carico babel con piu` di una lingua (es.
\usepackage[english,italian]{babel}) la sillabazione non funziona piu`
correttamente e ho quindi un sacco di parole che superano i bordi
laterali.
Come posso risolvere questo problema?
Grazie.
--
Lurkos

 scrive:

Mi risulta alquanto bizzarro. Con quel comando stai dicendo che la 
lingua principale del documento è l'italiano; non vedo come possa 
influire negativamente se con \usepackage[italian]{babel} non hai 
problemi.
Hai messaggi strani nel file .log che riguardino babel?
Ciao
Enrico

 Hai messaggi strani nel file .log che riguardino babel?
Sinceramente non saprei cosa guardare esattamente nel file di log.
Se aggiungo russian (avrei una parola in cirillico da aggiungere) e
non english gli errori (su vbox e hbox) aumentano molto di più (di un
fattore 10) e in più si aggiunge questo warning "/usr/share/texmf-
texlive/tex/generic/babel/russianb.ldf:136: No input encoding
specified for Russian language on input line 136. No input encoding
specified for Russian language"
Questa è l'intestazione del mio file principale.
Ho forse sbagliato l'ordine di caricamento dei pacchetti?
\documentclass[12pt,a4paper,italian]{book}
\usepackage[italian]{babel} % vorrei aggiungere russian e english
\usepackage[utf8]{inputenc} % la mia distribuzione (Ubuntu 7.10) usa
UTF-8 come charset predefinito per la codifica dei file
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fancyhdr}
\usepackage{natbib}
\usepackage[labelfont=bf,font=small]{caption}
\usepackage{frontesp} % stile del frontespizio
\usepackage{lscape}
\usepackage{chngpage}
\usepackage[onehalfspacing]{setspace} % ...anche se io avrei preferito
un layaureo con interlinea normale...
\usepackage{calc}
\usepackage[bindingoffset=1cm,textheight=34\baselineskip+
\topskip,textwidth=70ex,heightrounded]{geometry} % rigide direttive
della segreteria (35 righe da 70 caratteri)

 scrive:

Il tuo problema nasce dal fatto che hai inserito l'opzione globale
"italian" alla classe. Che succede? Che babel, come tutti i pacchetti, 
esegue prima le opzioni globali e poi quelle locali. Quindi, se poi 
scrivi
\usepackage[english,italian]{babel}
l'italiano non è l'ultima lingua, perché l'opzione "italian" viene
eseguita per prima (e trascurata poi, perché già eseguita).
Il messaggio di avviso è normale: se vuoi scrivere in caratteri 
cirillici devi usare una codifica in input che li definisca. Ma non è 
strettamente necessario, perché i caratteri hanno tutti un nome. 
Scrivere a lungo in russo in questo modo è ovviamente una pena, ma se è 
per qualche parola il problema non si pone.
Ciao
Enrico

 per qualche parola il problema non si pone.
Ma UTF-8 non comprende tutti i possibili caratteri? Ho provato anche
utf8x, ma senza risultati.
Ad ogni modo la parola da inserire sarebbe solo una e penso di averne
trovato i codici unicode leggendo il sorgente della pagina
corrispondente su Wikipedia.
Come mi consigli di procedere?
--
Lurkos

 scrive:

Che io sappia non c'è alcuna codifica in input disponibile per il russo
sotto UTF8. Ma non mi sono mai interessato molto di questo (mea culpa).
Però così dovrebbe funzionare:
\usepackage[italian]{babel}
\usepackage[T2A,T1]{fontenc} %% anche OT1, se preferisci
\newcommand{russ}[1]{\mbox{\fontencoding{T2A}\selectfont #1}}
\begin{document}
\russ{\CYRS\cyro\cyrv\cyre\cyrt\cyrs\cyrk\cyri\cyrishrt{} 
  \CYRS\cyro\cyryu\cyrz}
\end{document}
Rimane il problema di trovare il modo corretto di scrivere i caratteri 
russi: dovresti avere nella tua distribuzione un file di nome t2cyr.txt 
che elenca i nomi. Non è necessario caricare il modulo per il russo di 
babel, se ciò che ti serve è qualche parola isolata.
Ciao
Enrico

Mi permetto di suggerire una soluzione semplice, che ho utilizzato anche per
una rivista di linguistica. E' come per il greco: basta avere un editor che
supporti unicode e i fonts necessari per l'editor e per il LaTeX.
Ecco l'esempio (in unicode, quindi anche per vedere a monitor il sorgente ci
vuole il settaggio giusto):
\documentclass[12pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,english,italian]{babel}
\newcommand{\russo}[1]{\foreignlanguage{russian}{#1}}
%
\begin{document}
\emph{Oremus pro Pontifice nostro Benedicto} si dice in russo
\russo{Помолимся о Папе нашем Бенедикте}.
\end{document}
Il comando "russo" è solo per comodità, ovviamente. Posso mandare offlist il
dvi o il pdf, se serve per un controllo.
g.
-- 
Guido Milanese
http://docenti.unicatt.it/milanese_guido
Vocal Ensemble Ars Antiqua, Genova (Genoa), Italy
http://www.arsantiqua.org

 dvi o il pdf, se serve per un controllo.
Ottimo modo. Ma soffre di un difetto, che i font per il russo non sono
di tipo 1, ahimè.
Se tutto ciò che si vuole è scrivere qualche parola in russo, si possono
usare i font wncyr, che sono nella distribuzione TeX Live (e in teTeX
e in MiKTeX); permettono di scrivere facilmente i caratteri cirillici
con una traslitterazione all'americana (ma non si può contare su di loro
per la sillabazione automatica del russo).
Con il documento qui sotto si ottengono due tabelle per capire come
inserire i caratteri giusti.
===== tabelle-cirillico.tex =====
\documentclass[a4paper]{article}
\usepackage[italian]{babel}
\usepackage[OT2,T1]{fontenc}
\usepackage{booktabs}
\setlength{\parindent}{0pt}
\newcommand{\russ}[1]{\mbox{\fontencoding{OT2}\fontfamily{wncyr}\selectf
ont #1}}
\def\colruss|#1|{\ttfamily\string#1 & \russ{#1}}
\begin{document}
%In russo, lavoro si dice \russ{rabota}.
%\russ{Sovet\/skii0 Soyuz --- Khrushche0v --- Rossiya}\\
%\russ{Govorit po russkii0?}
\begin{center}
\begin{tabular}
  {ll@{\quad\vrule\quad}ll@{\quad\vrule\quad}ll%
   @{\qquad\vrule width 1pt\qquad}%
  ll@{\quad\vrule\quad}ll@{\quad\vrule\quad}ll}
\toprule
\colruss|A| &\colruss|K|&\colruss|Kh|&
\colruss|a| &\colruss|k|&\colruss|kh|\\
\colruss|B| &\colruss|L|&\colruss|Ts|&
\colruss|b| &\colruss|l|&\colruss|ts|\\
\colruss|V| &\colruss|M|&\colruss|Ch|&
\colruss|v| &\colruss|m|&\colruss|ch|\\
\colruss|G| &\colruss|N|&\colruss|Sh|&
\colruss|g| &\colruss|n|&\colruss|sh|\\
\colruss|D| &\colruss|O|&\colruss|Shch|&
\colruss|d| &\colruss|o|&\colruss|shch|\\
\colruss|E| &\colruss|P|&\colruss|P2|&
\colruss|e| &\colruss|p|&\colruss|p2|\\
\colruss|E0|&\colruss|R|&\colruss|Y|&
\colruss|e0|&\colruss|r|&\colruss|y|\\
\colruss|Zh|&\colruss|S|&\colruss|P1|&
\colruss|zh|&\colruss|s|&\colruss|p1|\\
\colruss|Z| &\colruss|T|&\colruss|E1|&
\colruss|z| &\colruss|t|&\colruss|e1|\\
\colruss|I| &\colruss|U|&\colruss|Yu|&
\colruss|i| &\colruss|u|&\colruss|yu|\\
\colruss|I0|&\colruss|F|&\colruss|Ya|&
\colruss|i0|&\colruss|f|&\colruss|ya|\\
\bottomrule
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{llllllll}
\toprule
Input & Output & Input & Output & 
Input & Output & Input & Output \\
\cmidrule(lr){1-2}\cmidrule(lr){3-4}
\cmidrule(lr){5-6}\cmidrule(lr){7-8}
\colruss|A|&\colruss|B|&\colruss|C|&\colruss|D|\\
\colruss|E|&\colruss|F|&\colruss|G|&\colruss|H|\\
\colruss|I|&\colruss|J|&\colruss|K|&\colruss|L|\\
\colruss|M|&\colruss|N|&\colruss|O|&\colruss|P|\\
\colruss|Q|&\colruss|R|&\colruss|S|&\colruss|T|\\
\colruss|U|&\colruss|V|&\colruss|W|&\colruss|X|\\
\colruss|Y|&\colruss|Z|\\
\midrule
\colruss|a|&\colruss|b|&\colruss|c|&\colruss|d|\\
\colruss|e|&\colruss|f|&\colruss|g|&\colruss|h|\\
\colruss|i|&\colruss|j|&\colruss|k|&\colruss|l|\\
\colruss|m|&\colruss|n|&\colruss|o|&\colruss|p|\\
\colruss|q|&\colruss|r|&\colruss|s|&\colruss|t|\\
\colruss|u|&\colruss|v|&\colruss|w|&\colruss|x|\\
\colruss|y|&\colruss|z|\\
\midrule
\colruss|C1|&\colruss|Ch|&\colruss|D1|&\colruss|D2|\\
\colruss|D3|&\colruss|Dj|&\colruss|E0|&\colruss|E1|\\
\colruss|E2|&\colruss|I0|&\colruss|I1|&\colruss|J1|\\
\colruss|J2|&\colruss|Kh|&\colruss|L1|&\colruss|Lj|\\
\colruss|N0|&\colruss|N1|&\colruss|Nj|&\colruss|P1|\\
\colruss|P2|&\colruss|Sh|&\colruss|Shch|&\colruss|Ts|\\
\colruss|Ya|&\colruss|Yu|&\colruss|Z1|&\colruss|Zh|\\
\midrule
\colruss|d1|&\colruss|d2|&\colruss|d3|&\colruss|dj|\\
\colruss|e0|&\colruss|e1|&\colruss|e2|&\colruss|i0|\\
\colruss|i1|&\colruss|j1|&\colruss|j2|&\colruss|kh|\\
\colruss|l1|&\colruss|lj|&\colruss|n1|&\colruss|nj|\\
\colruss|sh|&\colruss|shch|&\colruss|ts|&\colruss|ya|\\
\colruss|yu|&\colruss|z1|&\colruss|zh|\\
\colruss|\'C|&\colruss|\'G|&
  \colruss|\'K|&\verb|\u{U}|&\russ{\u{U}}\\
\colruss|\'c|&\colruss|\'g|&
  \colruss|\'k|&\verb|\u{u}|&\russ{\u{u}}\\
\midrule
\colruss|[[|&\colruss|]]|&\colruss|<|&\colruss|>|\\
\midrule
\colruss|\#|&\colruss|+|\\
\bottomrule
\multicolumn{8}{l}{\footnotesize (1) Nelle legature il simbolo 
  \texttt{0} \`e la cifra zero}\\
\multicolumn{8}{l}{\footnotesize (2) Per spezzare \russ{t\/s} si
  usi \texttt{t\char`\\/s} oppure \texttt{t\char`\\cydot\ s}}
\end{tabular}
\end{center}
\end{document}
=====
Ciao
Enrico

 inserire i caratteri giusti.
Non è che potresti mandarmi il tex via e-mail?
Ho l'impressione che il tuo newsreader non dichiari correttamente la
codifica usata, generando diversi problemi (ad esempio non vedo mai le
lettere accentate).
--
Lurkos

 scrive:

La parte con il documento .tex non ha alcun accento. Come si ottiene
il tuo indirizzo? Immagino togliendo quel suffisso prima di @.
Ciao
Enrico

 per la sillabazione automatica del russo).
Grazie, Enrico, preso nota. Però la soluzione non è adottabile (a meno di
fare uno script di conversione) se il testo ha lunghe citazioni in russo.
Che cosa proporresti, in quel caso? La soluzione che ho 'postato' funziona
bene, dal punto di vista del rapporto tra comodità di input e risultato
(con pdflatex si ottiene un buon pdf). Mi farebbe piacere se mi proponessi
una soluzione di migliore qualità (ma salvando la comodità dell'input in
russo e la sillabazione, che è ovviamente imprescindibile in testi lunghi).
Questa è la parte rilevante del file di log:
LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for T2A/cmr/m/n on input line 6.
LaTeX Font Info:    Try loading font information for T2A+cmr on input line
6.
(/usr/share/texmf/tex/latex/cyrillic/t2acmr.fd
File: t2acmr.fd 2001/08/11 v1.0a Computer Modern Cyrillic font definitions
)
LaTeX Font Info:    ... okay on input line 6.
 (./ucsencs.def
File: ucsencs.def 2003/03/13 Fixes to fontencodings LGR, LHE, T3
)
(/usr/share/texmf/tex/latex/unicode/data/uni-4.def
File: uni-4.def 2003/05/06 UCS: Unicode data U+0400..U+04FF
-- 
Guido Milanese


 russo e la sillabazione, che è ovviamente imprescindibile in testi lunghi).
I font che vengono scelti con la codifica T2A sono quelli della famiglia
"larm" e compagnia che non mi risulta siano di tipo 1. Con Reader 8 la
resa dei font di tipo 3 non è malvagia, quindi probabilmente si tratta
della soluzione migliore.
Se però usi il pacchetto lmodern, i font sono di tipo 1 anche per
i caratteri cirillici.
Ciao
Enrico

 scrive:

Mi correggo: sono i CMSuper che hanno i font cirillici di tipo 1; quindi
il tuo input non dovrebbe soffrire della sindrome del tipo 3 se installi
quelli e usi la codifica T2A. Per l'input, finché UTF-8 non fa scherzi,
direi che è la cosa migliore.
Ciao
Enrico

 Come si ottiene il tuo indirizzo? Immagino togliendo quel suffisso prima di @.
L'indirizzo è valido così com'è... se no violerei la netiquette. :-)
--
Lurkos