1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta name="keywords" lang="en" content="Polish TeX Users Group, Polish TeX, computer fonts" >
<LINK REL=STYLESHEET TYPE="text/css" HREF="./tpstyle.css">
<title> Fontowe ABC </title>
</head>
<body>
<h1> Fontowe ABC </h1>
<P>
Co jaki czas na licie dyskusyjnej GUST-u padaj gosy wiadczce
z jednej strony o duym zainteresowaniu sprawami fontowymi,
a z drugiej strony -- o czstym niezrozumieniu podstawowych
spraw zwizanych z fontami.
</P>
<!-- <p>Zainteresowanie fontami jest o tyle uzasadnione, e ostatnimi czasy
pojawia si na rynku coraz wicej fontw PostScript-owych, dajcych si
wykorzysta do skadania polskich tekstw – ot, choby fonty
dystrybuowane przez firm ThETA.</p> -->
<p>Te aspekty skoniy nas do podjcia prby spisania fontowego
elementarza dla tych dzielnych adeptw fontologii, ktrzy nie boj si
puapek, od ktrych niestety a si roi w wiecie fontw.
(Dodatkowe informacje na temat wykorzystania fontw w LaTeX2e mona
znale w dokumentacji <a href="nfss.html">Fonty
w LaTex2e</a>).</p>
<!-- Spis treci ....................................................... -->
<hr /> <a id="P0" name="P0"></a>
<ul>
<li><a href="#Fonty-TFM">Fonty „TeX-owe” czyli pliki TFM</a></li>
<li><a href="#Fonty-wlasciwe">Fonty „waciwe”</a></li>
<li><a href="#Fonty-CM">Fonty rodziny Computer Modern</a></li>
<li><a href="#Fonty-bitmapowe">Fonty bitmapowe</a></li>
<li><a href="#Fonty-PS">Fonty PostScript-owe czyli pliki AFM oraz PFB
(lub PFA)</a></li>
<li><a href="#Znaki">Reprezentacja znakw</a></li>
<li><a href="#Nazwy-kody">Nazwy i kody znakw</a></li>
<li><a href="#AFMTFM">Konwersja AFM -> TFM</a></li>
<li><a href="#AFMTFMp">Konwersja AFM -> TFM – poprawno nazw
znakw</a></li>
<li><a href="#AFMTFMk">Konwersja AFM -> TFM – kerny
i ligatury</a></li>
<li><a href="#Pliki-cnf">Pliki konfiguracyjne sterownika
<code>DVIPS</code></a></li>
<li><a href="#Latanie">atanie fontw – niepoprawny font</a></li>
<li><a href="#BrakAFM">atanie fontw – brak plikw AFM</a></li>
<li><a href="#Podsumowanie">Podsumowanie</a></li>
</ul>
<hr />
<!-- ................................................................. -->
<a id="Fonty-TFM" name="Fonty-TFM"></a>
<h2><a id="Fonty-TFM" name="Fonty-TFM">Fonty „TeX-owe” czyli pliki
TFM</a></h2>
<p>TeX-owi jest absolutnie obojtne, jakich fontw uywamy: czy to s
mapy bitowe, fonty PostScript-owe w formacie Type 1, czy te
moe egzotyczne fonty „wasnego chowu” – nie ma to znaczenia.
Jedyne, czego potrzebuje TeX, to informacja metryczna, czyli pliki
<code>TFM</code> (TeX Font Metric). Pliki metryczne, jak sama nazwa
wskazuje, zawieraj w pierwszym rzdzie informacj
o rozmiarach znakw, ale take informacj o wielkoci kernw
(podci) dla par znakw, informacj o wielkoci korekty kursywy
(<em>italic correction</em> dla poszczeglnych znakw oraz – cho
trudno to zakwalifikowa jako informacj metryczn – informacj
o ligaturach, tzn. informacj, ktre pary znakw maj by
zastpowane automatycznie innym znakiem, np. dwa umieszczone obok
siebie znaki <code>--</code> zamienione zostan przez TeX-a przez
pojedynczy znak „–” zwany pauz pfiretow (<em>endash</em>).</p>
<p>Krtko mwic eby w ogle „prze-TeX-owa” dokument potrzebne
s pliki <code>TFM</code>.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Fonty-wlasciwe" name="Fonty-wlasciwe"></a>
<h2><a id="Fonty-wlasciwe" name="Fonty-wlasciwe">Fonty
„waciwe”</a></h2>
<p>Dopiero sterowniki zamieniajc zoone dokumenty, czyli pliki
<code>DVI</code>, na posta widoczn ju to na papierze, ju to na
ekranie, ju to na jakim innym noniku potrzebuj tych „waciwych
fontw”.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Fonty-CM" name="Fonty-CM"></a>
<h2><a id="Fonty-CM" name="Fonty-CM">Fonty rodziny Computer
Modern</a></h2>
<p>Zgodnie z konwencj przyjt przez Donalda E. Knutha nazwy
fontw rodziny Computer Modern zawieraj formalny rozmiar fontu
w punktach, np. <code>cmr10</code> (font 10-punktowy),
<code>cmbx7</code> (font 7-punktowy), itp. Naley tu podkreli, e
font <code>cmr12</code> nie jest rwnowany fontowi zdefiniowanemu jako
<code>cmr10</code> <code>at</code> <code>12pt</code> –
chocia oba fonty maj wielko 12 punktw, to jednak proporcje
znakw w obu fontach s inne. T sam cech dziedzicz oczywicie
fonty wywodzce si z rodziny Computer Modern (Computer Concrete,
<code>EC</code>, <code>PL</code>), a take fonty rodziny
<code>Euler</code>, fonty cyryliczne, i inne fonty tworzone
w duchu konwencji rodziny Computer Modern.</p>
<p>Zmiany proporcji wraz ze zmian stopnia pisma s jak najbardziej
uzasadnione, mae fonty powinny dla lepszej czytelnoci mie nieco
wiksze i szersze oczka minusku w stosunku do majusku.
Niemniej jednak wydaje si, e Donald E. Knuth nieco
przesadzi z liczb odmian fontw zmieniajc co jeden punkt
proporcje znakw.</p>
<p>W praktyce wystarczyyby nie wicej ni cztery zakresy:
pierwszy dla fontw mniejszych ni 8-punktowe, drugi dla fontw od
8 do 12 punktw, trzeci dla fontw od 12 do –
powiedzmy – 24 punktw i wreszcie czwarty dla fontw
tzw. nagwkowych. Ostatni z wymienionych zakresw nie
pojawia si w fontach
<code>Computer</code> <code>Modern</code>. Font calowy
<code>cminch</code>, przeznaczony do nagwkw, jest w istocie
przeskalowanym proporcjonalnie fontem <code>cmssbx10</code>. Innymi
sowy dokadnie ten sam efekt uzyskaoby si za pomoc instrukcji
<code>\font</code> <code>\f</code>
<code>cminch</code> <code>\f</code> i za pomoc instrukcji
<code>\font</code> <code>\f</code>
<code>cmssbx10</code> <code>at</code> <code>1.44in</code> <code>
\f</code>. Jedyna rnica polega na tym, e font <code>cminch</code>
jest nieco „oszczdniejszy” – zawiera tylko due litery
i cyfry.</p>
<p>Sporo zamieszania wywoay take <code>plain</code>-owe instrukcje
<code>\magstephalf</code> i <code>\magstep</code> sugerujce, e
jedyne „legalne” powikszenia fontw to 109,5%, 120%, 144%, 172,8%,
207,4% lub co najwyej 248,8% (p. <em>The TeX book</em>,
str. 17). Mimo i nie jest to nigdzie <em>expressis verbis</em>
powiedziane, to jednak sporo nieporozumie naroso na tym tle. Trudno
si temu dziwi, skoro prawie wszystkie pakiety zawierajce fonty
TeX-owe w postaci map bitowych (p. niej) stosoway si do
tej reguy, tzn. mapy bitowe generowane byy tylko dla
wymienionych wyej powiksze. Chcc w dokumentach TeX-owych
w sposb jednolity korzysta z fontw tradycyjnych, czyli
bitmapowych, i z fontw PostScript-owych, nie naley
przejmowa si zanadto rozpowszechnionym obyczajem majcym swe korzenie
w czasach, gdy komputery byy wolniejsze i wygenerowanie
fontu „od rki” byo zbyt kosztowne. Rzadko uywana instrukcja
postaci</p>
<pre>
\font... at ...
</pre>
<p>jest w tym kontekcie godna polecenia.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Fonty-bitmapowe" name="Fonty-bitmapowe"></a>
<h2><a id="Fonty-bitmapowe" name="Fonty-bitmapowe">Fonty
bitmapowe</a></h2>
<p>W tradycyjnej konfiguracji systemu TeX podstawowymi fontami s
mapy bitowe (pliki <code>GF</code> – <em>generic font</em>) generowane
przez program METAFONT. Najczciej uywanym formatem jest jednak nie
format <code>GF</code>, a nieco oszczdniejszy
format <code>PK</code> (<em>packed</em>). Do zamiany suy program
<code>GFTOPK</code>, z reguy wywoywany automatycznie
w procesie generowania fontw.</p>
<p>Fonty bitmapowe generowane s dla <em>konkretnej wielkoci pisma
i konkretnego urzdzenia</em>, tzn. zawieraj pewne
informacje pozwalajce na danym urzdzeniu – ekranie czy drukarce –
uzyska optymalny wygld znakw. Std np. odrbne fonty dla
drukarek laserowych i drukarek atramentowych o tej samej
rozdzielczoci 300dpi.</p>
<p>TeX – jak ju wspomnielimy – pozwala skalowa cao dokumentu
lub poszczeglne fonty:</p>
<pre>
\magnification2000
\font\A plr10 scaled \magstep3
\font\B plr10 at 28.5pt
</pre>
<p>gdzie <code>plr10</code> oznacza nazw fizycznie posiadanego na
dysku pliku <code>plr10.tfm</code>. TeX przeskaluje font
<code>plr10</code> tak, jak sobie tego yczymy, a cilej –
przeskaluje informacj metryczn zwizan z fontem. eby mc
zobaczy, jak wygldaj znaki przeskalowanego fontu, naley skorzysta
z METAFONT-a, ktry oczywicie potrafi generowa fonty dowolnie
przeskalowane.</p>
<p>Fonty <code>PK</code> zwykle przechowywane s w katalogach
o nazwach zawierajcych liczb wynikajc z przemnoonenia
rozdzielczoci przez przeskalowanie, np. fonty
o rozdzielczoci 300dpi ( <em>dots per inch</em>) powikszone
o 20% (<code>\magstep1</code>) znajd si w katalogu
o nazwie <code>360dpi</code>, <code>dpi360</code> lub jakim
innym, podobnie nazwanym. Jeli system operacyjny zezwala na nadawanie
plikom dugich nazw, to przeskalowanie moe by wpisane w nazw
pliku, np. <code>.../fonts/pk/laserjet/pl/plr10.360pk</code>.</p>
<p>Standardowe sterowniki przetwarzajce pliki <code>DVI</code> czy to
na posta wywietlan na ekranie, czy te drukowan, uywaj fontw
<code>PK</code> i posiadaj mechanizm przeszukiwania odpowiedniej
struktury katalogw lub interpretacji nazw fontw przeskalowanych.
Sterowniki te pozwalaj zwykle na bardzo szybkie wywietlenie
skadanego tekstu. Wspczesne sterowniki posiadaj take moliwo
wsppracy z METAFONT-em – potrafi przekaza informacj
o brakujcych fontach i uruchomi METAFONT-a, wstrzymujc
prac do czasu zakoczenia procesu generowania brakujcych fontw.
Dziki temu nie ma obecnie potrzeby trzymania na dysku olbrzymich
bibliotek fontw w formacie <code>PK</code>, wystarcz pliki
rdowe fontw i odpowiednio skonfigurowane cze
sterownik-METAFONT (program lub skrypt) by zautomatyzowa proces
generowania fontw. Dla bardzo rozpowszechnionych sterownikw
z pakietu <code>emTeX</code> bdzie to program <code>MFjob</code>
(<code>MS-DOS</code>, <code>OS/2</code>), za dla systemw opartych na
<code>web2c</code> – skrypt <code>mktexpk</code> (rne wersje
<code>Unix</code>, <code>Windows</code> i <code>Amiga</code>).</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Fonty-PS" name="Fonty-PS"></a>
<h2>Fonty PostScript-owe czyli pliki AFM oraz PFB (lub PFA)</h2>
<p>Jeeli chodzi o PostScript, to ten „waciwy font” – mowa tu
o fontach zapisanych w formacie Adobe Type 1 – zawarty
jest w pliku z rozszerzeniem <code>.pfb</code>
(<em>PostScript Font Binary</em>) lub <code>.pfa</code> (
<em>PostScript Font ASCII</em>). Natomiast o plikach
<code>TFM</code> w wiecie PostScript-owym mao kto sysza. Na
szczcie dobrzy ludzie z firmy Adobe wymylili co podobnego do
tego, co wymyli Donald E. Knuth, mianowicie pliki metryczne AFM
(<em>Adobe Font Metric</em>). Rni si one troch od plikw
<code>TFM</code> (np. pliki <code>AFM</code> s plikami
tekstowymi), ale mimo rnic jest moliwe by na podstawie pliku
<code>AFM</code> utworzy plik <code>TFM</code>.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Znaki" name="Znaki"></a>
<h2>Reprezentacja znakw</h2>
<p>Zanim pjdziemy dalej trzeba wyjani jedn rzecz, mianowicie
w jaki sposb s reprezentowane znaki. Jeeli chodzi o plik
<code>DVI</code> to odpowied jest trywialna: jako liczby
z zakresu <code>0</code>--<code>255</code>. Przy tworzeniu pliku
PostScript-owego za pomoc sterownika sytuacja <em>nie ulega</em>
zmianie, to znaczy w pliku PostScript-owym znaki te s
reprezentowane w zasadzie jako liczby z zakresu
<code>0</code>--<code>255</code>, czasem w reprezentacji ASCII,
a czasem w reprezentacji semkowej. Natomiast we „waciwym
foncie” PostScript-owym, podobnie zreszt jak w foncie
METAFONT-owym, jest inaczej: znaki s zasadniczo reprezentowane za
pomoc nazw w rodzaju „period”, „periodcentered”, „lslash”,
„aogonek”, itp.</p>
<p>Formalnie rzecz biorc font PostScript-owy jest programem,
a nazwy znakw s nazwami podprogramw opisujcych ksztat znakw
za pomoc – znw podobnie jak w programach METAFONT-owych –
krzywych trzeciego stopnia, zwanych krzywymi Bziera. Dodatkowo
podprogramy te opisuj niektre szczegy procesu zamiany obwiedni na
mapy bitowe (tzw. <em>hinty</em> czyli podpowiedzi), bo przecie
ostatecznie znak zostanie wywietlony na ekranie, wydrukowany na
drukarce lub nawietlony na diapozytywie, czyli musi zosta zamieniony
na posta dyskretn.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Nazwy-i-kody" name="Nazwy-i-kody"></a>
<h2>Nazwy i kody znakw</h2>
<p>Skd zatem PostScript trafiajc na jak liczb „wie”, e ma uy
procedury o nazwie, powiedzmy, „aogonek”?</p>
<p>Aaa, wanie! Tu jest pies pogrzebany. We „waciwym foncie”
PostScript-owym jest zawarta dodatkowa informacja, mianowicie tabela
par (liczba, nazwa) przyporzdkowujca liczbom z zakresu
<code>0</code>--<code>255</code> nazwy podprogramw opisujcych znaki.
Tablica ta (czasem zwana wektorem) nosi nazw „Encoding”, co jest
moe mao istotne, natomiast istotne jest to, e tablic t mona
„w locie” zmieni. Z tej moliwoci korzysta m.in.
sterownik <code>DVIPS</code> (p. niej).</p>
<!-- ............................................................... -->
<a id="AFMTFM" name="AFMTFM"></a>
<h2>Konwersja AFM -> TFM</h2>
<p>W pliku AFM znajduje si rwnie informacja
o przyporzdkowaniu liczba-nazwa, (w zasadzie mona zakada,
e jest to to samo przyporzdkowanie, co w pliku
<code>PFB</code>/<code>PFA</code>). Na og nie jest to
przyporzdkowanie, o ktre by nam chodzio. Ale nie ma biedy –
<code>DVIPS</code>-owi mona poda <em>dowolne</em> przyporzdkowanie,
ktre zostanie uyte w tworzonym przeze pliku
PostScript-owym.</p>
<p>Konwertery <code>AFM->TFM</code> na podstawie nazw generuj
stosowne przyporzdkowanie, lub nawet wiele przyporzdkowa, a dla
kadego z takich przyporzdkowa tworzony jest odpowiadajcy mu
plik <code>TFM</code>.</p>
<p>Najpowszechniej uywanym konwerterem jest program
<code>AFM2TFM</code>, nalecy do standardowej dystrybucji sterownika
<code>DVIPS</code>. Konwerter o nazwie <a
href="ftp://ftp.gust.org.pl/TeX/fonts/utilities/t1install/toil/">TOIL</a>,
bazuje na programach <code>AWK</code> oraz METAFONT Warto te wspomnie
o pakiecie <code>VFINST</code>, oferujcym liczne moliwoci,
bazujcym na fontach wirtualnych.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="AFMTFMp" name="AFMTFMp"></a>
<h2>Konwersja AFM -> TFM – poprawno nazw znakw</h2>
<p>Aby konwertery <code>AFM->TFM</code> mogy dziaa jak naley,
nazwy podprogramw musz by zgodne z ich treci. Tak niestety
nie zawsze jest, np. pod nazw „Sterling” zamiast opisu znaku
funta mona znale opis polskiego „” czyli „Lslash”. Pomysw na
cudaczne nazewnictwo jest mniej wicej tyle, ile tzw. standardw
kodowania znakw, czyli <em>infinity</em>.</p>
<p>Z niepoprawnymi nazwami mona sobie poradzi. Co nam zaley,
przecie „onesuperior” brzmi rwnie adnie jak „aogonek”,
nieprawda? Problem jedynie w tym, e z gry nie wiadomo, e
producent uzna „onesuperior” za odpowiedni nazw dla polskiej
litery „”.
Jaki
szaleniec moe si pogodzi z propozycj Adobe i uy dla
podprogramu opisujcego „” nazwy „aogonek”…</p>
<p>Jakby nie do byo problemw, oprcz nazewnictwa ewidentnie
niepoprawnego moemy si zetkn z obocznoci! Ot niektrzy
producenci dla okrelenia znakw „” i „” uywaj nazw
„zdot” i „Zdot”, a niektrzy „zdotaccent”
i „Zdotaccent”. Nie znalazem jednoznacznego stanowiska firmy
Adobe w tej sprawie, ale na og obowizuje zasada „sklejania”
nazw: „a” + „grave” = „agrave”; skoro wic istnieje znak
„dotaccent” (nazwa uywana przez Adobe), to „” naley rozumie
jako „z” + „dotaccent” czyli „zdotaccent”. Innymi sowy zaleca
by naleao uywanie nazw „zdotaccent” i „Zdotaccent”, ale by
moe konwertery <code>AFM->TFM</code> powinny by uwraliwione na t
oboczno.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="AFMTFMk" name="AFMTFMk"></a>
<h2>Konwersja AFM -> TFM – kerny i ligatury</h2>
<p>Plik <code>TFM</code> zawiera jeszcze informacj o parach
kernowych i ligaturach. Pary kernowe, uwzgldniane „jak leci”
przez wikszo konwerterw <code>AFM->TFM</code>, na og s
umieszczane jak naley w plikach <code>AFM</code>, chocia czasami
mona trafi na felerne pliki <code>AFM</code> bez par kernowych.
Obecno par kernowych poznajemy to po wystpowaniu wierszy
zaczynajcych si od sowa kluczowego „KPX”. Warto mie na uwadze, e
bywaj pliki <code>AFM</code> posiadajce tylko cz par kernowych –
np. znaki diakrytyczne czasami nie s uwzgldniane – dobrze jest
sprawdzi plik <code>AFM</code> pod tym ktem.</p>
<p>Z ligaturami jest znacznie gorzej – mona je bardzo rzadko
uwiadczy, mimo i teoretycznie format <code>AFM</code> pozwala na
definiowanie ligatur, np. poniszy przykadowy wiersz pliku
<code>AFM</code>:</p>
<pre>
C 45; WX 329; N hyphen; B 17 188 313 303; L hyphen endash;
</pre>
<p>zgodnie ze specyfikacj Adobe ustala, e znak o kodzie
<code>45</code> ma szeroko <code>329</code> jednostek (jednostka =
1/1000em), nosi nazw „hyphen”, e naroa prostokta ograniczajcego
obrys znaku maj wsprzdne wynoszce w tych samych jednostkach
(17, 188) oraz (313, 303), i wreszcie e dwa znaki „hyphen” maj
by zamieniane na znak o nazwie „endash”, czyli innymi sowy
znak o nazwie „endash” jest ligatur dwch znakw o nazwie
„hyphen”.</p>
<p>W zwizku z powszechnym brakiem informacji
o ligaturach w plikach <code>AFM</code>, konwertery
<code>AFM->TFM</code> musz albo si domyli, jakie by tu ligatury
mona wstawi, albo – co chyba jest lepszym rozwizaniem – zosta
poinformowane o prawidowych dla danego fontu (grupy fontw)
ligaturach.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Pliki-cnf" name="Pliki-cnf"></a>
<h2>Pliki konfiguracyjne sterownika <code>DVIPS</code></h2>
<p>Popularny sterownik <code>DVIPS</code>, autorstwa Tomasa Rokickiego,
zamieniajcy pliki <code>DVI</code> na pliki PostScript-owe musi
wiedzie – podobnie jak kady sterownik – gdzie znajduj si fonty
TeX-owe i PostScript-owe. Informacj t zawieraj pliki
<code>config.ps</code> i <code>psfonts.map</code>, poszukiwane
w kartotekach wskazywanych przez zmienn systemow
<code>TEXCONFIG</code> (we wspczesnych instalacjach zmienna ta jest
ju zwykle zadeklarowana w pliku konfiguracyjnym
<code>texmf.cnf</code>).</p>
<p>Plik <code>config.ps</code> zawiera informacje o parametrach
pracy programu.
<!-- plikw <code>TFM</code>, plikw <code>PK</code>, fontw wirtualnych,
oraz fontw PostScript-owych. -->
Natomiast plik <code>psfonts.map</code> zawiera informacje zwizane
wycznie z dostpnymi w danej instalacji fontami
PostScript-owymi. W pliku <code>psfonts.map</code> informacje
o poszczeglnych fontach umieszczane s w jednym wierszu (co
czasem moe by kopotliwe). Typowy wiersz wyglda nastpujco:</p>
<pre>
ec-qplr TeXGyrePagella-Regular "encqec ReEncodeFont" <q-ec.enc <qplr.pfb
</pre>
<p>Pierwsza pozycja okrela nazw TeX-ow fontu, druga – wewntrzn
nazw PostScript-ow fontu (robi z niej uytek interpreter
PostScript-u), nastpnie pojawia si informacja o dodatkowych
zabiegach, jakim ma by poddany font (moe to by poziome
przeskalowanie fontu, pochylenie lub zmiana kodowania – w podanym
przykadzie chodzi o zmian kodowania), a na kocu pojawiaj
si nazwy plikw, ktre maj zosta doczone do pliku wynikowego –
w tym wypadku jest to plik kodowania <code>q-ec.enc</code> oraz
font <code>qplr.pfb</code>.</p>
<p>Podanie nazwy pliku fontowego nie jest konieczne – w takim
wypadku <code>DVIPS</code> zaoy, e chodzi o font wbudowany
w urzdzenie. Gorco odradzamy korzystanie z tej moliwoci
– opakane skutki korzystania z fontw wbudowanych mona co jaki
czas oglda w materiaach nawet renomowanych firm: a to
zamiast polskich znakw wystpuj „krzaczki”, a to litery
zachodz na siebie, a to skad si zupenie rozjeda…</p>
<p>Plik kodowania zawiera tablic 256 nazw znakw, okrelajc omawiane
wyej przyporzdkowanie kod-nazwa. Jest to w istocie fragment kodu
PostScript-owego postaci:</p>
<pre>
/encqec[
/grave
/acute
/circumflex
...
/thorn
/germandbls
] def
</pre>
<p>O tym, jaki kod otrzymuje dany znak, decyduje kolejno
wystpienia: w tym przypadku na pozycji zerowej (w jzyku
PostScript liczenie zawsze odbywa si od zera) wystpuje znak
o nazwie <code>grave</code> (znak „ciach” <code>/</code>
w notacji PostScript-owej oznacza mniej wicej to samo co znak
„w-ty-ciach” <code>\</code> w notacji TeX-owej),znak
<code>acute</code> otrzymuje kod 1, znak <code>circumflex</code> –
kod 2, …, znak <code>thorn</code> – kod 254,
i wreszcie znak <code>germandbls</code> – kod 255.
Wystpienie <code>.notdef</code> oznacza, e
w foncie nie ma znaku na pozycji o danym kodzie.</p>
<p>Warto mie wiadomo, e <code>DVIPS</code> wcza wszelkie pliki
prawie ich nie analizujc, jedyny zabieg przeze wykonywany to zamiana
postaci binarnej fontu Type 1 (<code>PFB</code>) na posta ASCII
(<code>PFA</code>). Jeeli font jest ju w postaci ASCII, to
wczany jest do dokumentu „jak leci”, bez adnej ingerencji ze
strony sterownika. Oznacza to, e uywajc <code>DVIPS</code>-a moemy
korzysta ze wszystkich moliwych fontw PostScript-owych, nie tylko
najbardziej popularnych fontw Type 1, ale w szczeglnoci
take fontw TrueType, ktre dla interpretera PostScript-u s po prostu
fontami Type 42 – wystarczy mie plik <code>TFM</code>
i font Type 42 w postaci ASCII.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Latanie" name="Latanie"></a>
<h2>atanie fontw – niepoprawny font</h2>
<p>Uywajc rnych wymylnych narzdzi (np. <a
href="ftp://ftp.gust.org.pl/TeX/fonts/utilities/t1utils/">T1UTIL</a>
Lee Hetheringtona) mona si zorientowa, jakim znakom zostay
przypisane jakie nazwy i w razie czego je poprawi, mona te
uzupenia kerny, itp., ale to jest mudne i przykre, bo
niepotrzebne zajcie.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="BrakAFM" name="BrakAFM"></a>
<h2>atanie fontw – brak plikw AFM</h2>
<p>Czasem fonty PostScript-owe s dystrubuowane z plikami
<code>PFM</code> (<em>Printer Font Metric</em>) zamiast z plikami
AFM.</p>
<p>Brak plikw <code>AFM</code> <em>praktycznie przekrela</em>
moliwo uycia fontu PostScript-owego w TeX-u, bowiem pliki
<code>PFM</code> zawieraj znacznie ubosz informacj ni pliki AFM,
w szczeglnoci <em>nie zawieraj</em> nazw znakw, czyli nie
okrelaj adnej tablicy kodowania ( <em>encoding vector</em>,
p. wyej). Mona zakada, e chodzi o takie samo
przyporzdkowanie, jakie jest wpisane w pliku
<code>PFB</code>/<code>PFA</code>, chocia w oglnoci tak by nie
musi. Ponadto w pliku <code>PFM</code> znajduj si dane na temat
par kernowych jedynie dla co najwyej 256 znakw, a font
PostScript-owy moe ich zawiera nacznie wicej.</p>
<p>Jeli jednak szczcie nam dopisze, to z plikw
<code>PFM</code> oraz <code>PFB</code> (bd <code>PFA</code>) moemy
odtworzy informacj niezbdn do utworzenia pliku <code>AFM</code> –
mona sprbowa uy pakietu <a
href="ftp://ftp.gust.org.pl/pub/GUST/contrib/fonts/tools/pf2afm.zip">
pf2afm</a>, ktry dostpny jest w archiwum GUST-u.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
<!-- ................................................................. -->
<a id="Podsumowanie" name="Podsumowanie"></a>
<h2>Podsumowanie</h2>
<p>Warto pamita, e font nie tylko musi adnie w druku wyglda,
ale i jego do skomplikowana „wewntrzna” struktura musi by
zrobiona porzdnie.</p>
<p>Jednym z najbardziej dajcych si we znaki problemw jest
problem ukadu znakw w foncie. Staranne przemylenie tego
problemu <em>musi</em> prowadzi do wniosku, e firma Adobe ju dawno
temu znalaza <em>wystarczajce</em> w wikszoci przypadkw
rozwizanie problemu konfigurowalnoci ukadu znakw w foncie. To
bardzo mocny argument na rzecz korzystania z fontw
PostScript-owych w formacie Type 1.</p>
<p>Wprawdzie detale zwizane z instalowaniem fontw mog si
wydawa skomplikowane, ale taka jest natura rzeczy. A do czego
prowadzi prba ukrycia tej natury przed uytkownikiem, wielu z nas
bolenie odczuo w przypadku korzystania fontw TrueType
w systemie Windows. Wprawdzie instaluje si je bardzo prosto (albo
i – nie wiedzie czemu – nie instaluje), ale praktycznie nie ma
<em>adnej</em> moliwoci rekonfiguracji. Kto, kto przenosi fonty
TrueType z jednej wersji systemu Windows do innej, wie o czym
mowa – a to font si w ogle nie daje zainstalowa,
a to inne znaki si pojawiaj, ni bymy chcieli, a to nasza
ulubiona aplikacja albo tego fontu nie widzi, albo si na nim
wywraca…</p>
<p>Majc to na wzgldzie uwaamy, e warto powici nieco czasu
i wysiku na zrozumienie podstaw konfigurowania fontw, zwaszcza
fontw PostScript-owych w formacie Adobe Type 1 – to
naprawd w pewnym momencie staje si proste, a tym samym
oczywicie niezwykle uyteczne.</p>
<P><A HREF=#P0><IMG ALIGN="BOTTOM" SRC="back.gif"> Spis treci</A></P>
Bogusaw Jackowski i Staszek Wawrykiewicz
<p><i>Powyszy tekst jest zmodyfikowan wersj artykuu
z Biuletynu GUST, nr 8/1997, s. 7–12.</i><br />
<i>Ostatnie zmiany 5.05.2014</i></p>
</P>
</body>
</html>
|