FONT.ORG / Fonty, fonty... / Sparing
Artykuł pierwotnie opublikowany w biuletynie GUST.
Autor: Adam Twardoch. Aktualizacja: luty 1999. Wszelkie prawa zastrzeżone.

Sparing: Po­ró­wna­nie for­ma­tów Type 1 i TrueType

O mi­strzo­stwo świata

Ostatnie dzie­się­cio­le­cie by­ło dla drukarstwa i typografii okre­sem roz­wo­ju wprost rewolucyjnego. Sło­wo dru­ko­wa­ne prze­sta­ło być do­me­ną ze­ce­rów — speców od czar­nej roboty. „Piekielne komputerki” (jak ma­wia war­szaw­ski ty­po­graf, Ste­fan Szczyp­ka) trafiły pod strze­chy, zaś wyp­lu­wa­ne z ta­nich „plujek” za­pro­sze­nia na uro­dzi­ny ciot­ki Klot­ki za­czę­ły mienić się fe­e­rią ko­lo­ro­wych czcionek.

Również za­wo­dow­cy — redaktorzy, pla­sty­cy — zaczęli znów (po kil­ku­set la­tach za­leż­no­ści od właścicieli dru­karń) mieć bez­po­śre­dni wpływ na ostateczny kształt dru­ko­wa­ne­go słowa.

Największe do­my ty­po­gra­fi­czne, niegdysiejsze kon­cer­ny, od wes­tchnie­nia któ­rych trząsł się świat, za­czę­ły prze­gry­wać w konkurencji z małymi, pręż­ny­mi, cza­sem wręcz jednoosobowymi „odlewniami”, z dnia na dzień two­rzą­cy­mi no­we kroje pis­ma. Czy­tel­ność (ang. legibility) zo­sta­ła zastąpiona przez an­ty­czy­tel­ność, rea­lizm przez postmodernizm, ty­po­gra­fi­czną per­fek­cję za­stą­pi­ło ma­ją­ce wszystko uspra­wied­li­wiać sło­wo cool.

W tym właś­nie kli­ma­cie na ty­po­gra­fi­cznej scenie prze­bie­gał za­cię­ty po­je­dy­nek dwóch wiel­kich koalicji. Po­je­dy­nek dwóch te­chno­lo­gii, któ­ry miał zadecydować o tym, jak bę­dzie wy­glą­dał al­fa­bet XXI wieku.

Font wa­gi piórkowej

Przez stu­le­cia li­te­ry po­ja­wia­ły się w spo­sób czy­sto me­cha­ni­czny — by­ły wy­ni­kiem od­bi­cia na pa­pie­rze wi­ze­run­ku odlanego w spe­cjal­nym stem­plu na­zy­wa­nym czcionką. Dziś ty­po­we czcion­ki na­le­żą już do prze­szło­ści, zaś ich miejsce zajął no­wy noś­nik pis­ma — fonty. Fon­ty kom­pu­te­ro­we to zbio­ry da­nych cyf­ro­wych — obwiedni two­rzą­cych po­szcze­gól­ne zna­ki, zde­fi­nio­wa­nych przy uży­ciu równań dru­gie­go lub trze­cie­go stop­nia, a tak­że li­cznych da­nych dodatkowych. Fon­ty ta­kie, zwa­ne czę­sto wek­to­ro­wy­mi, mo­gą być swobodnie ska­lo­wa­ne, dzię­ki cze­mu uzys­kać mo­że­my wi­ze­ru­nek znaku o dowolnych rozmiarach.

Raster wy­nik nam pokaże

Proces two­rze­nia z fon­tu wi­ze­run­ku li­te­ry za­da­nej wiel­ko­ści nazywamy rastrowaniem, pro­gram, któ­ry za ten pro­ces jest odpowiedzialny, no­si zaś na­zwę rasteryzator (ang. rasterizer).

Rasteryzatory są zwyk­le in­te­gral­ny­mi ele­men­ta­mi sy­ste­mu zarządzania fon­ta­mi (ang. type engine), do któ­re­go zadań na­le­ży m.in. łą­cze­nie od­mian pism w rodziny, two­rze­nie w oparciu o dany font od­mian pochodnych, do­stęp do zna­ków spe­cy­fi­cznych dla da­ne­go ję­zy­ka itp. Choć jest to nie­pre­cy­zyj­ne, czę­sto spo­ty­ka się za­mien­nie uży­cie nazw font rasterizertype engine.

Rasteryzatory fon­tów, a wraz z nim i type engines, mo­gą być czę­ścią sy­ste­mu ope­ra­cyj­ne­go (jak np. rasteryzator fontów TrueType w MS Win­dows) lub wy­stę­po­wać ja­ko na­kład­ki na system (np. ATM).

Rastrowanie po­le­ga na wy­peł­nia­niu krop­ka­mi kształtu zde­fi­nio­wa­ne­go ob­wie­dnią. Krop­ki mo­gą być al­bo ekranowymi pik­se­la­mi, al­bo kro­pel­ka­mi far­by dru­kar­skiej czy okru­szka­mi tonera.

Rys. 1. Ra­stro­wa­nie fontu
Rys. 1. Ra­stro­wa­nie fontu

Na da­nym wy­cin­ku po­wie­rzchni „zadruku” moż­na zmie­ścić ściśle okreś­lo­ną li­czbę tych­że kropek. Za­le­ży to od te­go, ja­kie ma­te­ria­ły („farba” i podłoże, któ­rym oczy­wi­ście mo­że być lu­mi­no­for ekra­nu mo­ni­to­ra) uży­te są w tym pro­ce­sie, oraz od te­go ja­ką zastosowano te­chni­kę dru­ku czy wyświetlania. Mak­sy­mal­ną li­czbę kro­pek, ja­ką moż­na przy użyciu kon­kret­ne­go urzą­dze­nia (np. mo­ni­to­ra, dru­kar­ki, na­świet­lar­ki, ma­szy­ny dru­kar­skiej) zmieścić na za­da­nym od­cin­ku na­le­żą­cym do po­wie­rzchni „zadruku”, na­zy­wa­my rozdzielczością te­go urządzenia. Oczy­wi­ście im wyż­sza roz­dziel­czość urzą­dze­nia, tym lepiej, gdyż okreś­lo­nych roz­mia­rów obiekt moż­na na nim przed­sta­wić z uwzglę­dnie­niem więk­szej li­czby szczegółów.

