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