Newsgroup: it.comp.software.tex
Titolo: conversione utf - latin1 + codici latex

Cari amici,
vorrei chiedervi un parere su un problema un po' complesso. Lettura per chi
ha stomaco robusto.
Qualche giorno fa ho messo su comp.text.tex un messaggio così concepito:
debbo usare la classe combine per una rivista in cui ho ricevuto il
materiale in formato unicode. Ma debbo constatare un malfunzionamento di
combine, che se riceve files unicode manda in blocco (probabilmente loop)
la compilazione. Ho messo la domanda su quel gruppo e non su questo
italiano perché il gruppo di lingua inglese è frequentato anche da Peter
Wilson, autore di combine (e di memoir e di altre cose). Ma non ho avuto
risposte (una sola, interlocutoria).
Ora, avendo articoli che non usano solo il set latin1 (c'è cirillico,
caratteri IPA, greco antico...) non posso fare un semplice "recode" e
buonanotte, perché non c'è modo di avere output da utf8 di caratteri non
supportati direttamente dalla tabella di uscita (me lo ha confermato
l'autore di recode). Quindi perdo IPA, russo ecc.
Allora ho scritto un programmuzzo che con un po' di filtri in cascata
ottiene un file in latin1 + la codifica interna di LaTeX per tutto il resto
(esempio: il greco unicode viene trasformato in "\foreignlanguage{greek
{abgd}" e così via. Già che c'ero ho messo un po' di opzioni, per cui da un
file di testo unicode con greco, IPA e russo si può generare un semplice
file LaTeX, selezionare la lingua di default, e altre cosette.
Domanda: secondo voi un aggeggio così serve? In realtà è destinato a morire
presto, perché tra poco unicode sarà lo standard e non avrà senso fare cose
del genere. Ma finora può servire? se sì, lo raffino un po' e lo mando a
CTAN. Altrimenti, me lo uso solo io.
Attendo pareri, e grazie.
g.
-- 
Guido Milanese
Vocal Ensemble Ars Antiqua, Genova (Genoa), Italy
http://www.arsantiqua.org

 CTAN. Altrimenti, me lo uso solo io.
A mio modestissimo parere, potresti provare ad usare Omega o 
Aleph invece di TeX o eTeX come motore per LaTeX (usare cioè 
Lambda o Lamed invece di LaTeX), risolvendo il problema alla 
radice.
Non so d'altronde se combine funziona con Aleph (Lamed). 
Suppongo però di sì. Tentar non nuoce.
-- 
Giuseppe "Oblomov" Bilotta
Can't you see
It all makes perfect sense
Expressed in dollar and cents
Pounds shillings and pence
                  (Roger Waters)

 radice.
Grazie per la risposta. In effetti avevo provato con lambda, ma sembra non
funzionare: si blocca in compilazione.
Eccoti un file minimo di prova.
(1) Questo è il file di matrice per combine:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,packages]{combine}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{papers}
\coltoctitle{Il titolo}
\coltocauthor{L'autore}
\label{articolo}
\import{article0}
 
\end{papers}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Questo è un file incluso:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
%\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
uno due
àèéòùéé
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Se il tutto è fatto girare con encoding latin1, nessun problema (ho fatto,
usando combine, ormai diversi volumi). Ma con utf8 si blocca la
compilazione. Nota che ho provato a modificare in vari modi l'opzione
fontenc: levandola del tutto, modificandola ecc. Lo stesso per babel
(metti, leva ecc. per provare). Forse ho sbagliato qualcosa di ovvio, nel
qual caso la tua esperienza con Omega and friends lo vedrà subito!
Il problema deve essere interno a "papers". Se usi un combine "vuoto" va
tutto bene, ma ovviamente non serve a nulla.
Questo è ciò che mi accade compilando con lambda. Con latex standard il
risultato pratico è lo stesso, anche se i messaggi sono ovviamente diversi.
In sostanza si fermano sul file uni-0.def: l'ultimo messaggio del log è
appunto
File: uni-0.def 2003/05/06 UCS: Unicode data U+0000..U+00FF
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
This is Omega, Version 3.14159--1.23.2.1 (Web2C 7.4.5)
Copyright (c) 1994--2000 John Plaice and Yannis Haralambous
(testuni.tex
LaTeX2e <2001/06/01> patch level 1
Babel <v3.7h> and hyphenation patterns for english, spanish, russian, greek,
in
uit, dumylang, nohyphenation, loaded.
(/usr/local/share/texmf/tex/latex/combine/combine.cls
Document Class: combine 2003/11/09 v0.52 collection of documents
(/usr/share/texmf/tex/latex/graphics/keyval.sty)
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo)))
(/usr/share/texmf/tex/latex/base/inputenc.sty
(/usr/share/texmf/tex/latex/unicode/utf8.def))
(/usr/share/texmf/tex/latex/unicode/ucs.sty
(/usr/share/texmf/tex/latex/unicode/data/uni-global.def)) (testuni.aux)
(/usr/share/texmf/tex/latex/unicode/ucsencs.def) (article0.tex
(article0.aux)
(/usr/share/texmf/tex/latex/unicode/ucsencs.def)
(/usr/share/texmf/tex/latex/unicode/data/uni-0.def)
! Interruption.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Grazie per l'attenzione!



Non usare inputenc.
Invece, prova ad usare questo preambolo nel master:
\documentclass[a4paper,packages]{combine}
\usepackage[UT1]{fontenc}
\def\rmdefault{omlgc}
\def\ttdefault{uctt}
\ocp\TexUTF=inutf8
\ocp\OCPunitolat=uni2lat
\ocplist\inputtrans=\addbeforeocplist 1000 \TexUTF
\addbeforeocplist 1000 \OCPunitolat
\nullocplist
\pushocplist\inputtrans
(e disabilita gli inputenc).


 Invece, prova ad usare questo preambolo nel master:
[...]
Grazie ancora. Ho provato, ma risponde
LaTeX Font Warning: Font shape `UT1/omlgc/m/n' undefined
(Font)              using `UT1/cmr/m/n' instead on input line 16.
e xdvi/oxdvi non mostra neppure i caratteri accentati dello standard . In
realtà questi fonts ci dovrebbero essere:
/usr/share/texmf/fonts/ofm/public/omega/omlgc.ofm
/usr/share/texmf/fonts/ofm/public/omega/omlgcb.ofm
/usr/share/texmf/fonts/ofm/public/omega/omlgcbi.ofm
/usr/share/texmf/fonts/ofm/public/omega/omlgci.ofm
/usr/share/texmf/fonts/ovf/public/omega/omlgc.ovf
/usr/share/texmf/fonts/ovf/public/omega/omlgcb.ovf
/usr/share/texmf/fonts/ovf/public/omega/omlgcbi.ovf
/usr/share/texmf/fonts/ovf/public/omega/omlgci.ovf
/usr/share/texmf/fonts/ovp/public/omega/omlgc.ovp
/usr/share/texmf/fonts/ovp/public/omega/omlgcb.ovp
/usr/share/texmf/fonts/ovp/public/omega/omlgcbi.ovp
/usr/share/texmf/fonts/ovp/public/omega/omlgci.ovp
/usr/share/texmf/omega/lambda/base/UT1omlgc.fd
/usr/share/texmf/omega/lambda/base/ot1omlgc.fd
/usr/share/texmf/omega/lambda/misc/omlgc.cfg
/usr/share/texmf/tex/jadetex/ut1omlgc.fd
Ho cercato su CTAN ma senza successo. Che cosa manca alla mia installazione
di lambda?
Francamente ho l'impressione, della quale avevamo già parlato tempo fa, cge
omega/lambda manch imolto di documentazione. Ho trovato qualche pagina di
manuale in rete, ma vecchia e che, soprattutto, presuppone input non
unicode -- allora non serve a molto, evidentemente:
http://zoonek2.free.fr/UNIX/39_Omega_introduction/Omega_introduction.html
Scusa ancora l'insistenza. Semmai rispondi in privato.
Grazie,
g