Przykładowo, roz­dziel­czość ekra­nu wa­ha się w granicach 72 — 96 dpi (pun­któw na cal), podczas gdy pa­pier zad­ru­ko­wy­wa­ny jest w rozdzielczościach od 300 dpi w przypadku dru­ka­rek do kil­ku ty­się­cy pun­któw na cal w przypadku pro­fe­sjo­nal­nych ma­szyn drukarskich.

Najpopularniejszymi sto­so­wa­ny­mi dziś for­ma­ta­mi są for­ma­ty Type 1TrueType.

Przed pojedynkiem

Format Type 1 opra­co­wa­ny zo­stał w roku 1985 [1] z myślą o wykorzystaniu w urządzeniach dru­ku­ją­cych posługujących się ję­zy­kiem opi­su stro­ny PostScript. Po­mys­ło­daw­cą całego przed­sięw­zię­cia była fir­ma Ad­o­be Sy­stems, Inc., za­ło­żo­na przez by­łych pracowników kon­cer­nu Xerox. W tym cza­sie na ryn­ku po­ja­wi­ły się już pier­wsze kom­pu­te­ry Apple, w których po raz pierwszy za­sto­so­wa­ne zostało przy­jaz­ne dla użytkownika graficzne śro­do­wis­ko, opar­te na te­chno­lo­gii wy­świet­la­nia obrazu zwa­nej QuickDraw. Po­nie­waż w tym sa­mym cza­sie w sprze­da­ży zna­laz­ły się też i drukarki la­se­ro­we umoż­li­wia­ją­ce zna­ko­mi­tą jak na tam­te cza­sy ja­kość druku w rozdzielczości 300 dpi. Fir­ma Ap­ple, za­mie­rza­ją­ca wyprodukować włas­ną dru­kar­kę la­se­ro­wą prze­zna­czo­ną dla swo­ich komputerów, roz­po­czę­ła po­szu­ki­wa­nia moż­li­wie uni­wer­sal­ne­go języka opi­su stro­ny, a więc od­po­wie­dni­ka QuickDraw, z tym, że prze­zna­czo­ne­go dla drukarek.

Próby stwo­rze­nia ta­kie­go ję­zy­ka pod­ję­ło kil­ka firm, spo­śród których Ap­ple wy­brał opra­co­wa­ny przez Ad­o­be, re­wo­lu­cyj­ny jak na tam­te czasy, ję­zyk Post­Script, gwa­ran­tu­ją­cy (przy­naj­mniej w teorii) moż­li­wość nie­za­leż­ne­go od ty­pu urzą­dze­nia końcowego przy­go­to­wa­nia da­nych do druku. Ap­ple wy­po­sa­żył w ten ję­zyk swo­ją pier­wszą dru­kar­kę — Apple La­ser­Wri­ter. Dzię­ki swym li­cznym za­le­tom, Post­Script błyskawicznie za­czął sta­wać się bar­dzo po­pu­lar­ny ró­wnież w kręgach profesjonalnych, wy­pie­ra­jąc spe­cy­fi­czne rozwiązania po­szcze­gól­nych producentów. Gdy oka­za­ło się, że ogrom­na więk­szość firm produkujących urzą­dze­nia dru­kar­skie (dru­kar­ki i na­świet­lar­ki) zapragnęła wy­po­sa­żyć swo­je ma­szy­ny w Post­Script, Ad­o­be za­czę­ło do­ma­gać się wy­so­kich opłat li­cen­cyj­nych za in­ter­pre­ter PostScriptu, za­wie­ra­ją­cy m.in. ra­ste­ry­za­tor kro­jów Type 1.

Specyfikacja for­ma­tu Ty­pe 1 trzy­ma­na by­ła w tajemnicy, głównie ze wzglę­du właś­nie na li­cen­cje, a także na opra­co­wa­ny przez Ad­o­be me­cha­nizm op­ty­ma­li­za­cji kształ­tu liter w niskich roz­dziel­czo­ściach, tzw. hinting. Opub­li­ko­wa­no tyl­ko spe­cy­fi­ka­cję for­ma­tu Type 3, któ­ry po­zba­wio­ny był te­go cen­ne­go mechanizmu.

Wielcy pro­du­cen­ci opro­gra­mo­wa­nia (Ap­ple, IBM, Mic­ro­soft) zaczęli so­bie je­dnak szyb­ko zda­wać spra­wę, że war­to by wy­ko­rzy­stać fon­ty ska­lo­wal­ne ró­wnież w tworzonych przez nich sy­ste­mach ope­ra­cyj­nych — do tej po­ry zna­ki na ekranie wy­świet­la­ne by­ły w opar­ciu o ma­try­ce za­pi­sa­ne w postaci map bitowych.

Ponieważ spe­cy­fi­ka­cja for­ma­tu Type 1 nie by­ła ogól­nie dostępna, pro­du­cen­ci opro­gra­mo­wa­nia, chcąc wy­ko­rzy­stać ten format w swoich systemach, mu­sie­li­by w dużym stop­niu uzależnić się od Ad­o­be, a także opła­cić hor­ren­dal­ne licencje. mu­sie­li­by uza­leż­nić się od Ad­o­be, i opłacić hor­ren­dal­ne licencje. W roku 1987 fir­my Ap­ple i Microsoft pod­ję­ły więc decyzję o opracowaniu włas­ne­go systemu wy­świet­la­nia grafiki i nowego for­ma­tu za­pi­su fon­tów, któ­ry mię­dzy innymi w większym stop­niu uwzglę­dnić miał spe­cy­fi­kę wy­świet­la­nia zna­ków na ekranie.

