Fonts & encodings: Translation of: Fontes & codages [1st ed]
0596102429, 9780596102425
This reference is a fascinating and complete guide to using fonts and typography on the Web and across a variety of oper
217
32
21MB
English
Pages xx, 1016 Seiten Seiten
[1039]
Year 2007
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Contents......Page 9
Introduction......Page 23
The Letter and Its Parts......Page 25
Letterpress Typesetting......Page 29
Digital Typesetting......Page 33
Font Formats......Page 36
Between Characters and Glyphs: the Problems of the Electronic Document......Page 37
The Structure of the Book and Ways to Use It......Page 39
For the devoted TEXist......Page 45
For the experienced font designer......Page 46
How to Contact Us......Page 47
Before Unicode......Page 49
ASCII......Page 51
EBCDIC......Page 53
ISO 2022......Page 55
ISO 8859......Page 57
ISO 8859-1 (Latin-1) and ISO 8859-15 (Latin-9)......Page 58
ISO 8859-2 (Latin-2) and ISO 8859-16 (Latin-10)......Page 60
ISO 8859-3 (Latin-3) and ISO 8859-9 (Latin-5)......Page 61
ISO 8859-4 (Latin-4), ISO 8859-10 (Latin-6), and ISO 8859-13 (Latin-7)......Page 62
ISO 8859-5, 6, 7, 8, 11......Page 63
The Far East......Page 64
Microsoft’s code pages......Page 67
Apple’s encodings......Page 69
Electronic mail......Page 70
The Web......Page 73
Characters, glyphs, bytes: An introduction to Unicode 53......Page 75
Philosophical issues: characters and glyphs......Page 76
Principle #1: universality......Page 80
Principle #5: plain text......Page 81
Principle #8: dynamic composition......Page 82
Unwritten principle #11: permanent stability......Page 83
Technical issues: characters and bytes......Page 84
Detection of endianness......Page 86
UTF-8 and CESU-8......Page 87
SCSU and BOCU......Page 88
The BMP (Basic Multilingual Plane)......Page 92
Higher planes......Page 105
Approved proposals in balloting......Page 111
Proposals in the initial and exploratory stages......Page 112
Properties of Unicode characters......Page 117
Block and script......Page 118
Age......Page 119
Letters......Page 120
Diacritical marks......Page 121
Punctuation......Page 122
Symbols......Page 123
Separators......Page 124
The remaining categories......Page 125
Other general properties......Page 127
Noncharacters......Page 128
Logical-order exceptions......Page 129
Mathematical characters......Page 130
Diacritics......Page 131
The Unicode 1 name and ISO’s comments......Page 132
Uppercase letters......Page 133
Special lowercase/uppercase/titlecase mappings......Page 134
Case folding......Page 135
The Arabic and Syriac scripts......Page 136
Managing grapheme clusters......Page 138
Numeric properties......Page 140
Identifiers......Page 141
Reading a Unicode block......Page 142
Combining Characters......Page 149
Composition and Decomposition......Page 152
Normalization Forms......Page 153
The Bidirectional Algorithm......Page 155
Typography in both directions......Page 156
Unicode and Bidirectionality......Page 160
2. Process the control characters for bidirectionality......Page 164
3. Process the numbers and the surrounding characters......Page 165
5. Make use of the inherent directionality of the characters......Page 166
6. Reverse substrings......Page 167
East Asian Scripts......Page 168
Ideographs of Chinese Origin......Page 169
Unicode and ideographs......Page 170
The Unihan database......Page 171
What shall we do when 71,233 ideographs are not enough?......Page 172
Ideographic description characters......Page 173
CDL, or how to describe ideographs in XML......Page 175
The Syllabic Korean Hangul Script......Page 177
Using Unicode......Page 181
Character Palette......Page 182
BabelMap......Page 183
gucharmap......Page 185
Virtual Keyboards......Page 186
Useful Concepts Related to Virtual Keyboards......Page 189
XML description of virtual keyboard......Page 190
Under Windows......Page 197
Microsoft Keyboard Layout Creator......Page 198
Tavultesoft Keyman Developer......Page 199
Under X Window......Page 203
xmodmap......Page 204
Conversion of Text from One Encoding to Another......Page 205
The recode Utility......Page 206
Font Management on the Macintosh......Page 209
The Situation under Mac OS 9......Page 210
The situation under Mac OS X......Page 213
Tools for Verification and Maintenance......Page 216
ATM: the “Smoother”of Fonts......Page 218
ATR: classification of fonts by family......Page 221
Font Managers......Page 222
Font Servers......Page 226
TransType Pro......Page 227
dfontifier......Page 228
FontFlasher, the “Kobayashi Maru” of Fonts......Page 229
Font Management under Windows......Page 231
The Extension of Font Properties......Page 234
Tools for Verification and Maintenance......Page 235
ATM: the “Smoother” of Fonts......Page 237
Font Managers......Page 238
Font Servers......Page 240
Tools for Font Conversion......Page 241
Special Characteristics of X Window......Page 243
Logical Description of a Font under X......Page 244
Installing fonts under X......Page 248
Installing Bitmap Fonts......Page 250
Installing PostScript Type 1or TrueType Fonts......Page 251
Tools for Managing Fonts under X......Page 253
The GNU Font Tools......Page 254
Converting Bitmap Fonts under Unix......Page 255
Using Fonts in TEX......Page 257
Introduction to TEX......Page 258
The High Level: Basic LATEX Commands and NFSS......Page 262
Choosing fonts in LATEX: basic commands......Page 263
Using NFSS......Page 265
Configuring NFSS......Page 273
The primitives for selecting fonts......Page 281
The DVI file......Page 283
Automatic generation of bitmap fonts from METAFONT source code......Page 285
The processing of PostScript fonts by dvips......Page 288
Configuring dvips......Page 289
Virtual fonts......Page 292
Virtual fonts and Acrobat......Page 294
Installing Fonts for TEX......Page 296
The Tool afm2tfm......Page 297
Basic Use of the Tool fontinst......Page 299
Multiple Master fonts......Page 305
How to Configure a Virtual Font......Page 307
The ETX file......Page 308
The MTX file......Page 310
ETX and MTX files for a simple virtual font......Page 314
Adding ligatures to a font......Page 317
Setting lead type with TEX......Page 331
Conclusions and Glimpses at the Future......Page 334
Fonts and Web Pages......Page 337
The Standard HTML Tags......Page 340
CSS (version3)......Page 341
CSS declarations for specifying the active font......Page 342
Creating a CSS “database” of fonts......Page 348
Tools for Downloading Fonts from the Web......Page 354
TrueDoc, by Bitstream......Page 355
Font Embedding, by Microsoft......Page 358
GlyphGate, by em2 Solutions......Page 362
Fundamental Concepts of XML......Page 367
And what about SVG?......Page 372
Font Selection under SVG......Page 373
Alternate Glyphs......Page 375
SVG Fonts......Page 377
The font element and its attributes......Page 379
Characterizing a font......Page 380
Describing a glyph......Page 382
Kerning and kerns......Page 386
Conclusion......Page 387
The Typographical Big Bang of the Fifteenth Century, and the Fabulous Destiny of the Carolingian Script......Page 389
From Venice to Paris, by Way of Rome......Page 393
New Scripts Emerge in Germany......Page 403
The Wild Adventure of Textura in England......Page 404
The Sun King Makes Waves......Page 406
England Takes the Lead in Typographic Innovation......Page 408
Didot and Bodoni Revolutionize Typefaces......Page 412
The German “Sturm und Drang”......Page 415
The Nineteenth Century, Era of Industrialization......Page 416
The Pre-war Period: Experimentation and a Return to Roots......Page 419
The Post-war Period......Page 425
Suggested Reading......Page 429
The Vox/ATypI Classification of Typefaces......Page 430
La classification Alessandrini des caractères: le Codex 80......Page 433
Class 1: Old-Style Serifs......Page 438
Class 3: Modern Serifs......Page 440
Class 4: Clarendon Serifs......Page 441
Class 7: Free-Form Serifs......Page 442
Class 8: Sans Serif......Page 443
Class 10: Scripts......Page 444
Class 12: Symbolic......Page 445
The Panose-1 Classification......Page 446
Parameter 2: Serif Style......Page 447
Parameter 3: Weight......Page 449
Parameter 4: Proportion......Page 450
Parameter 5: Contrast......Page 452
Parameter 6: Stroke Variation......Page 453
Parameter 7: Arm Style and Termination of Open Curves......Page 455
Parameter 8: Slant and Shape of the Letter......Page 457
Parameter 9: Midlines and Apexes......Page 458
Parameter 10: X-height and Behavior of Uppercase Letters Relative to Accents......Page 460
Editing and Creating Fonts......Page 463
Software for Editing/Creating Fonts......Page 464
General Principles......Page 466
The Font Window......Page 468
Opening and Saving a Font......Page 474
The General-Information Window......Page 476
The Glyph Window......Page 481
The Metrics Window......Page 487
Multiple Master Fonts......Page 490
Driving FontLab with Python Scripts......Page 494
The FontLab class......Page 495
The Font class......Page 498
The Encoding and EncodingRecord classes......Page 500
The Glyph class......Page 502
The Point, Rect, and KerningPair classes......Page 505
The Node class......Page 506
FontForge......Page 510
The Font-Table Window......Page 511
Opening/Saving a Font......Page 512
The General-Information Window......Page 513
The Glyph Window......Page 514
The Metrics Window......Page 517
What About Vertical Typesetting?......Page 519
CID Fonts......Page 520
Autotracing......Page 521
potrace......Page 522
ScanFont......Page 523
Optimizing a Rasterization......Page 527
Global PostScript Hints......Page 529
FontLab and global hints......Page 531
FontForge and global hints......Page 533
Individual PostScript Hints......Page 534
FontLab and individual hints......Page 536
FontForge and individual hints......Page 539
TrueType Instructions......Page 540
The user interface......Page 542
Alignments......Page 544
Single and double links......Page 546
Interpolations......Page 548
δ instructions......Page 549
Generating or importing bitmaps......Page 550
Managing Instructions under VTT......Page 551
Control values......Page 552
Opening/saving a file......Page 554
The glyph window......Page 555
The window of the control program......Page 556
Modifying a glyph’s trace......Page 557
Anchors......Page 558
Links, distances, shifts......Page 559
Interpolations and alignments......Page 561
δ instructions......Page 562
A few examples......Page 564
The debugger’s interface......Page 568
Introduction......Page 571
Managing OpenType Tables in FontLab......Page 577
Identifying and classifying glyphs......Page 578
Scripts, languages, features, lookups......Page 579
Substitution rules......Page 581
Positioning rules......Page 583
Two exceptions: the aalt and size features......Page 586
FontLab’s User Interface......Page 587
Managing glyph classes......Page 589
Managing anchors......Page 590
Managing OpenType Tables in VOLT......Page 591
General mode of operation......Page 592
Substitutions......Page 593
Positionings......Page 595
The proofing window......Page 597
Managing OpenType Tables in FontForge......Page 598
Anchors......Page 599
Noncontextual Substitutions......Page 601
Noncontextual Positionings......Page 602
Contextual Substitutions and Positionings......Page 604
Managing AAT Tables in FontForge......Page 608
Choosing between OpenType and AAT......Page 609
Features and selectors......Page 610
Managing AAT’s Finite Automata in FontForge......Page 611
Rearrangement of glyphs......Page 612
Contextual substitutions......Page 615
Insertion......Page 617
Kerning......Page 618
A.1.1 The FONT Format......Page 621
A.2.1 The CPI Format......Page 623
A.3.1.1 Bitmap FNT Fonts......Page 624
A.4.1 The PSF Format of Linux......Page 626
A.4.1.1 The Unicode table......Page 627
A.4.2 The BDF Format......Page 628
A.4.3 The HBF Format......Page 631
A.4.4 The SNF, PCF, and ABF Formats......Page 632
A.5 The TEX World......Page 633
A.5.1 The PXL and CHR Formats......Page 634
A.5.2 The GF Format......Page 635
A.5.3 The PK Format......Page 639
A.5.4 Fonts or Images? Both!......Page 642
A.7 Whoever Can Do More Can Also Do Less......Page 643
B.1 TFM......Page 645
B.1.2 Font Parameters......Page 647
B.1.3 Kerning Pairs and Ligatures......Page 648
B.1.3.1 Optimizing operations......Page 651
B.1.4 The Metric Properties of Glyphs......Page 653
B.2 OFM......Page 654
B.3 VF......Page 655
B.4 OVF......Page 656
C.1 Introduction to the PostScript Language......Page 657
C.1.1 Syntax......Page 658
C.1.3 The current transformation matrix......Page 659
C.1.4 Paths......Page 661
C.1.5 Shapes......Page 663
C.1.6 Bitmap Images......Page 664
C.1.7 Managing the Stack, Tables, and Dictionaries......Page 665
C.1.8 Font Management and Typesetting......Page 667
C.1.9 The Image Model and the Graphics State......Page 668
C.1.10 Structured Comments (DSCs)......Page 669
C.2 Type 3 Fonts......Page 672
C.3 Type 1 Fonts......Page 677
C.3.1 Before We Begin: the Format of the File that Contains the Font......Page 678
C.3.2 The Public Dictionary......Page 679
C.3.3 Encodings for Type 1 Fonts......Page 681
C.3.4 The Private Dictionary......Page 683
C.3.4.1 Relevant heights......Page 684
C.3.4.3 Parameters specific to ideographic scripts......Page 685
C.3.4.5 Subroutines and “other subroutines”......Page 686
C.3.5 Glyph Descriptions......Page 687
C.3.6 Individual Hints......Page 688
C.3.6.1 Technical peculiarities of hints......Page 690
C.3.6.2 “Counter control”......Page 692
C.3.7 AFM Files......Page 694
C.4 Multiple Master Fonts......Page 699
C.4.2 The AMFM file......Page 703
C.5 Type 42 Fonts......Page 704
C.6.1 Character Mapping......Page 706
C.6.2 The ACFM File......Page 708
C.7 CID Fonts (Types 9–11, 32)......Page 709
C.7.1 CIDFont......Page 710
C.7.2 CMap......Page 714
C.7.3 Rearrangement of a CIDfont......Page 716
C.7.5 Using a CID Font......Page 718
C.8.1 The Compact Font Format......Page 719
C.8.2 The charstrings of Type 2......Page 722
C.8.2.1 Hints in charstrings of Type 2......Page 723
The TrueType, OpenType, and AAT Font Formats......Page 727
D.1 TTX: TrueType Fonts Represented in XML......Page 728
D.3 General Overview of TrueType Tables......Page 731
D.4.1 The Glyph Order Table......Page 735
D.4.2 The cmap Table......Page 736
D.4.3 The head Table......Page 738
D.4.4 The Tables hhea and hmtx......Page 739
D.4.5 The maxp Table......Page 741
D.4.6 The name Table......Page 742
D.4.7 The OS/2 Table......Page 744
D.4.8 The post Table......Page 748
D.5.2 The glyf Table......Page 750
D.5.3 The Tables fpgm, prep, and cvt......Page 752
D.6.2 The Table VORG......Page 753
D.7.1 The Tables EBLC and EBDT (Alias bloc and bdat)......Page 754
D.7.2 The EBSC Table......Page 761
D.8.1 The DSIG Table......Page 762
D.8.3 The Tables hdmx and LTSH......Page 763
D.8.4 The kernTable......Page 765
D.8.4.2 The kern subtables specific to AAT......Page 767
D.8.5 The VDMX Table......Page 770
D.8.6 The Tables vhea and vmtx......Page 771
D.8.7 The PCLT Table......Page 772
D.9.1.1 Script, language, feature, lookup......Page 773
D.9.1.3 Coverage tables......Page 775
D.9.2 The BASE Table......Page 776
D.9.2.1 Types of baselines predefined for the BASE table......Page 779
D.9.3.1 Scripts and features......Page 780
D.9.3.2 Lookup type 1: positioning of a single glyph......Page 784
D.9.3.3 Lookup type 2: positioning of a pair of glyphs......Page 785
D.9.3.4 Lookup type 3: cursive attachment......Page 787
D.9.3.5 Lookup type 4: diacritical marks......Page 788
D.9.3.6 Lookup type 6: multiple diacritical marks......Page 791
D.9.3.7 Lookup type 5: diacritical marks on ligatures......Page 793
D.9.3.8 Lookup type 7: contextual positioning......Page 795
D.9.3.9 Lookup type 8: extended contextual positioning......Page 798
D.9.3.10 Lookup type 9: an extension......Page 802
D.9.4.1 Lookup type 1: simple substitution......Page 803
D.9.4.2 Lookup type 2: multiple substitution......Page 804
D.9.4.3 Lookup type 3: variant selection......Page 806
D.9.4.4 Lookup type 4: ligatures......Page 808
D.9.4.5 Lookup type 5: contextual substitutions......Page 809
D.9.4.6 Lookup type 6: extended contextual substitutions......Page 813
D.9.4.7 Lookup type 8: reverse chaining contextual substitutions......Page 816
D.9.5 The JSTF Table......Page 818
D.9.5.1 Extenders......Page 819
D.9.5.2 GPOS and GSUB lookups......Page 820
D.9.5.3 JSTF lookups......Page 823
D.9.6 The GDEF Table......Page 825
D.10.1 Predefined Languages and Scripts......Page 828
D.10.2.1 General features, or those specific to the Latin script......Page 837
D.10.2.2 Features specific to the Semitic scripts......Page 840
D.10.2.3 Features specific to the scripts of Inda and Southeast Asia......Page 841
D.10.2.4 Features specific to the ideographic languages......Page 842
D.11 General AAT Tables......Page 844
D.11.2 The bsln Table......Page 845
D.11.4 The fmtx Table......Page 848
D.11.5 The feat Table......Page 849
D.11.5.1 The AAT features......Page 851
D.11.6 The lcar Table......Page 860
D.11.7 The opbd Table......Page 862
D.11.8 The prop Table......Page 863
D.11.9 The trak Table......Page 864
D.11.10 The Zapf Table......Page 866
D.12.1 The fvar Table......Page 870
D.12.2 The avar Table......Page 872
D.12.3 The gvar Table......Page 873
D.12.4 The cvar Table......Page 877
D.13.1 Finite Automata......Page 878
D.13.2 The morx Table (Formerly mort)......Page 884
D.13.2.1 Operations of type 0: changing the order of the glyphs......Page 887
D.13.2.2 Operations of type 1: contextual substitution......Page 890
D.13.2.3 Operations of type 2: ligatures......Page 891
D.13.2.4 Operations of type 5: insertion of glyphs......Page 892
D.13.2.5 Operations of type 4: simple glyph substitution......Page 893
D.13.3.1 The table of justification classes......Page 894
D.13.3.2 The quantitative table......Page 896
D.13.3.3 The qualitative table......Page 897
TrueType Instructions......Page 901
E.1.3 Freedomand Projection Vectors......Page 903
E.1.7 Twilight Zone and Zone Pointers......Page 904
E.2.1 Instructions for Managing the Stack and Storage Area......Page 905
E.2.2 Managing Vectors, Zones, and Reference Points......Page 906
E.2.3 Moving Points......Page 907
E.2.4 δ Instructions......Page 911
E.2.5 Tests and Logical and Arithmetic Functions......Page 912
E.2.6 Definitions of Subroutines and New Instructions......Page 913
E.3.1 The ‘T’ in the Font Courier......Page 914
E.3.2 The ‘O’ from the Font Verdana......Page 921
METAFONT and Its Derivatives......Page 927
F.1.1 Basic Concepts......Page 928
F.1.2 The Basics: Drawing and Filling......Page 930
F.1.3 More Advanced Concepts: Pen Strokes and Parameterization......Page 939
F.1.4 Optimizing the Rasterization......Page 952
F.2.1 General Structure......Page 957
F.2.2 Extensions......Page 966
F.3 MetaFog......Page 967
F.4.1 Installing and Using METATYPE1......Page 969
F.4.2 Syntactic Differences from METAFONT......Page 970
F.4.3 Antykwa Póltawskiego......Page 978
G.2 Bézier Curves......Page 983
G.2.1 Definition and Interesting Properties......Page 985
G.2.2 de Casteljau’s Algorithm......Page 986
G.2.3 Subdivision of Bézier Curves......Page 987
Bibliography......Page 991
General Index......Page 1013
Index of Persons......Page 1035