Newsgroup: it.comp.os.linux.iniziare
Titolo: Debian: problema con antialiasing delle font.

Ciao a tutti,
sto passando a debian (sid) da red hat 8, con kde 3.1.1.
Tutto sembra funzionare a meraviglia, se non fosse per un fastidioso
problema: l'antialiasing delle font sembra peggiore rispetto a redhat
8 (e Mandrake 9.1 tra l'altro).
È difficile da spiegare... è come se il colore fosse distribuito male;
in uno stesso carattere ci sono zone molto spesse e zone molto
sottili; il tutto crea un effetto sgradevole, come quello di una
stilografica che perde inchiostro.
il tutto è molto evidente aprendo konqueror (dal panel) e guardando la
pagina di default (quella celeste: welcome to Konqueror 3.1.1). Se
qualcuno ha usato red hat 8 sa cosa intendo. Ci sono chiazze di colore
non uniformi nei caratteri.
L'impressione è che i pacchetti siano stati compilati con una vecchia
libreria di rendering delle font.
Vorrei sapere se c'è qualche impostazione da modificare... chiaramente
ho attivato l'antialiasing al pannello di controllo di KDE. E sto
confrontando lo stesso tipo di font. La differenza è evidente con le
font "Luxi Mono" e "Luxi Sans" e "Luxi serif", che in redhat 8.0 e
Mandrake 9.1 sono le migliori, e qui sono pessime.
Per finire vorrei precisare che anche Mandrake fino a 9.0 e redhat fino a
7.3 soffrono di questo problema, ma è stato corretto.
Anche mozilla-xft e gnome hanno questo problema.
Grazie per qualunque informazione.
-- 
Maurizio Colucci
Please remove the uppercase letters "S,P,A,M":
seSgPuAsM...@tin.it

 non uniformi nei caratteri.
Dopo giorni di ricerche, mi pare che la causa di questa perdita di
qualità sia che Red Hat (dalla versione 8 in poi) utilizza una
versione patchata della libreria freetype2 (una libreria di rendering
di font). Cosa significa? Pare che i file .ttf prevedano nel loro
formato
1.  una parte dati: è una definizione dei contorni del carattere,
    mediante curve quadratiche;
2. una parte di codice (bytecode): questo bytecode è destinato ad
   essere interpretato da una macchina virtuale. Il bytecode dice alla
   macchina virtuale come ottimizzare il rendering nelle basse
   risuluzioni. A volte questo processo di ottimizzazione del
   rendering è detto "hinting", credo.
Ora, mi è parso di capire che Redhat attiva il supporto per il
bytecode nei font True Type nella libreria freetype2. mentre debian
non lo fa, per problemi legali (Apple ha il brevetto della tecnologia
di hinting mediante bytecode). Pertanto Debian utilizza come tecnica
alternativa per il rendering una funzionalità di freetype2 chiamata
"auto-hinting", che fa sì l'antialiasing, ma IGNORA i bytecode inclusi
nelle font True Type, con conseguente perdita di qualità.  Insomma,
antialiasing sì, ma pessimo (come si può accorgere chiunque
confronti il rendering delle font TTF su debian e redhat 8-9)
Pertanto, per avere su Debian font true-type antialiased con qualità
pari a quella di redhat (o windows o mac os X) , dovremmo scaricare la
libreria freetype2, compilarla personalmente attivando il bytecode
interpreter mediante un flag (un #define del C), e poi installarla al
posto di quella di default.
Non sono sicuro di quanto ho detto. Qualcuno può confermare?


 posto di quella di default.
puoi dirmi dove hai trovato queste info, please? intanto provo a cercare 
anche io e ti dico cosa ho trovato.
-- 
signature: No such file or directory

 anche io e ti dico cosa ho trovato.
È tutto su 
www.freetype.org
.
Vedi la pagina "patents".  E magari iscriviti alle mailing list
freetype-devel e freetype. Io sto leggendo i messaggi vecchi (che si
possono scaricare in formato mbox) e ci sono molte cose interessanti.
Ho appena postato un messaggio nella devel, speriamo che qualcuno
spieghi. Poi se so qualcosa di più preciso lo posto qui. Promesso.


 spieghi. Poi se so qualcosa di più preciso lo posto qui. Promesso.
bravo :)


 attivando il famigerato :) bitcode sulla mia slack.