W ramach te­go po­ro­zu­mie­nia Mic­ro­soft roz­po­czął pra­ce nad opra­co­wa­niem po­dob­ne­go za­sa­dą działania do Post­Scrip­tu ję­zy­ka opi­su stro­ny o nazwie TrueImage, Ap­ple miał zaś stwo­rzyć no­wy for­mat za­pi­su fontów, któ­re­mu na­da­no tym­cza­so­wą na­zwę Royal. Pra­ce Mic­ro­sof­tu nad TrueI­ma­ge nie przy­nios­ły oczekiwanych re­zul­ta­tów, a więc wkrót­ce je zaprzestano — sy­stem był wolny, nie­dok­ła­dny, pe­łen błę­dów i ni­gdy nie do­cze­kał się szer­szej implementacji. Je­dnak in­for­ma­ty­cy Ap­ple, na cze­le któ­rych stał Sampo Kaasila, po dwóch latach prac stwo­rzy­li TrueType.

Aby ra­to­wać po­zy­cję Type 1, fir­ma Ad­o­be odtajniła w roku 1990 spe­cy­fi­ka­cję te­go formatu, i na po­cząt­ku 1991 ro­ku stworzyła Adobe Ty­pe Manager (ATM), rasteryzator (oraz type engine) fon­tów Type 1 dla kom­pu­te­rów Apple.

W tym sa­mym okre­sie, w marcu 1991 ro­ku, Apple za­pre­zen­to­wał for­mat TrueType. Oka­za­ło się, że for­mat ten du­żo le­piej od Type 1 uwzglę­dniał spe­cy­fi­kę wy­świet­la­nia zna­ków na ekra­nie — miał du­żo lep­szy me­cha­nizm hintingu i znacznie szyb­szy rasteryzator. Fir­ma Ap­ple za­ku­pi­ła więc od amerykańskiego kon­cer­nu po­li­gra­fi­czne­go Linotype li­cen­cje na wy­ko­rzy­sta­nie w swoim sy­ste­mie operacyjnym kro­jów Times Roman, HelveticaCourier, któ­re już wcześ­niej zna­laz­ły się w repertuarze fon­tów dołączanych przez Ad­o­be do in­ter­pre­te­ra PostScriptu. In­ży­nie­ro­wie fir­my Ap­ple stwo­rzy­li ich zna­ko­mi­te wer­sje TrueType, któ­re re­pre­zen­ta­cją na ekra­nie bi­ły na głowę post­scrip­to­we odpowiedniki.

Rok póź­niej te­chno­lo­gia TrueType mia­ła swo­ją dru­gą pre­mie­rę — tym ra­zem wcho­dząc w skład Windows 3.1 — no­wej wersji sy­ste­mu ope­ra­cyj­ne­go fir­my Mic­ro­soft, któ­ra — we współpracy z drugim po­li­gra­fi­cznym gigantem, Monotype — przy­go­to­wa­ła truetypowe wer­sje kro­jów Arial, Times New RomanCourier New, zbli­żo­nych do „oryginałów” zastosowanych w PostScripcie, je­dnak nieznacznie róż­nią­cych się ze wzglę­dów licencyjnych [2].

Niestety oka­za­ło się, że 16­-bi­to­wy rasteryzator Microsoftu (stwo­rzo­ny na ba­zie 32­-bi­to­we­go pro­gra­mu Kaasili) miał spo­ro błędów. Na bę­dą­cych wów­czas stan­dar­dem komputerach z pro­ce­so­ra­mi 286 bar­dziej skom­pli­ko­wa­ne znaki nie chcia­ły się ra­stro­wać w du­żych stop­niach pisma. Ró­wnież im­ple­men­ta­cja hin­tin­gu nie zo­sta­ła do­ko­na­na poprawnie.

W związku z tym więk­szość po­waż­nych pro­du­cen­tów pism drukarskich, na cze­le z Linotype, nie zde­cy­do­wa­ła się na przeniesienie swo­ich kro­jów do for­ma­tu TrueType i zaczęła ofe­ro­wać je tylko w postaci fon­tów Type 1.

Ring wolny

Type 1

Type 1 [3] skła­da się z dwóch pli­ków: me­try­czne­go i binarnego. Plik bi­nar­ny (za­ko­do­wa­ny, zwyk­le nosi roz­sze­rze­nie .pfb) ma bu­do­wę słownikową. Istnie­je kil­ka „słowników” za­wie­ra­ją­cych dane o kroju pis­ma — przede wszystkim o kształtach li­ter i rozmieszczeniu hintów.

Znaki w fontach Type 1 zbu­do­wa­ne są z obwiedni, opi­sa­nych tzw. krzywymi Bézie­ra trze­cie­go stopnia. Krzy­wa ta­ka de­fi­nio­wa­na jest przez ciąg punktów kor­po­me­try­cznych (punktów kon­trol­nych, węzłów, ang. control po­ints, nodes) uło­żo­nych w dwuwymiarowym ukła­dzie współrzędnych, na ob­sza­rze firetu (ang. em square).

Zapewnia to kom­pa­ty­bil­ność z ję­zy­kiem PostScript i ułat­wia two­rze­nie ta­kich fon­tów projektantom (więk­szość pro­gra­mów ilu­stra­cyj­nych ró­wnież stosuje krzy­we Bézie­ra 3. stopnia). Wy­gląd po­szcze­gól­nych zna­ków za­pi­sa­ny jest w specjalnym ję­zy­ku przy­po­mi­na­ją­cym PostScript, w którym opi­sa­ny jest też hinting.

Rys. 2. Bu­do­wa zna­ku w fon­cie Ty­pe 1
Rys. 2. Bu­do­wa zna­ku w fon­cie Ty­pe 1

Plik me­try­czny (o rozszerzeniu .afm) za­wie­ra informacje o rozmiarach zna­ków oraz ker­nin­gu (ko­rek­ta op­ty­czna świa­teł międzyliterowych).

Fonty Type 1 mo­gą za­wie­rać do­wol­ną li­czbę zna­ków, je­dnak dla więk­szo­ści ap­li­ka­cji w najpopularniejszych systemach ope­ra­cyj­nych do­stęp­nych jest ich mak­sy­mal­nie 256.

