Mondi su mondi, sistemi di sistemi.

Dettagli sul font hinting

Friday, January 22nd, 2010

Nel mio post chi­lo­me­trico su @font-face ho accen­nato alla que­stione del font hin­ting e alle dif­fe­renze nel ren­de­ring delle font, in par­ti­co­lare, quello delle font OpenType CFF sotto Windows è net­ta­mente peg­giore di quelle TrueType 1.

PostScript vs TrueType

Il motivo di que­sta dif­fe­renza è dovuto al fatto che il for­mato CFF ere­dita una serie di scelte fatte in pas­sato con il PostScript, in par­ti­co­lare la descri­zione dell’outline e, appunto, il modello di hinting.

Questi modelli, però, erano creati per le stam­panti a bassa riso­lu­zione e non per il moni­tor; vice­versa, il TrueType è stato pen­sato fin dall’inizio per il ren­de­ring a video.

Perché il CFF usa il modello del PostScript?

La scelta usata per il CFF è moti­vata dal fatto che il for­mato outline con le curve di Bézier cubi­che del PostScript è quello usato quasi tutti i pro­get­ti­sti di font e soprat­tutto il modello di hin­ting è molto più sem­plice e può essere in larga parte auto­ma­tiz­zato 2.

In que­sto momento, quindi, la scelta del TrueType per @font-face sem­bra pra­ti­ca­mente obbli­gata, almeno fino al momento in cui il ren­de­ring tra­mite DirectWrite sarà suf­fi­cien­te­mente dif­fuso su Windows 3.

  1. Fonts e il web: a che punto siamo
  2. Font Hinting Explained By A Font Design Master
  3. A typo­gra­phic wor­k­book. Le infor­ma­zioni sui diversi for­mati si tro­vano alle pagg. 135–137.

Fonts e il web: a che punto siamo?

Saturday, January 2nd, 2010

Introduzione

Una dei temi ricor­renti dell’anno appena tra­scorso nell’ambito dello svi­luppo web è stato sicu­ra­mente quello delle font. Ho pen­sato per­ciò di rac­co­gliere alcuni arti­coli com­parsi recen­te­mente per dare una pano­ra­mica della questione.

In par­ti­co­lare, vedremo in cosa con­si­ste a grandi linee l’uso di @font-face, i punti a cui fare atten­zione, le impli­ca­zioni posi­tive e nega­tive. Ho cer­cato di estrarre gli aspetti più pra­tici, riman­dando agli arti­coli ori­gi­nali (lin­kati nei titoli delle sezioni) per i det­ta­gli teo­rici e le moti­va­zioni che stanno die­tro le varie soluzioni.

Per gli impa­zienti, comun­que, ecco il rias­sunto. Anche se i passi in avanti sono stati signi­fi­ca­tivi, credo sia pru­dente limi­tare @font-face a titoli e cose del genere, con­ti­nuando ad usare le font clas­si­che per tutto il resto, magari rive­dendo con più atten­zione gli stack delle font dichia­rate nei fogli di stile.

How to use CSS @font-face #

Cominciamo con la domanda pra­tica: cosa biso­gna fare per usare @font-face? Questo:

@font-face {
  font-family: "Kimberley";
  src: url(http://www.princexml.com/fonts/larabie/ »
  kimberle.ttf) format("truetype");
}

In altre parole, dob­biamo defi­nire ori­gine e for­mato per la font Kymberley in modo da poterla poi usare nelle stesse moda­lità delle font già installate.

Fin qui la teo­ria, in pra­tica dob­biamo risol­vere la que­stione dei diversi for­mati delle font 1. La cosa più veloce per risol­verle è gene­rare tutti quelli che ser­vono con Font Squirrel.

Una volta gene­rati i for­mati biso­gna irro­bu­stire la dichia­ra­zione che abbiamo visto prima per farla fun­zio­nare con i vari browser:

@font-face {
  font-family: "Your typeface";
  src: url("type/filename.eot");
  src: local("Alternate name"), local("Alternatename"),
    url("type/filename.woff") format("woff"),
    url("type/filename.otf") format("opentype"),
    url("type/filename.svg#filename") format("svg");
  }

La com­bi­na­zione dei due src si prende cura di Explorer 2; i due local con­sen­tono al bro­w­ser di cer­care prima la font in locale, e sono due per­ché alcuni bro­w­ser usano il nome Postscript e altri il nome del file; il resto sono elen­cati i for­mati in ordine di desiderabilità.