Le istruzioni sono in doc/TRUETYPE, ma sono sbagliate!
Devi decommentare 
 #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
nel file 
     "include/freetype/config/ftoption.h"
io non ho ancora provato a compilare perché non sono pratico, e non
saprei come installarlo dopo.


 ]
Uso Debian Woody sul portatile, ma non mi lamento dei fonts. Tra
l'altro quelli di Windows non mi piacciono per niente. Non e' male il
charcoal dei Macintosh classic.
Ma tu hai mai visto quelli di IRIX? Eppure tante persone li usano....

 saprei come installarlo dopo.
ho provato ad installarle prima con, poi senza bytecode... ma non cambia 
nulla. oltretutto il risultato mi sembra veramente bruttino su font di 
grosse dimensioni. erano quasi meglio le freetype1... bah...
qualcun altro ha esperienze diverse in merito?


 spieghi. Poi se so qualcosa di più preciso lo posto qui. Promesso.
Come promesso:
Ho avuto qualche risposta sulla mailing list di freetype-devel.
Era tutto il contrario di ciò che avevo detto! Debian attiva il
bytecode interpreter, fregandosene del brevetto Apple; RedHat non lo
fa.
Allora perché Redhat è meglio? Perche, dicono, redhat ha patchato
personalmente xft2 e freetype, migliorando gli algoritmi di 
hinting---ma, ripeto, sempre ignorando il bytecode.
Quindi sembra che la speranza di avere su debian una qualità pari a
redhat sia nulla, per ora...
Per capire cosa intendo, ho messo su un sito qualche screenshot che
mostra la differenza di qualità (enorme, a mio avviso) tra debian
(sid) e redhat: debian non è assolutamente in grado di competere con
Windows XP (cleartype) e Mac os X. Redhat sì. 
http://www.geocities.com/seguso2001/luxi-mono-11-debian.png
http://www.geocities.com/seguso2001/luxi-mono-11-redhat.png
http://www.geocities.com/seguso2001/luxi-sans-11-debian.png
http://www.geocities.com/seguso2001/luxi-sans-11-redhat8.png
http://www.geocities.com/seguso2001/nimbus-roman-13-debian.png
http://www.geocities.com/seguso2001/nimbus-roman-13-redhat8.png
http://www.geocities.com/seguso2001/arial-10-debian.png
http://www.geocities.com/seguso2001/arial-10-redhat8.png
http://www.geocities.com/seguso2001/andale-mono-12-debian.png
Ma voi vi accorgete della differenza o sono pazzo io?
:-)
ciao,


 
Sempre rimanendo sullo scherzo: ma perche' ti diverti a usare quei
caratteri strani? Non ti basta Times, Courier, Helvetica? Ma guarda
che gente! :-)