Jest to zna­czne ogra­ni­cze­nie, prak­ty­cznie uniemożliwiające ob­słu­gę wie­lu ję­zy­ków czy sto­so­wa­nie li­ga­tur lub form alternatywnych w jednym foncie. Je­dnym ze spo­so­bów omi­nię­cia tej ba­rie­ry jest umieszczenie zna­ków da­nej od­mia­ny w kilku fon­tach — two­rzy się wów­czas tzw. expert sets, zawierające ka­pi­ta­li­ki, li­ga­tu­ry i formy alternatywne, al­bo fon­ty za­ko­do­wa­ne we­dług róż­nych stron kodowych, za­wie­ra­ją­ce zna­ki róż­nych alfabetów. Istnie­je co praw­da roz­sze­rze­nie for­ma­tu Type 1 pod na­zwą CID­-keyed fonts [4], stwo­rzo­ne przez fir­mę Ad­o­be na po­trze­by rynków az­ja­tyc­kich, któ­re umoż­li­wia sto­so­wa­nie fon­tów zawierających kil­ka czy na­wet kil­ka­dzie­siąt ty­się­cy zna­ków, je­dnak definicja te­go for­ma­tu jest za­wi­ła, a i tworzenie fon­tów CID jest skomplikowane.

Ciekawostką jest, że w formacie Type 3, któ­ry nie za­wie­ra in­for­ma­cji o hintach, zna­ki mo­gą być kreś­lo­ne przy uży­ciu peł­nej pa­le­ty in­struk­cji postscriptowych. Umoż­li­wia to stosowanie roz­mai­tych „efektów specjalnych”. Np. w piśmie FF Beowolf [8] fir­my LettError (for­mat Type 3) wszy­stkie znaki pod­le­ga­ją w czasie dru­ko­wa­nia ciągłej nie­wiel­kiej lo­so­wej mo­dy­fi­ka­cji, dzięki czemu ta sa­ma li­te­ra za każ­dym ra­zem przy­bie­ra mi­ni­mal­nie in­ny kształt.

TrueType

Format TrueType [6] jest od for­ma­tu Type 1 dużo bar­dziej skom­pli­ko­wa­ny, po­sia­da za to więcej moż­li­wo­ści i nietrudno go roz­sze­rzać za­cho­wu­jąc kompatybilność. Fon­ty TrueType, za­war­te w jednym pli­ku, zbudowane są w postaci se­rii re­ku­ren­cyj­nych tabel, z których każ­da opi­su­je in­ny aspekt fontu.

Obwiednie zna­ków w fontach TrueType za­pi­sa­ne są w tabeli glyf przy pomocy krzy­wych Bézie­ra dru­gie­go stopnia, tzw. b­-splines. Dzię­ki pro­stszej ma­te­ma­ty­cznej for­mu­le fon­ty TrueType są szyb­ciej kreś­lo­ne na ekranie. Aby wy­dru­ko­wać ta­ki font w urządzeniu postsciptowym, do nie­da­wna sy­stem ope­ra­cyj­ny musiał kon­wer­to­wać fon­ty TrueType do po­sta­ci Type 1, co nie za­wsze od­by­wa­ło się zgo­dnie z oczekiwaniami — cza­sem po­ja­wia­ły się błę­dy, wy­ni­ka­ją­ce głó­wnie z zaokrągleń przy kon­wer­sji współ­rzę­dnych, któ­re opar­te są na róż­nych skalach. Stąd utar­ło się prze­ko­na­nie, że fon­ty TrueType nie na­da­ją się do pro­fe­sjo­nal­ne­go przy­go­to­wy­wa­nia publikacji, a tylko do za­sto­so­wań biurowych. Na opi­nię tę wpły­nę­ła ró­wnież fa­tal­na ja­kość rasteryzatora TrueType do­łą­czo­ne­go do Mic­ro­soft Windows 3.1.

Na szczę­ście prak­ty­cznie wszy­stkie no­we postscriptowe urzą­dze­nia dru­kar­skie „rozumieją” także TrueType (wy­sy­ła­ne do dru­kar­ki w specjalnym for­ma­cie Type 42), zaś ra­ste­ry­za­tor TrueType za­war­ty w Windows 95 i NT 4.0 jest zna­cznie poprawiony, a więc pro­blem już nie istnieje.

Wraz z wprowadzeniem przez Mic­ro­soft w 1993 ro­ku systemu Win­dows NT 3.1, fon­ty TrueType za­czę­ły obsługiwać przy­szło­ścio­wy stan­dard ko­do­wa­nia znaków Unicode [7], bę­dą­cy częścią mię­dzy­na­ro­do­wej nor­my ISO 10646. Jest w nim zde­fi­nio­wa­nych (w ta­be­li cmap) kil­ka­dzie­siąt ty­się­cy zna­ków spotykanych w niemal wszy­stkich al­fa­be­tach świata. Są oczy­wi­ście ró­wnież pol­skie zna­ki diakrytyczne.

Dwa la­ta póź­niej Mic­ro­soft przed­sta­wił no­wą wersję swo­je­go sy­ste­mu: Windows 95. Sy­stem ten za­wie­rał zna­cznie ulepszony ra­ste­ry­za­tor TrueType (do­da­no możliwość wyg­ła­dza­nia kra­wę­dzi li­ter), a także mechanizm zwa­ny Windows Glyph List 4 (WGL4), umoż­li­wia­ją­cy m.in. po­łą­cze­nie Uni­co­de z dotychczasowymi oś­mio­bi­to­wy­mi stro­na­mi kodowymi. Dzię­ki te­mu me­cha­niz­mo­wi na­wet pro­gra­my nie ob­słu­gu­ją­ce Uni­co­de mo­gą ko­rzy­stać z fontów TrueType za­ko­do­wa­nych uni­ko­do­wo, choć sto­so­wa­nie te­go me­cha­niz­mu jest moc­no uciążliwe.

Dane me­try­czne i kerning fon­tów TrueType za­pi­sa­ne są w kilku osob­nych ta­be­lach, istnie­je też spo­ro ta­bel do­dat­ko­wych, opisujących hin­ting, anti­-alia­sing i inne aspek­ty te­chni­czne, a także za­wie­ra­ją­cych li­czne in­for­ma­cje na te­mat nazwy kro­ju pis­ma, pro­jek­tan­ta, sta­nu autorskoprawnego i licencyjnego fon­tu itp.

Rozszerzenia obu formatów

Poza kro­ja­mi post­scrip­to­wy­mi (Ty­pe 1) i kro­ja­mi TrueType, istnieją ró­wnież roz­sze­rze­nia obu formatów.

