Newsgroup: it.comp.software.tex
Titolo: Plain TeX - lettere accentate - utf8

Dopo una reinstallazione mi ritrovo LANG=en_US.UTF-8
cosicche' ho dovuto ridefinire come plain TeX (non
uso LaTeX) riconosce à (c3a0) etc.
Ho definito:
 >-----------------------------
% italian characters
\catcode`\^^c3=13 \def^^c3#1{%
\ifnum `#1="A0 \`a\else
\ifnum `#1="A8 \`e\else
\ifnum `#1="A9 \'e\else
\ifnum `#1="AC \`\i\else
\ifnum `#1="B2 \`o\else
\ifnum `#1="B9 \`u\else
\fi\fi\fi\fi\fi\fi}
-----------------------------<
Che inconvenienti ci potrebbero essere con questo approccio?
Mi rimane il dubbio:
TeX non era 7-bits? come puo' riconoscere il carattere c3?
il log mi dice che sto usando
This is TeXk, Version 3.141592 (Web2C 7.5.6) (format=tex 2009.6.17)
grazie
lc

 -----------------------------<
Il metodo standard dovrebbe essere questo:
\catcode`\�=\active\def�{\`a} 
\catcode`\�=\active\def�{\`e} 
\catcode`\�=\active\def�{\`{\i}} 
\catcode`\�=\active\def�{\`o}
\catcode`\�=\active\def�{\`u}
ecc. ecc.
Non so se sia adatto al tuo caso.
Maurizio
-- 
Per rispondermi via e-mail togli l'ovvio.

 This is TeXk, Version 3.141592 (Web2C 7.5.6) (format=tex 2009.6.17)
Be', non � detto che si debba per forza usare UTF-8. Gli editor
seri sono capaci di usare qualsiasi codifica.
TeX � a 8 bit dalla versione 3.0, del 1989: sei rimasto un po' 
indietro? ;-) Ma l'approccio va bene, se ti limiti a caratteri
a soli due byte (dovrebbero essere sufficienti per gli accenti
comuni).
Ciao
Enrico

 scrive:

No, perch� in UTF-8 il carattere che vediamo come "�", per esempio,
in realt� � letto come due byte.
Questo approccio funziona con XeTeX o con LuaTeX, perch� per essi
un carattere Unicode � sempre letto come un tutto unico.
Ciao
Enrico

 scrive:

Un approccio alternativo pu� essere questo, che evita i condizionali:
\catcode`\^^c3=\active
\def^^c3#1{\csname UTFprefix-c3#1\endcsname}
\expandafter\def\csname UTFprefix-c3^^81\endcsname{\'A}
\expandafter\def\csname UTFprefix-c3^^a1\endcsname{\'a}
\expandafter\def\csname UTFprefix-c3^^89\endcsname{\'E}
\expandafter\def\csname UTFprefix-c3^^a9\endcsname{\'e}
\expandafter\def\csname UTFprefix-c3^^8d\endcsname{\'I}
\expandafter\def\csname UTFprefix-c3^^ad\endcsname{\'\i}
\expandafter\def\csname UTFprefix-c3^^93\endcsname{\'O}
\expandafter\def\csname UTFprefix-c3^^b3\endcsname{\'o}
\expandafter\def\csname UTFprefix-c3^^9a\endcsname{\'U}
\expandafter\def\csname UTFprefix-c3^^ba\endcsname{\'u}
\expandafter\def\csname UTFprefix-c3^^9d\endcsname{\'Y}
\expandafter\def\csname UTFprefix-c3^^bd\endcsname{\'y}
\expandafter\def\csname UTFprefix-c3^^94\endcsname{\^O}
\expandafter\def\csname UTFprefix-c3^^b4\endcsname{\^o}
\expandafter\def\csname UTFprefix-c3^^84\endcsname{\"A}
\expandafter\def\csname UTFprefix-c3^^a4\endcsname{\"a}
\expandafter\def\csname UTFprefix-c3^^96\endcsname{\"O}
\expandafter\def\csname UTFprefix-c3^^b6\endcsname{\"o}
\expandafter\def\csname UTFprefix-c3^^9c\endcsname{\"U}
\expandafter\def\csname UTFprefix-c3^^bc\endcsname{\"u}
Il carattere attivo ^^c3 legge il byte successivo come argomento
e costruisce una delle sequenza di controllo che definiamo dopo.
Cerca tu di completare con gli altri accenti. Ovvio che con
caratteri a tre byte la faccenda diventa pi� complicata, ma si
pu� fare una cosa analoga in due passi.
Ciao
Enrico

 in realt� � letto come due byte.
Hai ragione, l'ho capito dopo guardando meglio il codice di lc.
Curiosit�: LaTeX invece digerisce meglio Unicode?


 Curiosit�: LaTeX invece digerisce meglio Unicode?
Con l'opzione utf8 al pacchetto inputenc digerisce senza troppi
problemi i caratteri Unicode che sono presenti nei font con
codifica T1 (\usepackage[T1]{fontenc}). Esiste l'opzione utf8x
che va data caricando anche il pacchetto ucs che permette di
rendere comprensibili anche un altro bel mucchio di caratteri.
Ma per roba "unicode intensive" � meglio XeLaTeX con font
OpenType.
Ciao
Enrico

Grazie per le risposte date.
Ho provato anche, solo "per vedere l'effetto che fa" (cit.):
\catcode`\^^c3=0
\catcode`\^^a0=11 \def^^c3^^a0{\`a}
\catcode`\^^a8=11 \def^^c3^^a8{\`e}
\catcode`\^^a9=11 \def^^c3^^a9{\'e}
\catcode`\^^ac=11 \def^^c3^^ac{\`\i}
\catcode`\^^b2=11 \def^^c3^^b2{\`o}
\catcode`\^^b9=11 \def^^c3^^b9{\`u}
%
funziona, ma non rispetta lo spazio dopo il carattere,
cioe' "� �" e' reso "��"
(giustamente: una control sequence si mangia lo spazio successivo)
ciao
Leopoldo

 scrive:

Perch� non con \catcode`\^^a0=12? Se sono solo queste le lettere
accentate che usi, pu� essere la soluzione migliore. Non molto
generale, per�.
Ciao
Enrico