Co to jest font?
Transkrypt
Co to jest font?
METATYPE1 oprogramowanie do tworzenia fontów postscriptowych w formacie Type 1 wykorzystujące METAPOST (a także AWK, T1utils, perl) Bogusław Jackowski Janusz M. Nowacki Piotr Strzelczyk n v h z i p x t y f l k d g o e bms a u q r c j w • BachoTEX 2001 [. . .] chciałbym zrobić profesjonalne czcionki, mam troszkę pomysłów i pewnie niedługo będę je miał przeskanowane. Niestety nie wiem co dalej z tym zrobić. Nie wiem w jakiej rozdzielczości powinny być robione, na co zwracać uwagę. Nie znalazłem nigdzie żadnego opisu METAPostu po polsku. Chciałbym aby były na tyle dobre, aby dało się ich używać do plotera. Proszę o pomoc. Proszę też o pomoc w kodowaniu, nie wiem jak koduje się ligatury, majuskuły itp. Font jest tylko w jednej wersji (na razie), nie ma pochyłych i części znaków np. (c), TM, stopnie minuty itp. (fragment listu do Drużyny JNS) n v t z i p x h y f l k d g o e bms a u q r c j w • BachoTEX 2001 Co to jest font? • informacja o kształtach znaków: mapy bitowe albo obwiednie • informacja metryczna: rozmiary znaków, korekta kursywy, podcięcia, odstępy międzyznakowe (tracking), międzywyrazowe i międzywierszowe, kąt pochylenia znaków, rozmiary charakterystyczne (firet vel quad). . . • informacja o kodowaniu (kodowaniach) • informacja o ligaturach oraz inne informacje o grupach znaków, np. w TEX-u informacja dotycząca łańcuchów znaków (charlist) i znaków złożonych (extensible) n v t z i p x h y f l g d k o e bms a u q r c j w • BachoTEX 2001 Co to jest font? • informacja o kształtach znaków: mapy bitowe albo obwiednie • informacja metryczna: rozmiary znaków, korekta kursywy, podcięcia, odstępy międzyznakowe (tracking), międzywyrazowe i międzywierszowe, kąt pochylenia znaków, rozmiary charakterystyczne (firet vel quad). . . • informacja o kodowaniu (kodowaniach) • informacja o ligaturach oraz inne informacje o grupach znaków, np. w TEX-u informacja dotycząca łańcuchów znaków (charlist) i znaków złożonych (extensible) n v t z i e x h y f l g d k o p bms a u q r c j w • BachoTEX 2001 Co to jest font? • informacja o kształtach znaków: mapy bitowe albo obwiednie • informacja metryczna: rozmiary znaków, korekta kursywy, podcięcia, odstępy międzyznakowe (tracking), międzywyrazowe i międzywierszowe, kąt pochylenia znaków, rozmiary charakterystyczne (firet vel quad). . . • informacja o kodowaniu (kodowaniach) • informacja o ligaturach oraz inne informacje o grupach znaków, np. w TEX-u informacja dotycząca łańcuchów znaków (charlist) i znaków złożonych (extensible) n v t z y e x h i f l g d k o p bms a u q r c j w • BachoTEX 2001 Co to jest font? • informacja o kształtach znaków: mapy bitowe albo obwiednie • informacja metryczna: rozmiary znaków, korekta kursywy, podcięcia, odstępy międzyznakowe (tracking), międzywyrazowe i międzywierszowe, kąt pochylenia znaków, rozmiary charakterystyczne (firet vel quad). . . • informacja o kodowaniu (kodowaniach) • informacja o ligaturach oraz inne informacje o grupach znaków, np. w TEX-u informacja dotycząca łańcuchów znaków (charlist) i znaków złożonych (extensible) n v x z y e t h i f l g d k o p bms a u q r c j w • BachoTEX 2001 To jest font! n v x z y e a h i f l g d k o p bms t u q r c j w • BachoTEX 2001 To jest font! A to jest METAFONT! n v x z y e a h i j l g d k o p bms t u q r c f w • BachoTEX 2001 To jest font! . . . albo METAPOST! n v x d y e a h i j l g z k o p bms t u q r c f w • BachoTEX 2001 Rodzaje fontów • Bitmapowe TEX: TFM+GF, TFM+PK Windows: FON • Obwiedniowe TEX: MF, AFM+PFB* lub AFM+PFA* Windows: PFM+PFB, TTF** * Font postscriptowy Type 1 ** Font windowsowy TrueType n v x d e y a h i j l g z k o p bms t u q r c f w • BachoTEX 2001 Co to jest font postscriptowy? w formacie Type 1? n v x d e y g h i j l a z k o p bms t u q r c f w • BachoTEX 2001 Co to jest font postscriptowy? w formacie Type 1? n v x d e y g h i j l a z k o p bw s t u q r c f m • BachoTEX 2001 Co to jest font postscriptowy? w formacie Type 1? • Plik metryczny: AFM (tekstowy; podstawowy format) bądź PFM (binarny; zawierający uboższą informację niż plik AFM; używany w systemie Windows) • Plik PFB (binarny) lub PFA (ASCII) zawierający programy opisujące kształty znaków, informację o szczegółach dyskretyzacji (hints), oraz informację dodatkową, (coś na kształt „grochu z kapustą”, np. prawa autorskie, wielkość interlinii, itp.) n q x d e y g h i j l a z k o p bw s t u v r c f m • BachoTEX 2001 METAFONT (wynik ze strukturą) 0 1 2 3 4 5 6 C I OU 7DJ PV 8 E K QW 9F LRX A GMS Y BHN T Z k q x d e y g h i j l a z n o p bw s t u v r c f m • BachoTEX 2001 METAFONT (wynik ze strukturą) 0 1 2 3 4 5 METAPOST (wynik bez struktury) 6 C I O U 0 6C I J O U V D 7DJ PV P 7 1 Q W 8 E K QW 2 8 K 9 EL X 9F LRX 3 F RY 4 A GMS Y AB G M STZ BHN T Z 5 H N k q x d e y g h i j a l z n o p bw s t u v r c f m • BachoTEX 2001 METAPOST (wynik bez struktury) 0 1 2 3 4 5 6 C I O U 0 6C I J O U V D 7DJ PV P 7 1 Q W 8 E K QW 2 8 K 9 EL X 9F LRX 3 F RY 4 A GMS Y AB G M STZ BHN T Z 5 H N AWK t1utils perl k q x d e f g h i j a l z n o p bw s t u v r c ym • BachoTEX 2001 METATYPE1: kto, co? • METAPOST: generuje TFM-y i EPS-y; EPS-y • • • zawierają informację o kształtach znaków oraz informację dodatkową, niezbędną do skonstruowania poprawnego fontu Type 1 (np. hinty), zapisaną w postaci komentarzy. AWK: cały kram wygenerowany przez METAPOST-a zbiera do kupy tworząc tekstowy odpowiednik pliku PFB (wersja „surowa”) oraz plik AFM. Wykonuje przy okazji sporo roboty z porządkowaniem hintów. Ponadto stara się wyszukać powtarzające się fragmenty kodu i zdefiniować je jako podprogramy. Generuje też pliki dla dvipsa (psfonts.map i plik *.enc). t1asm z pakietu T1utils: zamienia „surowy” odpowiednik pliku PFB, wygenerowany przez AWK, na prawdziwy plik PFB. perl: tworzy na podstawie pliku AFM plik PFM. k q c d e f g h i j a l z n o p bw s t u v r x ym • BachoTEX 2001 Tam i z powrotem Ważnym elementem pakietu METATYPE1 jest oprogramowanie do konwersji fontów postscriptowych Type 1 na źródła METAPOST-owe. Wykorzystuje ono te same narzędzia: AWK oraz pakiet T1utils (program t1disasm). Tak otrzymane źródła są praktycznie nieparametryczne, ale jednak wygodniejsze do ewentualnego poprawiania niż font oryginalny, zwłaszcza pod kątem spójności fontu. k b c d e f g h i j a l z n o p qw s t u v r x ym • BachoTEX 2001 A jednak działa! Spróbowaliśmy. . . I rzeczywiście! Antykwa Półtawskiego jest przykładem fontu zaprogramowanego od początku do końca w języku METAPOST-a. Udostępnione ostatnio fonty, bazujące na kolekcji URW, powstały drogą konwersji plików postscriptowych do postaci METAPOST-owej, po czym – po wielu, wielu, poprawkach – ze źródeł METAPOST-owych zostały wygenerowane fonty Type 1. k b c d e f g h i j a l z n o p q r s t u vw x ym • BachoTEX 2001 Nikt nie jest doskonały Niestety, pakiet METATYPE1 ma parę braków. Po pierwsze nie mamy armat, czyli dokumentacji. Ponadto – głównie z tego powodu – pakiet jeszcze nie jest udostępniony, czyli właściwie go nie ma. . . k b c d e f g h i j a l mn o p q r s t u vw x y z • BachoTEX 2001 Świetlana przyszłość Ale będzie! Przewidujemy publiczne udostępnienie pakietu METATYPE1 podczas XII Europejskiej Konferencji TEX-owej w Kerkrade w Holandii (24 – 27 września 2001). a b c d e f g h i j k l mn o p q r s t u vw x y z • BachoTEX 2001