Jak wia­do­mo, po­za po­pu­lar­nym Ty­pe 1, fir­ma Ad­o­be opra­co­wa­ła kil­ka in­nych for­ma­tów zapisu fon­tów (jak wspo­mnia­ne już Ty­pe 3 czy Ty­pe 42).

Jednym z tych for­ma­tów jest for­mat Multiple Ma­ster (MM), umoż­li­wia­ją­cy dy­na­mi­czne two­rze­nie od­mian da­ne­go kro­ju na dro­dze in­ter­po­lo­wa­nia wzdłuż ja­kiejś osi mię­dzy zadanymi od­mia­na­mi eks­tre­mal­ny­mi. Osia­mi in­ter­po­la­cji mo­gą być m.in. gru­bość, sze­ro­kość, wiel­kość op­ty­czna (przy­po­mi­na to nieco kon­cep­cję Metafonta).

Rys. 3. Przy­kład kil­ku od­mian kro­ju Ad­o­be My­riad MM
(w technologii Mul­tip­le Master)
Rys. 3. Przy­kład kil­ku od­mian kro­ju Ad­o­be My­riad MM (w technologii Mul­tip­le Master)

Kroje Mul­tip­le Ma­ster two­rzo­ne są w zasadzie jedynie przez pro­jek­tan­tów z firmy Ad­o­be, wśród których przo­du­je Robert Slimbach. Żaden z tych kro­jów nie posiada obecnie pol­skich zna­ków, więc ich przydatność w naszych wa­run­kach jest znikoma.

Mało zna­nym, a bardzo cie­ka­wym roz­sze­rze­niem sy­ste­mu QuickDraw, od­po­wie­dzial­ne­go za wy­świet­la­nie ob­ra­zu na kom­pu­te­rach Ap­ple, jest QuickDraw GX. Jest to roz­sze­rze­nie za­ró­wno for­ma­tu TrueType jak i Type 1, do­stęp­ne je­dnak tyl­ko na kom­pu­te­rach Ap­ple Macintosh.

Kroje GX ma­ją moż­li­wo­ści po­dob­ne do kro­jów Mul­tip­le Master, a ponadto umoż­li­wia­ją do­stęp do wię­cej niż 256 zna­ków w foncie. Po­sia­da­ją też me­cha­niz­my obsługi li­ga­tur, zna­ków al­ter­na­ty­wnych i specjalnych. Te­chno­lo­gia ta nie zdo­by­ła je­dnak ni­gdy większej po­pu­lar­no­ści, szcze­gól­nie ze wzglę­du na bardzo za­wi­le na­pi­sa­ną specyfikację, a także z powodu do­stęp­no­ści tyl­ko na plat­for­mie Apple.

Można przy­pu­szczać, że roz­sze­rze­nia te stra­cą zu­peł­nie na waż­no­ści z momentem upo­wsze­chnie­nia for­ma­tu OpenType.

Hinting — le­wy sierpowy

Jeżeli nie­wiel­kich roz­mia­rów obiekt, np. li­te­rę, wy­kreś­li­my na urzą­dze­niu o niskiej rozdzielczości (np. ekran mo­ni­to­ra), to mo­że się okazać, że pod­czas ra­stro­wa­nia utra­co­ne zo­sta­ną li­czne szczegóły.

Rys. 4. Tekst zra­stro­wa­ny w róż­nych
rozdzielczościach
Rys. 4. Tekst zra­stro­wa­ny w róż­nych rozdzielczościach

Typowy przy­kład: je­że­li je­dna z nó­żek li­te­ry n ma 149 je­dno­stki sze­ro­ko­ści, zaś dru­ga 150, to po zrastrowaniu li­te­ry w roz­dziel­czo­ści ekra­nu mo­że się oka­zać, że w wyniku zao­krąg­la­nia je­dna z nó­żek ma 1 pik­sel grubości, zaś dru­ga 2 pik­se­le, co jest róż­ni­cą bar­dzo znaczącą. Je­szcze więk­sze pro­ble­my po­ja­wia­ją się przy rastrowaniu ele­men­tów ukoś­nych i łuków.

Aby tych pro­ble­mów unik­nąć, pro­du­cen­ci fon­tów sto­su­ją rozmaite te­chni­ki po­lep­sza­ją­ce czy­tel­ność tek­stów na ekranie. Do naj­po­pu­lar­niej­szych na­le­żą: hinting [8], wyg­ła­dza­nie kra­wę­dzi (ang. anti­-aliasing) [9], a także in­ne, np. wpro­wa­dzo­na nie­da­wno (w połowie li­sto­pa­da 1998) przez fir­mę Mic­ro­soft te­chno­lo­gia ClearType [10], któ­ra zna­cznie ulep­sza wyświetlanie tek­stu na ekra­nach ciekłokrystalicznych.

Rys. 5. Hin­ting i wyg­ła­dza­nie krawędzi
Rys. 5. Hin­ting i wyg­ła­dza­nie krawędzi

Pozornie zda­wać by się mog­ło, że te­chni­ki te nie są potrzebne, gdy fon­tu uży­wa się tyl­ko do tworzenia do­ku­men­tów papierowych (gdzie roz­dziel­czość jest wy­star­cza­ją­co wysoka). Pa­mię­tać je­dnak trze­ba, że w zasadzie każ­dy font jest oglą­da­ny na ekra­nie — choć­by przez ope­ra­to­ra w czasie przy­go­to­wy­wa­nia pub­li­ka­cji do druku.

Jak wi­dać na rysunku 5, wyg­ła­dza­nie krawędzi po­pra­wia czy­tel­ność tek­stu, jednakże du­żo więk­szy wpływ na dob­re pre­zen­to­wa­nie się pisma w niskich roz­dziel­czo­ściach ma hinting.

Rys. 6. Po­ło­że­nie pik­se­li po ra­ste­ry­za­cji z
hin­tin­giem i bez hintingu
Rys. 6. Po­ło­że­nie pik­se­li po ra­ste­ry­za­cji z hin­tin­giem i bez hintingu