RAGAZZI, ANCORA NON CI CREDO!!!!!
TUTTO RISOLTO con le font! Leggete! Adesso Debian è più bello di
redhat e persino di Windows!
Il problema era proprio l'opposto di quello che pensavo: la tecnologia
auto-hinting, che NON USA il bytecode per ottimizzare il rendering, è
MIGLIORE di quella che lo usa. Questo perché appena hanno saputo del
problema di licenze coi bytecode, hanno abbandonato lo sviluppo
dell'interprete, e si sono concentrati solo sull'auto-hinting, che
quindi è più evoluto.
Quindi il problema per cui i caratteri in antialiasing su Debian
facevano così schifo (vedi i link che ho messo in un altro post) era
che il pacchetto libfreetype6-x.x.x.deb installava (inspiegabilmente)
il bytecode interpreter, rinunciando così all'auto-hinting, con
conseguente peggioramento di qualità, e inoltre con rischi 
di ritorsioni legali da Apple!
(presumibilmente perché il bytecode interpreter è una soluzione
migliore dell'auto-hinting PER CHI NON USA L'ANTIALIASING)
Redhat aveva l'antialiasing migliore perché usava l'auto-hinting. È
vero che lo hanno modificato, ma le modifiche sono irrilevanti
(non hanno fatto che aggiungere vari livelli di hinting, tutti
praticamente uguali).
---------
Quindi in sostanza, per avere le font su Debian come e meglio di
RedHat, e addirittura meglio di Windows, dovete scaricare la nuova
libreria freetype, che per default usa gia` l'auto-hinting, 
e installarla a mano.
Seguono istruzioni.
prima di tutto vi consiglio
apt-get -u dist-upgrade
per aggiornare sid.;-) 
Poi andate su 
www.freetype.org
 e scaricate freetype-2.1.4.tar.bz2
tar xjvf freetype-2.1.4.tar.bz2
cd freetype-2.1.4
./configure
make 
make install   <<(per questo dovete essere root!)
----
"make install" ha installato le librerie in /usr/local/lib, ma noi le
dobbiamo copiare in /usr/lib, sovrascrivendo quelle del pacchetto di
debian. Altrimenti vengono ignorate, perché /usr/lib ha la precedenza
(non chiedetemi perché, non lo so :-) ).
Pertanto fate così:
cd /usr/lib
rm libfreetype.*
cd /usr/local/lib
cp libfreetype.* /usr/lib
Ora dobbiamo aggiustare alcuni link che nella copia potrebbero non
valere più:
cd /usr/lib
rm libfreetype.so   (è un link)
rm libfreetype.so.6  (è un link)
ln libfreetype.so.6.3.3 libfreetype.so.6
ln libfreetype.so.6.3.3 libfreetype.so
Ora riavviate il server X, e vedrete un miglioramento pazzesco nelle
font (se avete attivato l'antialiasing!). 
MEGLIO DI WINDOWS (chi avrebbe mai detto che un giorno avrei detto
queste parole, io che ero un fan di Bill Gates...)
Ciao!
Fatemi sapere se avete problemi (non che sia un esperto, però...)
Maurizio


 qualcun altro ha esperienze diverse in merito?
Il bytecode e ormai sconsigliato, specialmente se hai le freetype
recenti:
http://www.freetype.org/freetype2/2.1.3-explained.html
Ciao.
-- 
***  Per E-mail rimuovi ModE dall'indirizzo  ***
  *** Linux user # 198661 --- ICQ 33500725 ***
*** homepage 
http://web.tiscalinet.it/kailed
 ***
            *** Powered by Linux ***

Prima vi ho detto di ricompilare, ora mi correggo: c'e` un modo molto piu`
semplice di attivare l'antialiasing con l'autohinter su Debian. Aggiungete al file
/etc/fonts/local.conf le seguenti righe:
  <match target="font">
   <edit name="autohint" mode="assign_replace"><bool>true</bool></edit>
  </match>
Questo disabilita il bytecode interpreter attivando l'autohinter, il che
e` meglio se usate l'antialiasing.


 ./configure
Ho una debian sid, mi da il seguente messaggio d'errore:
cd builds/unix; ./configure
checking build system type... i686-pc-linux-gnulibc1
checking host system type... i686-pc-linux-gnulibc1
checking target system type... i686-pc-linux-gnulibc1
checking for gcc... gcc
checking for C compiler default output... configure: error: C compiler
cannot create executables
check `config.log' for details.
make: *** [
unix-def.mk
] Error 77
Ho provato a leggere config.log ma... boh!!!
Help, aiutami please.
Ciao.

 è meglio se usate l'antialiasing.
C'è un modo ancora più facile:
in ~/.Xresources inserite
Xft.autohint : 1
poi riavviate X, oppure semplicemente aggiornate le risorse di X con
xrdb -merge .Xresources
-------
Questo miglioramento delle font riguarderà solo mozilla-xft, gnome e kde.
Openoffice non cambierà aspetto.
Ma non tutto e` perduto:
Per migliorare l'antialiasing di openoffice, compilate a mano
freeetype2, ottenendo ad esempio /usr/local/lib/libfreetype.so.6,
poi nel .bashrc mettete
    export LD_PRELOAD=/usr/local/lib/libfreetype.so.6
Adesso openoffice avrà font con antialiasing a livello di red hat.