Anche se qui mostriamo una sola dichia­ra­zione, biso­gna tenere pre­sente che biso­gna crearne: una per il roman e una per l’italico 3.

Real Web Type in Real Web Context #

Una volta che abbiamo impo­stato i nostri fogli di stile, per testare una font serve un qual­che tipo di testo stan­dard che ne metta in luce pregi e difetti.

Web Font Specimen fa esat­ta­mente que­sto. Possiamo sca­ri­care la pagina cam­pione in locale, impo­starla con le nostre font e vedere come si com­porta dal vivo, con i vari bro­w­ser 4.

Designing For The Switch #

Rendering a parte, uno dei pro­blemi prin­ci­pali nell’uso di @font-face è il peso, dovuto prin­ci­pal­mente alle tabelle di hin­ting molto estese.

Il Georgia, ad esem­pio, è quasi 300 KB, suf­fi­cienti rovi­nare il primo impatto per­ché alcuni bro­w­ser, come Opera e FireFox, pre­sen­te­ranno per un attimo la pagina senza la font cor­retta, il fami­ge­rato Flash of Unstyled Text (FOUT), men­tre altri, come il WebKit, aspet­te­ranno di aver sca­ri­cato tutta la font, non mostrando nes­sun testo durante l’operazione.

Da un punto di vista stret­ta­mente pro­ce­du­rale, non c’è nes­suna alter­na­tiva: la font dev’essere sca­ri­cata e fino a quando l’operazione non è ter­mi­nata le scelte pos­si­bili sono quelle viste prima 5.

Fighting the @font-face FOUT — Quicken the load time #

Tuttavia ci sono alcuni truc­chi uti­liz­za­bili. Il primo con­si­ste nel ridurre all’osso il file della font, eli­mi­nando tutto quello che non è stret­ta­mente indi­spen­sa­bile 6; il secondo con­si­ste nel cali­brare atten­ta­mente l’elenco delle font nel foglio di stile per mini­miz­zare il FOUT; poi lo pos­siamo zip­pare, gua­da­gnando fino al 40%; infine dovremo fare in modo che la font sca­ri­cata rimanga in cache.

L’arma nucleare tat­tica 7è però quella di for­zare il cari­ca­mento della font prima che la pagina venga mostrata, in modo da averla pronta quando serve.

Better font stacks #

Come accen­navo all’inizio, l’estensione dello stack delle font dichia­rate può essere usato per que­sto scopo (com­bat­tere il FOUT) ma anche sem­pli­ce­mente per usare com­bi­na­zione meno scontate.

La pre­messa fon­da­men­tale è che, in realtà, il bro­w­ser ha a dispo­si­zione molte più font di quelle di solito con­si­de­rate. Inoltre, è pos­si­bile indi­vi­duare delle com­bi­na­zioni accet­ta­bili per coprire i casi in cui la font ideale non è presente.

Questo lavo­rac­cio è già stato fatto e il cam­pio­na­rio in pdf alle­gato all’articolo citato è uti­lis­simo per pren­dere una deci­sione 8.

Real Fonts and Rendering: The New Elephant in the Room #

E ora veniamo al vero pro­blema emerso nei primi usi sul campo: il ren­de­ring delle font, dovuto ai com­por­ta­menti molto ete­ro­ge­nei dei motori di ren­de­ring in com­bi­na­zione con i diversi sistemi ope­ra­tivi. 9.

Browser Choice vs Font Rendering #

L’analisi di Zeldman difetta forse di pre­ci­sione, visto che si limita a con­sta­tare il pro­blema, anche se posso capirlo: i det­ta­gli sono un po’ da mal di testa. Comunque, guar­dando le cose con più atten­zione il pano­rama sem­bra meno preoccupante.

L’attuale sistema di ren­de­ring sotto Windows, il GDI, che for­ni­sce la base per l’anti-aliasing in ClearType, fun­ziona in modo ade­guato solo le font TrueType.

Le nuove ver­sioni dei bro­w­ser use­ranno però un’altro motore, il DirectWrite, più sofi­sti­cato, in grado di for­nire un ren­de­ring ade­guato anche per i PostScript e gli OpenType. Ci saranno ancora delle dif­fe­renze rispetto a Mac OS X ma saranno “solo” diversi.

In con­clu­sione