Instrukcje hin­tu­ją­ce wy­ko­ny­wa­ne są przez rasteryzator, czy­li — jak już wie­my — pro­gram odpowiedzialny za ra­stro­wa­nie fon­tów TrueType lub Ty­pe 1 na ekra­nie lub in­nym urzą­dze­niu (np. ra­ste­ry­za­tor TrueType fir­my Microsoft, pro­gram Ad­o­be Ty­pe Manager czy FreeType [11]).

Program taki od­czy­tu­je za­pi­sa­ne w foncie wskazówki (ang. hints), i kierując się ni­mi zmie­nia po­ło­że­nie po­szcze­gól­nych kropek two­rzą­cych ob­raz li­te­ry, by zminimalizować nie­dok­ła­dno­ści rastrowania.

Pomiędzy te­chno­lo­gia­mi hin­tin­gu stosowanymi w fontach Type 1 i TrueType istnie­ją za­sa­dni­cze różnice.

Hinting w Ty­pe 1

Hinting w fontach Type 1 jest zbio­rem „słów­-wskazówek”, któ­re przy­pi­sy­wa­ne są poszczególnym pio­no­wym i poziomym ele­men­tom róż­nych liter. Roz­miar wszy­stkich ele­men­tów opatrzonych tym sa­mym „słowem” po­wi­nien być w przypadkach wąt­pli­wych zao­krąg­la­ny to tej sa­mej li­czby pikseli (por. hstemvstem na rys. 2). De­cyz­je o włączaniu i wyłączaniu po­je­dyn­czych pik­se­li podejmuje ra­ste­ry­za­tor (ATM), któ­ry — co za tym idzie — mu­si być wy­po­sa­żo­ny w dość skom­pli­ko­wa­ny sy­stem analityczny.

Taki ro­dzaj hin­to­wa­nia nie po­zwa­la pro­jek­tan­to­wi na dok­ła­dną kon­tro­lę za­cho­wa­nia fon­tu na ekranie, a także zna­cznie spo­wal­nia pro­ces wy­świet­la­nia na ekranie. Hin­ting Type 1 nie roz­wią­zu­je też pro­ble­mów z rastrowaniem ele­men­tów ukoś­nych i okrągłych. Wy­ma­ga je­dnak od pro­jek­tan­ta sto­sun­ko­wo nie­wiel­kie­go na­kła­du pracy.

Jak już wspo­mnia­łem wcześ­niej, na ja­kość per­cep­cji tekstu wy­świet­la­ne­go na ekra­nie po­zy­ty­wnie wpły­wa też wygładzanie kra­wę­dzi (anti­-alia­sing). Pro­gram Ad­o­be Ty­pe Manager od wersji 4.0 umoż­li­wia anti­-alia­sing na ekra­nie, je­dnak włą­cze­nie tej op­cji zna­cznie spo­wal­nia pro­ces wy­świet­la­nia tekstu.

Hinting w TrueType

W fontach TrueType moż­na przy po­mo­cy hintów kon­tro­lo­wać ze stu­pro­cen­to­wą dok­ła­dno­ścią każdy po­je­dyn­czy pik­sel po­ja­wia­ją­cy się na ekra­nie w każdej rozdzielczości. In­ny­mi sło­wy, hin­ting TrueType jest wy­ko­ny­wa­ny przez ra­ste­ry­za­tor dok­ła­dnie tak, jak to za­pla­no­wał pro­jek­tant fontu. Dzie­je się tak za spra­wą spe­cjal­nych instrukcji.

Instrukcje hin­tu­ją­ce są opi­sa­ne na dwóch po­zio­mach — ogól­nym i szczegółowym. Za­sa­da dzia­ła­nia hin­tów ogólnych jest nieco zbli­żo­na do hin­tów Type 1. Pro­jek­tant fon­tu usta­la za­leż­no­ści pomiędzy po­szcze­gól­ny­mi pun­kta­mi kon­trol­ny­mi: może np. ustalić, że środ­ko­wa nóż­ka litery „m” po­win­na za­wsze znaj­do­wać się dokładnie po­środ­ku nó­żek skrajnych. Ze­staw in­struk­cji hin­tu­ją­cych TrueType jest je­dnak zna­cznie bogatszy niż w przypadku Type 1. Istnie­ją spe­cjal­ne instrukcje hin­tu­ją­ce ele­men­ty ukoś­ne, przez co wi­do­cznie le­piej wyświetlane są true­ty­po­we kursywy.

Rys. 7. In­struk­cje hin­tu­ją­ce TrueType
Rys. 7. In­struk­cje hin­tu­ją­ce TrueType

Poziom szczegółowy hin­tin­gu jest to zestaw pro­gra­mów de­fi­nio­wa­nych osob­no dla każ­de­go stop­nia pisma w określonej roz­dziel­czo­ści, mierzonej w pikselach na fi­ret (ppm — pi­xel per em). Tzw. instrukcje delta po­zwa­la­ją włą­czać i wyłączać po­szcze­gól­ne pik­se­le. Dzię­ki te­mu moż­na osiąg­nąć efek­ty ta­kie, jakie po­ka­za­no na rys. 5 i 6.

Hintowanie TrueType wy­ma­ga zna­cznie więk­sze­go nakładu pra­cy ze stro­ny pro­jek­tan­ta — za to efek­ty są zna­cznie lep­sze niż w przypadku hin­tów Type 1. Te­chno­lo­gia hin­tin­gu sto­so­wa­na w fontach TrueType ma też tę za­le­tę, że nie wy­ma­ga od ra­ste­ry­za­to­ra żadnych do­dat­ko­wych ob­li­czeń, co znacznie przy­spie­sza pro­ces rastrowania.

Oznacza to, że tak dos­ko­na­łą czy­tel­ność li­ter na ekra­nie w małych stop­niach pis­ma, jaką osiąg­nię­to w przypadku do­stęp­nych bez­płat­nie, no­wych fon­tów fir­my Mic­ro­soft [12] (Verdana, Georgia, Trebuchet), osiąg­nąć moż­na tyl­ko sto­su­jąc TrueType. Trze­ba je­dnak pod­kreś­lić, że tak zna­ko­mi­te efek­ty zrealizować moż­na tyl­ko zna­cznym na­kła­dem finansowym, an­ga­żu­jąc pro­gra­mi­stę profesjonalnie zaj­mu­ją­ce­go się hintingiem; je­den z najlepszych fa­chow­ców tej bran­ży, Tom Ric­kner z firmy Mo­no­ty­pe, oce­nia [13], iż na ca­łym świe­cie ta­kich „hinterów” jest co naj­wy­żej kilkudziesięciu.

