Fonts & Encodings 0596102429, 9780596102425

518 28 24MB

English Pages 1039 Year 2007

Report DMCA / Copyright

DOWNLOAD FILE

Fonts & Encodings
 0596102429, 9780596102425

Table of contents :
Cover......Page 1
Copyright......Page 5
Contents......Page 8
Introduction......Page 22
The Letter and Its Parts......Page 24
Letterpress Typesetting......Page 28
Digital Typesetting......Page 32
Font Formats......Page 35
Between Characters and Glyphs: the Problems of the Electronic Document......Page 36
The Structure of the Book and Ways to Use It......Page 38
How to Read This Book......Page 44
How to Contact Us......Page 46
1 Before Unicode......Page 48
ASCII......Page 50
EBCDIC......Page 52
ISO 2022......Page 54
ISO 8859......Page 56
ISO 8859-1 (Latin-1) and ISO 8859-15 (Latin-9)......Page 57
ISO 8859-2 (Latin-2) and ISO 8859-16 (Latin-10)......Page 59
ISO 8859-3 (Latin-3) and ISO 8859-9 (Latin-5)......Page 60
ISO 8859-4 (Latin-4), ISO 8859-10 (Latin-6), and ISO 8859-13 (Latin-7)......Page 61
ISO 8859-5, 6, 7, 8, 11......Page 62
The Far East......Page 63
Microsoft's code pages......Page 66
Apple's encodings......Page 68
Electronic mail......Page 69
The Web......Page 72
2 Characters, glyphs, bytes: An introduction to Unicode......Page 74
Philosophical issues: characters and glyphs......Page 75
First principles......Page 79
Technical issues: characters and bytes......Page 83
Character encoding forms......Page 85
The BMP (Basic Multilingual Plane)......Page 91
Higher planes......Page 104
Scripts proposed for addition......Page 110
3 Properties of Unicode characters......Page 116
Block and script......Page 117
Age......Page 118
General category......Page 119
Other general properties......Page 126
Noncharacters......Page 127
Logical-order exceptions......Page 128
Mathematical characters......Page 129
Diacritics......Page 130
The Unicode 1 name and ISO's comments......Page 131
Uppercase letters......Page 132
Special lowercase/uppercase/titlecase mappings......Page 133
Case folding......Page 134
The Arabic and Syriac scripts......Page 135
Managing grapheme clusters......Page 137
Numeric properties......Page 139
Identifiers......Page 140
Reading a Unicode block......Page 141
Combining Characters......Page 148
Composition and Decomposition......Page 151
Normalization Forms......Page 152
The Bidirectional Algorithm......Page 154
Typography in both directions......Page 155
Unicode and Bidirectionality......Page 159
The Algorithm, Step by Step......Page 163
East Asian Scripts......Page 167
Ideographs of Chinese Origin......Page 168
The Syllabic Korean Hangul Script......Page 176
5 Using Unicode......Page 180
Under Mac OS X......Page 181
Under Windows XP......Page 182
Under X Window......Page 184
Virtual Keyboards......Page 185
Useful Concepts Related to Virtual Keyboards......Page 188
Under Mac OS X......Page 189
Under Windows......Page 196
Under X Window......Page 202
Conversion of Text from One Encoding to Another......Page 204
The recode Utility......Page 205
6 Font Management on the Macintosh......Page 208
The Situation under Mac OS 9......Page 209
The situation under Mac OS X......Page 212
Tools for Verification and Maintenance......Page 215
ATM: the "Smoother" of Fonts......Page 217
ATR: classification of fonts by family......Page 220
Font Managers......Page 221
Font Servers......Page 225
TransType Pro......Page 226
dfontifier......Page 227
FontFlasher, the "Kobayashi Maru" of Fonts......Page 228
7 Font Management under Windows......Page 230
The Extension of Font Properties......Page 233
Tools for Verification and Maintenance......Page 234
ATM: the "Smoother" of Fonts......Page 236
Font Managers......Page 237
Font Servers......Page 239
Tools for Font Conversion......Page 240
Special Characteristics of X Window......Page 242
Logical Description of a Font under X......Page 243
Installing fonts under X......Page 247
Installing Bitmap Fonts......Page 249
Installing PostScript Type 1 or TrueType Fonts......Page 250
Tools for Managing Fonts under X......Page 252
The GNU Font Tools......Page 253
Converting Bitmap Fonts under Unix......Page 254
Using Fonts in TEX......Page 256
Introduction to TEX......Page 257
The High Level: Basic LaTEX Commands and NFSS......Page 261
The Low Level: TEX and DVI......Page 280
"Apres-TEX": Confronting the Real World......Page 284
Installing Fonts for TEX......Page 295
The Tool afm2tfm......Page 296
Basic Use of the Tool fontinst......Page 298
Multiple Master fonts......Page 304
How to Configure a Virtual Font......Page 306
Conclusions and Glimpses at the Future......Page 333
10 Fonts and Web Pages......Page 336
The Standard HTML Tags......Page 339
CSS (version 3)......Page 340
Tools for Downloading Fonts from the Web......Page 353
TrueDoc, by Bitstream......Page 354
Font Embedding, by Microsoft......Page 357
GlyphGate, by em2 Solutions......Page 361
Fundamental Concepts of XML......Page 366
And what about SVG?......Page 371
Font Selection under SVG......Page 372
Alternate Glyphs......Page 374
SVG Fonts......Page 376
Conclusion......Page 386
The Typographical Big Bang of the Fifteenth Century, and the Fabulous Destiny of the Carolingian Script......Page 388
From Venice to Paris, by Way of Rome......Page 392
New Scripts Emerge in Germany......Page 402
The Wild Adventure of Textura in England......Page 403
The Sun King Makes Waves......Page 405
England Takes the Lead in Typographic Innovation......Page 407
Didot and Bodoni Revolutionize Typefaces......Page 411
The German "Sturm und Drang"......Page 414
The Nineteenth Century, Era of Industrialization......Page 415
The Pre-war Period: Experimentation and a Return to Roots......Page 418
The Post-war Period......Page 424
Suggested Reading......Page 428
The Vox/ATypI Classification of Typefaces......Page 429
La classification Alessandrini des caracteres: le Codex 80......Page 432
Class 1: Old-Style Serifs......Page 437
Class 3: Modern Serifs......Page 439
Class 4: Clarendon Serifs......Page 440
Class 7: Free-Form Serifs......Page 441
Class 8: Sans Serif......Page 442
Class 10: Scripts......Page 443
Class 12: Symbolic......Page 444
The Panose-1 Classification......Page 445
Parameter 2: Serif Style......Page 446
Parameter 3: Weight......Page 448
Parameter 4: Proportion......Page 449
Parameter 5: Contrast......Page 451
Parameter 6: Stroke Variation......Page 452
Parameter 7: Arm Style and Termination of Open Curves......Page 454
Parameter 8: Slant and Shape of the Letter......Page 456
Parameter 9: Midlines and Apexes......Page 457
Parameter 10: X-height and Behavior of Uppercase Letters Relative to Accents......Page 459
12 Editing and Creating Fonts......Page 462
Software for Editing/Creating Fonts......Page 463
General Principles......Page 465
The Font Window......Page 467
Opening and Saving a Font......Page 473
The General-Information Window......Page 475
The Glyph Window......Page 480
The Metrics Window......Page 486
Multiple Master Fonts......Page 489
Driving FontLab with Python Scripts......Page 493
FontForge......Page 509
The Font-Table Window......Page 510
Opening/Saving a Font......Page 511
The General-Information Window......Page 512
The Glyph Window......Page 513
The Metrics Window......Page 516
What About Vertical Typesetting?......Page 518
CID Fonts......Page 519
Autotracing......Page 520
potrace......Page 521
ScanFont......Page 522
13 Optimizing a rasterization......Page 526
Global PostScript Hints......Page 528
Individual PostScript Hints......Page 533
TrueType Instructions......Page 539
Managing Instructions in FontLab......Page 541
Managing Instructions under VTT......Page 550
Managing Instructions under FontForge......Page 567
Introduction......Page 570
Managing OpenType Tables in FontLab......Page 576
Feature Definition Language......Page 577
FontLab's User Interface......Page 586
Managing OpenType Tables in VOLT......Page 590
Managing OpenType Tables in FontForge......Page 597
Anchors......Page 598
Noncontextual Substitutions......Page 600
Noncontextual Positionings......Page 601
Contextual Substitutions and Positionings......Page 603
Managing AAT Tables in FontForge......Page 607
Features and selectors......Page 609
Managing AAT's Finite Automata in FontForge......Page 610
A.1.1 The FONT Format......Page 620
A.2.1 The CPI Format......Page 622
A.3.1 The FNT Format......Page 623
A.4.1 The PSF Format of Linux......Page 625
A.4.2 The BDF Format......Page 627
A.4.3 The HBF Format......Page 630
A.4.4 The SNF, PCF, and ABF Formats......Page 631
A.5 The TEX World......Page 632
A.5.1 The PXL and CHR Formats......Page 633
A.5.2 The GF Format......Page 634
A.5.3 The PK Format......Page 638
A.5.4 Fonts or Images? Both!......Page 641
A.7 Whoever Can Do More Can Also Do Less......Page 642
B.1 TFM......Page 644
B.1.2 Font Parameters......Page 646
B.1.3 Kerning Pairs and Ligatures......Page 647
B.1.4 The Metric Properties of Glyphs......Page 652
B.2 OFM......Page 653
B.3 VF......Page 654
B.4 OVF......Page 655
C.1 Introduction to the PostScript Language......Page 656
C.1.1 Syntax......Page 657
C.1.3 The current transformation matrix......Page 658
C.1.4 Paths......Page 660
C.1.5 Shapes......Page 662
C.1.6 Bitmap Images......Page 663
C.1.7 Managing the Stack, Tables, and Dictionaries......Page 664
C.1.8 Font Management and Typesetting......Page 666
C.1.9 The Image Model and the Graphics State......Page 667
C.1.10 Structured Comments (DSCs)......Page 668
C.2 Type 3 Fonts......Page 671
C.3 Type 1 Fonts......Page 676
C.3.1 Before We Begin: the Format of the File that Contains the Font......Page 677
C.3.2 The Public Dictionary......Page 678
C.3.3 Encodings for Type 1 Fonts......Page 680
C.3.4 The Private Dictionary......Page 682
C.3.5 Glyph Descriptions......Page 686
C.3.6 Individual Hints......Page 687
C.3.7 AFM Files......Page 693
C.4 Multiple Master Fonts......Page 698
C.4.2 The AMFM file......Page 702
C.5 Type 42 Fonts......Page 703
C.6.1 Character Mapping......Page 705
C.6.2 The ACFM File......Page 707
C.7 CID Fonts (Types 9-11, 32)......Page 708
C.7.1 CIDFont......Page 709
C.7.2 CMap......Page 713
C.7.3 Rearrangement of a CID font......Page 715
C.7.5 Using a CID Font......Page 717
C.8.1 The Compact Font Format......Page 718
C.8.2 The charstrings of Type 2......Page 721
D The TrueType, OpenType, and AAT Font Formats......Page 726
D.1 TTX: TrueType Fonts Represented in XML......Page 727
D.3 General Overview of TrueType Tables......Page 730
D.4.1 The GlyphOrder Table......Page 734
D.4.2 The cmap Table......Page 735
D.4.3 The head Table......Page 737
D.4.4 The Tables hhea and hmtx......Page 738
D.4.5 The maxp Table......Page 740
D.4.6 The name Table......Page 741
D.4.7 The OS/2 Table......Page 743
D.4.8 The post Table......Page 747
D.5.2 The glyf Table......Page 749
D.5.3 The Tables fpgm, prep, and cvt......Page 751
D.6.2 The Table VORG......Page 752
D.7.1 The Tables EBLC and EBDT (Alias bloc and bdat)......Page 753
D.7.2 The EBSC Table......Page 760
D.8.1 The DSIG Table......Page 761
D.8.3 The Tables hdmx and LTSH......Page 762
D.8.4 The kern Table......Page 764
D.8.5 The VDMX Table......Page 769
D.8.6 The Tables vhea and vmtx......Page 770
D.8.7 The PCLT Table......Page 771
D.9.1 Important concepts......Page 772
D.9.2 The BASE Table......Page 775
D.9.3 The GPOS Table......Page 779
D.9.4 The GSUB Table......Page 802
D.9.5 The JSTF Table......Page 817
D.9.6 The GDEF Table......Page 824
D.10.1 Predefined Languages and Scripts......Page 827
D.10.2 Predefined Features......Page 836
D.11 General AAT Tables......Page 843
D.11.2 The bsln Table......Page 844
D.11.4 The fmtx Table......Page 847
D.11.5 The feat Table......Page 848
D.11.6 The lcar Table......Page 859
D.11.7 The opbd Table......Page 861
D.11.8 The prop Table......Page 862
D.11.9 The trak Table......Page 863
D.11.10The Zapf Table......Page 865
D.12.1 The fvar Table......Page 869
D.12.2 The avar Table......Page 871
D.12.3 The gvar Table......Page 872
D.12.4 The cvar Table......Page 876
D.13.1 Finite Automata......Page 877
D.13.2 The morx Table (Formerly mort)......Page 883
D.13.3 The just Table......Page 893
E TrueType Instructions......Page 900
E.1.3 Freedom and Projection Vectors......Page 902
E.1.7 Twilight Zone and Zone Pointers......Page 903
E.2.1 Instructions for Managing the Stack and Storage Area......Page 904
E.2.2 Managing Vectors, Zones, and Reference Points......Page 905
E.2.3 Moving Points......Page 906
E.2.4 Instructions......Page 910
E.2.5 Tests and Logical and Arithmetic Functions......Page 911
E.2.6 Definitions of Subroutines and New Instructions......Page 912
E.3.1 The `T' in the Font Courier......Page 913
E.3.2 The `O' from the Font Verdana......Page 920
F METAFONT and Its Derivatives......Page 926
F.1.1 Basic Concepts......Page 927
F.1.2 The Basics: Drawing and Filling......Page 929
F.1.3 More Advanced Concepts: Pen Strokes and Parameterization......Page 938
F.1.4 Optimizing the Rasterization......Page 951
F.2.1 General Structure......Page 956
F.2.2 Extensions......Page 965
F.3 MetaFog......Page 966
F.4.1 Installing and Using METATYPE1......Page 968
F.4.2 Syntactic Differences from METAFONT......Page 969
F.4.3 Antykwa Potawskiego......Page 977
G.2 Bezier Curves......Page 982
G.2.1 Definition and Interesting Properties......Page 984
G.2.2 de Casteljau's Algorithm......Page 985
G.2.3 Subdivision of Bezier Curves......Page 986
General Index......Page 1012
Index of Persons......Page 1034

Polecaj historie