Dopo tante attese e false par­tenze l’uso di @font-face non è più solo una pos­si­bi­lità teo­rica. Tuttavia, anche se la voglia di usarlo sem­bra con­ta­giare tutti, allo stato attuale va usato con atten­zione: mi limi­te­rei alle tito­la­zioni; per i testi estesi ci vuole più prudenza.

Questi sono pro­blemi che ver­ranno comun­que risolti. Più impor­tanti, invece, i mes­saggi per chi si occupa di design web.

In primo luogo biso­gna supe­rare la fissa di fare in modo che una pagina si veda esat­ta­mente allo stesso modo ovun­que 10. Il fatto di avere più font a dispo­si­zione ha fatto emer­gere dif­fe­renze enormi fra le varie piat­ta­forme e, a com­pli­care ulte­rior­mente le cose, le piat­ta­forme stesse sono in con­ti­nua diver­si­fi­ca­zione11. Inseguire l’assoluta omo­ge­neità è futile, però biso­gnerà essere più rigo­rosi nei test: le sor­prese del ren­de­ring sono sal­tate fuori in modo cla­mo­roso anche per­ché, a dispetto delle dichia­ra­zioni uffi­ciali, alcuni siti sono “usciti” con ver­sioni testate solo su Mac.

Inoltre e cosa più impor­tante, l’espansione dell’offerta di font uti­liz­za­bili signi­fica che è neces­sa­ria una mag­giore com­pe­tenza (tipo)grafica. Ci vor­ranno più gusto e più com­pe­tenza per la scelta e la com­bi­na­zione giuste.

Può darsi che quella dell’anno scorso sia stata solo una fiam­mata desti­nata a spe­gnersi e rima­nere dor­miente per altri anni ma non ci scom­met­te­rei: meglio prepararsi.

  1. Sono stati pro­prio i for­mati a fer­mare l’uso di @font-face fino ad oggi, ali­men­tando fra l’altro l’errata con­vin­zione che fosse una pos­si­bi­lità intro­dotta con CSS3.
  2. che userà comun­que il primo
  3. altri det­ta­gli sul per­corso che ha por­tato a que­sta solu­zione li tro­vate in Bulletproof @font-face syn­tax
  4. que­stione spi­nosa su cui tor­ne­remo più avanti
  5. Per quanto riguarda i motori di ren­de­ring, non escludo che gli svi­lup­pa­tori si inven­tino qual­che stra­ta­gemma per miti­gare almeno il pro­blema.
  6. Font Squirrel, di cui abbiamo par­lato prima, rende que­sta parte molto sem­plice
  7. anche a costo di ren­dere l’HTML non valido? Beh, a voi la scelta dell’esca­la­tion
  8. que­ste infor­ma­zioni le ho rica­vate da font-face e Webfonts: come usarli, un post com­ple­tis­simo, in par­ti­co­lare sulla suc­ces­sione degli eventi che ha por­tato alla situa­zione attuale
  9. Fra l’altro la que­stione non è limi­tata al ren­de­ring del sin­golo carat­tere ma si estende anche alla spa­zia­tura fra i carat­teri. In par­ti­co­lare, le tabelle di ker­ning non ven­gono rispet­tate
  10. Ignorance is bliss
  11. quante ver­sioni di WebKit ci sono in giro? Io ho perso il conto…

Alcuni consigli basati sull’eye–tracking

Saturday, November 24th, 2007

Questo arti­colo elenca una serie di con­si­gli basati sui risul­tati degli study di eye–tracking alcuni dei quali mi suo­nano piut­to­sto inaspettati.

  1. il testo attira l’attenzione più velo­ce­mente della grafica;
  2. la for­mat­ta­zione fan­ta­siosa tende ad essere ignorata;
  3. le dimen­sioni del testo influen­zano il modo di leggere;
  4. le parti infe­riori della pagina ven­gono guardate;
  5. gli utenti pas­sano molto tempo a guar­dare gli ele­menti dell’interfaccia gra­fica, come pul­santi e menu (que­sta me la devono pro­prio spiegare…).

Safari: supporto per le font scaricabili

Thursday, October 11th, 2007

Dalla ver­sione r26183, Safari sup­porta il down­load delle font, attra­verso il selec­tor @font-face. Ecco un esempio:


@font-face {
font-family: "Abandoned Bitplane";
src: url(http://www.princexml.com/fonts/larabie/abandone.ttf) format("truetype");
}

Semplice, no? E il risul­tato è abba­stanza elo­quente. Ecco il ren­de­ring di Safari r26183:

picture-1.png

rispetto alla ver­sione standard:

picture-2.png

(Gli screen­shot sono tratti dagli esempi di que­sto arti­colo su A List Apart).

Ovviamente, il fatto che le font siano libe­ra­mente sca­ri­ca­bili pone degli ovvi pro­blemi, di licenza e di uso impro­prio delle font; sia per­ché il web desi­gner medio non ha cono­scenze tipo­gra­fi­che suf­fi­cienti per sele­zio­nare ade­gua­ta­mente le font da usare, sia per­ché è dif­fi­cile tro­vare delle font gra­tis di qualità .

Ancora sul rendering delle font

Friday, August 24th, 2007

Per pro­se­guire dal post pre­ce­dente, ecco un’altra ana­lisi molto appro­fon­dita – e un po’ troppo lunga – sulla visua­liz­za­zione delle font. Vorrei scri­verne io di arti­coli così…

Rendering delle font: differenze fra Windows e Mac

Thursday, August 23rd, 2007

Post sulle dif­fe­renze di fondo nel ren­de­ring dei carat­teri fra Windows e Mac OS X, anche per l’apprezzabile ten­ta­tivo di met­tere le due filo­so­fie in una pro­spet­tiva di costi / benefici.

Troubleshooting: crash del Finder con i .textClipping

Monday, July 9th, 2007

Non so se vi sia mai capi­tato di vederlo ma in certe con­di­zioni il Finder con­ti­nua ad andare in crash a ripe­ti­zione, ren­dendo pra­ti­ca­mente impos­si­bile lavo­rare. Lo stack trace sem­bra indi­care qual­cosa legato ai font.

Tuttavia, prima di but­tarvi a corpo morto – come ho fatto io – su pre­fe­renze, caches, con­trolli di font e loro disat­ti­va­zione, veri­fi­cate che sul Desktop non siano pre­senti dei file .text­Clip­ping. A quanto pare la pre­senza di que­sti tipi di file, in com­bi­na­zione con font non atti­vati o assenti per le lin­gue asia­ti­che – e forse anche con il con­te­nuto del text clip­ping – manda il Finder in crash fino a quando non ha esau­rito la lista di font attivi in quel momento e, in ambito publi­shing, può volere dire stare in attesa per un bel po’!!

Ovviamente non potrete usare l’account pro­ble­ma­tico per eli­mi­nare il text clip­ping. Se avete a dispo­si­zione un altro utente con pri­vi­legi ammi­ni­stra­tivi, potete usare quello per lan­ciare il ter­mi­nale; in alter­na­tiva avviate in sin­gle user mode.

Altre info:
Recover from a con­stan­tly restar­ting Finder loop. Fra l’altro, da quanto in que­sta pagina, sem­bra che que­sto tipo di crash ciclici possa essere cau­sato anche da altre cir­co­stanze, come la pre­senza di .plist corrotte.

Come installare i font di Vista

Wednesday, April 25th, 2007

Quasi tutti i nuovi font di Windows Vista sono distri­buiti anche con il viewer di PowerPoint. Le istru­zioni per estrarli e instal­larli dovreb­bero essere abba­stanza chiare.

Cabextract, la uti­lity citata per estrarre i font dal pac­chetto d’installazione è instal­la­bile anche con MacPorts.

viaLetter

Thursday, February 22nd, 2007

A-Bauer Bodonivia­Let­ter è un sito per creare dei mes­saggi da spe­dire fatti di let­tere fisiche.Se sce­glie un carat­tere – sono dispo­ni­bili Helvetica, Bauer Bodoni, Rockwell Condesed, Frankfurter –, si com­pone il mes­sag­gio e lo si compra.

Vale la pena di darci un’occhiata anche solo per il sistema di sele­zione del messaggio.

Certo fa un po’ spe­cie com­porre una parola e sco­prire che la “r” in Helvetica è esaurita!

Font gratis da Apple

Wednesday, January 31st, 2007

Trovare font gra­tis e di qua­lità non è facile, per cui è meglio non lasciar­seli scap­pare se arri­vano diret­ta­mente da Apple. Sono nella pagina dedi­cata allo scrip­ting di iTu­nes. Basta sca­ri­care la col­le­zione di script.

I font si tro­vano in “iTu­nes Scripts for Mac OS X/AppleWorks 6.2.2 Stuff/ITC Fonts” e sono inclusi per­ché ser­vi­vano per i tem­pla­tes in AppleWorks.

Fonte: MacWorld