Podobnie jak Ad­o­be, ró­wnież Mic­ro­soft wpro­wa­dził do swo­je­go rasteryzatora wyg­ła­dza­nie kra­wę­dzi fon­tów. Anti­-aliasing od­by­wa się przy uży­ciu czte­rech (w Windows 95/98) lub siedemnastu (w Windows NT) od­cie­ni to­nal­nych, przy czym pro­jek­tant fon­tu TrueType mo­że (po­przez od­po­wie­dnie usta­wie­nia w tabeli fon­tu gasp) pre­cy­zyj­nie zde­fi­nio­wać, w których stop­niach pis­ma font ma być hin­to­wa­ny oraz wygładzany. Jest to o tyle istot­ne, że w wielu przy­pad­kach (szczególnie w bardzo ma­łych roz­mia­rach pis­ma, po­ni­żej 16 ppem) nie­ce­lo­we jest je­dno­czes­ne sto­so­wa­nie hin­tin­gu i wygładzania, gdyż mo­że to na­wet ujem­nie wpły­nąć na czy­tel­ność tekstu.

Kto wygrał?

Niewątpliwą prze­wa­gą for­ma­tu TrueType nad Type 1 jest uniwersalność te­go pier­wsze­go — na­da­je się on za­ró­wno do de­fi­ni­cji fontów „dużych” (za­wie­ra­ją­cych zna­ki ję­zy­ków az­ja­tyc­kich), jak i „małych” (za­wie­ra­ją­cych li­te­ry al­fa­be­tów europejskich).

Format TrueType jest tak­że w pełni ska­lo­wal­ny (roz­sze­rzal­ny), co ozna­cza, że no­wo opra­co­wa­ne fon­ty, za­wie­ra­ją­ce np. znaki Uni­co­de, dzia­ła­ją po­pra­wnie ró­wnież na sta­rych urządzeniach i systemach (w zakresie ja­ki do­pu­szcza „stary” ra­ste­ry­za­tor). Właś­nie z tego wzglę­du na struk­tu­rze pli­ków TrueType opar­to no­wy for­mat OpenType.

Format Type 1 ma je­dnak ró­wnież spo­ro nie­po­dwa­żal­nych za­let. Jego bu­do­wa jest przede wszy­stkim pro­sta i przejrzysta, co umoż­li­wia tworzenie du­żo mniej­szym na­kła­dem środ­ków za­ró­wno fon­tów w tym for­ma­cie, jak i narzędzi do ob­rób­ki tychże. Dzięki swej prostocie, łatwiejsza sta­je się kon­tro­la we­wnę­trznej struk­tu­ry fon­tu Type 1, łatwiej też moż­na usu­nąć ewen­tual­ne błędy. Ponadto spe­cy­fi­ka­cja for­ma­tu Type 1 na­pi­sa­na jest sta­ran­niej i przejrzyściej niż spe­cy­fi­ka­cja TrueType, któ­rą Bo­gu­sław Jac­kow­ski sko­men­to­wał [14] sło­wa­mi: „jest to naj­gor­sza, naj­bar­dziej męt­na do­ku­men­ta­cja ja­ką zda­rzy­ło mi się trzy­mać w rękach; w grę wcho­dzi je­dy­nie wzię­cie do­ku­men­ta­cji do rę­ki — o czytaniu mo­wy nie ma.”

Format krzy­wych, z których kon­struo­wa­ne są ob­wie­dnie zna­ków, zgodny jest z ogólnie przy­ję­tym stan­dar­dem, sto­so­wa­nym w języku PostScript i w wielu pro­gra­mach ilustracyjnych.

Co do hin­tin­gu, to twór­ca fon­tów Type 1 mo­że szybko osiągnąć przyz­woi­ty efekt, ale nic ponadto, z drugiej zaś strony przy­go­to­wu­jąc font TrueType moż­na stwo­rzyć dzieło wprost zna­ko­mi­te, je­dnak nie­pro­por­cjo­nal­nie większym na­kła­dem pracy.

OpenType

Najnowszym for­ma­tem fon­tów jest OpenType [15]. Ini­cja­ty­wa stwo­rze­nia go po­wsta­ła w 1996 roku, kie­dy Ad­o­be i Mic­ro­soft podpisały po­ro­zu­mie­nie o za­koń­cze­niu „wojny fontowej” i planach wpro­wa­dze­nia je­dne­go, wspól­ne­go formatu opi­su fon­tów, łą­czą­ce­go za­le­ty obydwu.

Format pli­ków OpenType jest roz­sze­rze­niem for­ma­tu TrueType, dzię­ki czemu fon­ty OpenType mo­gą być (w ograniczonym, rzecz jas­na, zakresie) sto­so­wa­ne w starszych sy­ste­mach operacyjnych.

Nowością w OpenType jest moż­li­wość za­stą­pie­nia true­ty­po­wej tabeli glyf ta­be­lą CFF, w której — po automatycznej kon­wer­sji do we­wnę­trzne­go for­ma­tu CFF/Type 2 — umie­szczo­ne mogą być post­scrip­to­we ob­ry­sy fon­tu Type 1. Dzię­ki te­mu zniknie ko­nie­czność two­rze­nia i przechowywania fon­tów w obydwu for­ma­tach oraz kon­wer­to­wa­nia mię­dzy nimi.

Dla za­cho­wa­nia kom­pa­ty­bil­no­ści w dół, pli­ki OpenType zawierające tyl­ko ob­ry­sy TrueType opa­trzo­ne są roz­sze­rze­niem .ttf, zaś pliki po­sia­da­ją­ce tyl­ko ob­ry­sy Type 1.otf. Wy­ko­na­nie pli­ków po­sia­da­ją­cych ob­ry­sy oby­dwu ty­pów jest co praw­da te­chni­cznie moż­li­we, je­dnak obie fir­my sta­now­czo to od­ra­dza­ją [16].

Podstawowym ze­sta­wem zna­ków sto­so­wa­nym w OpenType jest Unicode, co po­zwo­li za­koń­czyć trwa­ją­cy od wie­lu lat ba­ła­gan związany ze sto­so­wa­niem wie­lu stron kodowych. Na­tu­ral­nie two­rze­nie fon­tów OpenType z niestandardowymi wektorami ko­do­wa­nia na­dal bę­dzie możliwe.

Kolejną no­wo­ścią, ja­ką przy­no­si ze so­bą no­wy for­mat, są tzw. OpenType Layout features. Cho­dzi tu o zestaw pre­de­fi­nio­wa­nych fun­kcji, któ­rych wy­ko­na­nie będzie mógł fon­to­wi zle­cić pro­gram lub użytkownik. Wśród do­tych­czas za­re­je­stro­wa­nych po­nad stu fun­kcji znaj­du­ją się trzy róż­ne wa­rian­ty wsta­wia­nia ligatur, za­stę­po­wa­nie zwyk­łe­go ze­ra ze­rem kreślonym, wsta­wia­nie in­dek­sów gór­nych i dolnych, za­mia­na tek­stu na ka­pi­ta­li­ki lub cyfr zwyk­łych na nautyczne (ang. old sty­le figures), ko­rek­ta op­ty­cznych nawiasów w tekście na­pi­sa­nym wer­sa­li­ka­mi, róż­ne spo­so­by wyrównywania od­stę­pów mię­dzy­li­te­ro­wych itp.

Ligatury w OpenType
Rys. 8: Li­ga­tu­ry w OpenType

Jeżeli da­ny font bę­dzie po­sia­dał asortyment zna­ków po­zwa­la­ją­cy na wy­ko­na­nie odpowiedniej fun­kcji, pro­gram bę­dzie mógł ją uak­ty­wnić automatycznie lub na ży­cze­nie użyt­ko­wni­ka, po­dob­nie jak dziś włączane jest pod­kreś­le­nie czy wy­bie­ra­na kursywa. Wszy­stkie te fun­kcje (ozna­cza­ne czte­ro­li­te­ro­wy­mi akronimami, np. hlig) mo­gą być stosowane w zależności od kon­tek­stu — np. od al­fa­be­tu i języka, któ­ry­mi da­ny tekst jest napisany.

Dzięki te­mu bę­dzie moż­na, bez in­ge­ren­cji użytkownika, w dwu­ję­zy­cznym tek­ście zło­żo­nym je­dnym krojem, sto­so­wać po­pra­wne francuskie „o” z akcentem acute wraz z po­pra­wym ty­po­gra­fi­cznie polskim „o” z kreską (w którym akcent ma in­ny niż w języku fran­cus­kim kształt i położenie), po­mi­mo iż oby­dwa te zna­ki występują w zestawie Uni­co­de pod po­zy­cją 0x00F3 (ja­ko oacute).

Obsługa OpenType pla­no­wa­na jest w systemach operacyjnych MacOS 9 i Windows 2000 (NT 5.0), któ­re ma­ją ujrzeć światło dzien­ne pod ko­niec 1999 roku.

Może wów­czas skoń­czy się ten sparing?

Adam Twardoch
twardoch@font.org
maj 1999

Literatura

1.     Laurence Penney, A History of TrueType, http://www.truetype.demon.co.uk/tthist.htm 

2.     David K. Every, What is the history of TrueType, http://www.mackido.com/History/History_TT.html

3.     Thomas W. Phinney, TrueType & PostScript Type 1: What's the Difference?, http://www.truetype.demon.co.uk/articles/ttvst1.htm 

4.     Charles Bigelow, Times (New) Roman and its part in the Development of Scalable Font Technology, http://www.truetype.demon.co.uk/articles/times.htm 

5.     Adobe Systems, Inc., Adobe Type 1 Font Format, Addison-Wesley, 1990, ISBN 0-201-57044-0, http://partners.adobe.com/supportservice/devrelations/typeforum/ftypes.html 

6.     Adobe Systems, Inc., CID-Keyed Fonts, http://partners.adobe.com/supportservice/devrelations/typeforum/cidfonts.html 

7.     Erik van Blokland, Just van Rossum, FF Beowolf, http://www.letterror.com/LTR_Random.html 

8.     Microsoft Typography Group, TrueType specificaton v1.66, http://www.microsoft.com/typography/tt/tt.htm 

9.     Apple Computer, Inc., TrueType Reference Manual, http://fonts.apple.com/TTRefMan/

10.  Unicode Consortium, http://www.unicode.org/

11.  Microsoft Typography Group, Introduction to hinting, http://www.microsoft.com/typography/hinting/hinting.htm 

12.  Beat Stamm, The raster tragedy at low resolution, http://www.microsoft.com/typography/tools/trtalr.htm 

13.  Microsoft Typography Group, How does TrueType hinting differ from other outline font formats?, http://www.microsoft.com/typography/hinting/versus.htm 

14.  Laurence Penney, TrueType Hinting, http://www.truetype.demon.co.uk/tthints.htm 

15.  Laurence Penney, TrueType and Anti-Aliasing, http://www.truetype.demon.co.uk/ttalias.htm 

16.  Microsoft Typography Group, ClearType, http://www.microsoft.com/typography/cleartype/

17.  FreeType, http://www.freetype.org/

18.  Microsoft Typography Group, TrueType core fonts for the Web, http://www.eu.microsoft.com/typography/fontpack

19.  Tom Rickner, Get the Hint, http://www.will-harris.com/msfont-hint.htm 

20.  Bogusław Jackowski, Znaki na niebie, ziemi i gdzie indziej, referat wygłoszony na Jesiennych Spotkaniach PTI, Mrągowo, 16—20.11.1998

21.  Adobe Systems, Inc., Microsoft Corporation, OpenType Specification v1.2, http://www.eu.microsoft.com/typography/OTSPEC/

22.  Microsoft Typography Group, Developer Information, http://www.eu.microsoft.com/typography/creators.htm 

23.  Adobe Systems, Inc., The Adobe Type Technology Forum, http://partners.adobe.com/supportservice/devrelations/typeforum/

24.  Adobe Systems, Inc., Microsoft Corporation, Recommendations for OpenType Fonts, http://partners.adobe.com/supportservice/devrelations/OpenType/recom.htm