File: glossary.rst

package info (click to toggle)
fontforge 1%3A20230101~dfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 63,260 kB
  • sloc: ansic: 462,618; python: 6,916; cpp: 214; objc: 122; sh: 101; makefile: 55; xml: 11
file content (1084 lines) | stat: -rw-r--r-- 47,072 bytes parent folder | download | duplicates (3)
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
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
Typographical glossary
======================

.. epigraph::

   | 'The time has come,' the Walrus said,
   | 'To talk of may things:
   | Of shoes- and ships- and sealing-wax-
   | Of cabbages- and kings-
   | And why the sea is boiling hot-
   | And whether pigs have wings.'

   -- The Walrus and the Carpenter -- Lewis Carroll

.. glossary::

   Abjad
      Abjad is the technical term for the type of writing system used by Semitic
      languages (Hebrew, Arabic, etc.), where there are glyphs for all the
      consonants but the reader must be prepared to guess what vowel to add between
      two consonants.

      Both Hebrew and Arabic have optional vowel marks and are called "impure"
      abjads. Ancient Phoenician had nothing but consonants and is a "pure" abjad.

      See Also: :term:`Alphabet`,
      :term:`Abugida`, :term:`Syllabary` and
      the relevant `Wikipedia article <http://en.wikipedia.org/wiki/Abjad>`__.

   Abugida
      An abugida is somewhere in between an :term:`alphabet <Alphabet>` and
      a :term:`syllabary <Syllabary>`. The Indic writing systems are
      probably the best known abugidas.

      In most abugidas there are independent glyphs for the consonants, and each
      consonant is implicitly followed by a default vowel sound. All vowels other
      than the default will be marked by either diacritics or some other
      modification to the base consonant.

      An abugida differs from a syllabary in that there is a common theme to the
      the images representing a syllable beginning with a given consonant (that is,
      the glyph for the consonant), while in a syllabary each syllable is distinct
      even if two start with a common consonant.

      An abugida differs from an abjad in that vowels (other than the default) must
      be marked in the abugida.

      See Also: :term:`Alphabet`, :term:`Abjad`,
      :term:`Syllabary` and the relevant
      `Wikipedia article <http://en.wikipedia.org/wiki/Abugida>`__.

   Advance Width
      .. image:: /images/sidebearings.png
         :align: right

      The distance between the start of this glyph and the start of the next glyph.
      Sometimes called the glyph's width. See also
      :term:`Vertical Advance Width`.

   Alphabet
      A writing system where there are glyphs for all phonemes -- consonants and
      vowels alike -- and (in theory anyway) all phonemes in a word will be marked
      by an appropriate glyph.

      See Also: :term:`Abjad`, :term:`Abugida`,
      :term:`Syllabary` and the relevant
      `Wikipedia article <http://en.wikipedia.org/wiki/Alphabet>`__.

   Apple Advanced Typography
      Apple's extension to basic TrueType fonts. Includes contextual substitutions,
      ligatures, kerning, etc. Also includes :term:`distortable fonts <Distortable font>`.

   Ascender
      A stem on a lower case letter which extends above the x-height. "l" has an
      ascender.

      See also :term:`X-height`, :term:`Cap-height`, :term:`Descender`,
      :term:`Overshoot`, :term:`Baseline`

   Anchor Class
      Used to specify mark-to-base and cursive GPOS subtables. See
      :ref:`overview <overview.Anchors>`.

   Ascent
      In traditional typography the ascent of a font was the distance from the top
      of a block of type to the :term:`baseline <Baseline>`.

      Its precise meaning in modern typography seems to vary with different
      definers.

   ATSUI
      Apple's advanced typographical system. Also called Apple Advanced Typography.

   Baseline
      The :ref:`baseline <overview.Baseline>` is the horizontal line on which the
      (latin, greek, cyrillic) letters sit. The baseline will probably be in a
      different place for different scripts. In Indic scripts most letters descend
      below the baseline. In CJK scripts there is also a vertical baseline usually
      in the middle of the glyph. The :doc:`BASE and bsln </ui/dialogs/baseline>` tables allow
      you to specify how the baselines of different scripts should be aligned with
      respect to each other.

      See also :term:`X-height`, :term:`Cap-height`, :term:`Ascender`,
      :term:`Descender`, :term:`Overshoot`

   Bézier curve
   Bézier splines
      Bézier curves are described in detail in the
      :doc:`Bézier section of the main manual. </techref/bezier>`

   Bidi
      .. epigraph::

         | He looked thoughtful and grave- but the orders he gave
         | Were enough to bewilder the crew.
         | When he cried 'Steer to starboard, but keep her head larboard!'
         | What on earth was the helmsman to do?

         -- The Hunting of the Snark -- Lewis Carroll

      Bi-Directional text. That is a section of text which contains both
      left-to-right and right-to-left scripts. English text quoting Arabic, for
      example. Things get even more complex with nested quotations. The
      :term:`Unicode` standard contains an algorithm for laying
      out Bidi text. See also: :term:`Boustrophedon`.

   Black letter
      Any of various type families based on medieval handwriting.

      See also :term:`Gothic`.

   BMP
   Basic Multilingual Plane
      The first 65536 code points of :term:`Unicode`. These
      contain most of the ordinary characters in the modern world. See Also

      * :term:`SMP` -- Supplementary Multilingual Plane
        (0x10000-0x1FFFF)
      * :term:`SIP` -- Supplementary Ideographic Plane
        (0x20000-0x2FFFF)
      * :term:`SSP` -- Supplementary Special-purpose Plane
        (0xE0000-0xEFFFF)

   Bold
      A common font :term:`style <Style>`. The stems of the glyphs are
      wider than in the normal font, giving the letters a darker impression. Bold
      is one of the few :term:`LGC` styles that translate readily to
      other scripts.

   Bopomofo
      A (modern~1911) Chinese (Mandarin) :term:`alphabet <Alphabet>` used
      to provide phonetic transliteration of Han ideographs in dictionaries.

   Boustrophedon
      .. image:: /images/boustrophedon.png
         :align: right

      Writing "as the ox plows", that is alternating between left to right and
      right to left writing directions. Early alphabets (Old Canaanite, and the
      very early greek writings (and, surprisingly,
      :term:`Fuþark`)) used this. Often the right to left glyphs
      would be mirrors of the left to right ones. As far as I know, no modern
      writing system uses this method (nor does OpenType have any support for it).
      See Also :term:`Bidi`.

   Cap-height
      .. image:: /images/cap-height.png
         :align: right

      The height of a capital letter above the baseline (a letter with a flat top
      like "I" as opposed to one with a curved one like "O").

      See also :term:`X-height`, :term:`Ascender`, :term:`Descender`,
      :term:`Overshoot`, :term:`Baseline`

   CFF
      Compact Font Format most commonly used within
      :term:`OpenType` postscript fonts, but is a valid font
      format even without a :term:`SFNT` wrapper. This is the native
      font format for fonts with PostScript Type2 charstrings.

   Character
      A character is a Platonic ideal reified into at least one
      :term:`glyph <Glyph>`. For example the letter "s" is a character
      which is reified into several different glyphs: "S", "s", "*s*", long-s, etc.
      Note that these glyphs can look fairly different from each other, however
      although the glyph for an integral sign might be the same as the long-s
      glyph, these are in fact different characters.

   Character set
      A character set is an unordered set of :term:`characters <Character>`

   CID
      Character Identifier, a number. In some :term:`CJK`
      :term:`PostScript` fonts the glyphs are not named but
      are referred to by a CID number.

   CID-keyed font
      A :term:`PostScript` font in which the glyphs are index
      by CID and not by name.

   CJK
      Chinese, Japanese, Korean. These three languages require fonts with a huge
      number of glyphs. All three share a writing system based on Chinese
      ideographs (though they have undergone separate evolution in each country,
      indeed mainland Chinese fonts are different from those used in Taiwan and
      Hong Kong).

      Japanese and Korean also have phonetic syllabaries. The Japanese have two
      syllabaries, Hiragana and katakana which have about 60 syllables. The Koreans
      have one syllabary, hangul with tens of thousands of syllables.

   CJKV
      Chinese, Japanese, Korean, Vietnamese. These four languages require fonts
      with a huge number of glyphs.

   Condensed
      A condensed font is one where the space between the stems of the glyphs, and
      the distance between glyphs themselves has been reduced.

   Conflicting hints
      If a glyph contains two hints where the start or end point of one is within
      the range of the other then these hints conflict. They may not be active
      simultaneously.

   Descender
      A stem on a lower case letter which extends below the baseline. "p" has a
      descender.

      See also :term:`X-height`, :term:`Cap-height`, :term:`Ascender`,
      :term:`Overshoot`, :term:`Baseline`

   Descent
      In traditional typography the descent of a font was the distance from the
      bottom of a block of type to the :term:`baseline <Baseline>`.

      Its precise meaning in modern typography seems to vary with different
      definers.

   Device Table
      A concept in OpenType which allows you to enter spacing adjustments geared to
      rasterization at particular pixel sizes. If a kerning value that works most
      of the time leads to an
      :ref:`ugly juxtaposition of glyphs <metricsview.DeviceTable>` on a 12 pixel
      high font, then you can add a special tweak to the spacing that only is
      applicable at 12 pixels (and another one at 14 and 18, or whatever is
      needed). Similar functionality is needed for
      :ref:`anchored marks <anchorcontrol.DeviceTable>`.

   Didot point
      The European :term:`point <Point>`. 62 :sup:`2`/:small:`3` points per
      23.566mm ( 2.66pt/mm or 67.55pt/inch ). There is also a "metric" didiot
      point: .4mm.

   Distortable font
      See :term:`Multiple Master Font`

   em
      A linear unit equal to the point size of the font. In a 10 point font, the em
      will be 10 points. An em-space is white-space that is as wide as the point
      size. An em-dash is a horizontal bar that is as wide as the point size.

      An em-square is a square one em to each side. In traditional typography (when
      each letter was cast in metal) the glyph had to be drawn within the
      em-square.

   em unit
      In a scalable font the "em" is subdivided into units. In a postscript font
      there are usually 1000 units to the em. In a TrueType font there might be
      512, 1024 or 2048 units to the em. In an Ikarus font there are 15,000 units.
      FontForge uses these units as the basis of its coordinate system.

   en
      One half of an ":term:`em`"

   Encoding
      An encoding is a mapping from a set of bytes onto a
      :term:`character set <Character set>`. It is what determines which
      byte sequence represents which character. The words "encoding" and "character
      set" are often used synonymously. The specification for ASCII specifies both
      a character set and an encoding. But CJK character sets often have multiple
      encodings for the character set (and multiple character sets for some
      encodings).

      In more complicated cases it is possible to have multiple glyphs associated
      with each character (as in arabic where most characters have at least 4
      different glyphs) and the client program must pick the appropriate glyph for
      the character in the current context.

   Eth -- Edh
      The old germanic letter "ð" for the voiced (English) "th" sound (the sound in
      "this" -- most English speakers aren't even aware that "th" in English has
      two sounds associated with it, but it does, see also
      :term:`Thorn`)

   Even-Odd Fill Rule
      To determine if a pixel should be
      :ref:`filled using this rule <editexample2.even-odd-non-zero>`, draw a line from the
      pixel to infinity (in any direction) then count the number of times contours
      cross this line. If that number is odd then fill the point, if it is even
      then do not fill the point. This method is used for fonts by postscript
      rasterizers after level 2.0 of PostScript. See Also
      :term:`Non-Zero Winding Number Fill rule`.

   Extended
      An extended font is one where the space between the stems of the glyphs, and
      the distance between glyphs themselves has been increased.

   Extremum
      A point on a curve where the curve attains its maximum or minimum value. On a
      continuous curve this can happen at the endpoints (which is dull) or where
      dx/dt=0 or dy/dt=0.

   Features (OpenType)
      When creating fonts for complex scripts (and even for less complex scripts)
      various transformations (like ligatures) must be applied to the input glyphs
      before they are ready for display. These transformations are identified as
      font features and are tagged with (in OpenType) a 4 letter tag or (in Apple)
      a 2 number identfier. The meanings of these features are predefined by
      MicroSoft and Apple. FontForge allows you to tag each lookup with one or
      several features :ref:`when you create it <lookups.Add-Lookup>` (or later).

   Feature File
      This is a text syntax designed by Adobe to describe OpenType features. It can
      be used to move feature and lookup information from one font to another.

   Feature/Settings (Apple)
      These are roughly equivalent to OpenType's
      :term:`Features <Features (OpenType)>` above, they are
      `defined by Apple <http://developer.apple.com/fonts/Registry/index.html>`__.

   Font
      A collection of :term:`glyphs <Glyph>`, generally with at least one
      glyph associated with each character in the font's
      :term:`character set <Character set>`, often with an encoding.

      A font contains much of the information needed to turn a sequence of bytes
      into a set of pictures representing the characters specified by those bytes.

      In traditional typesetting a font was a collection of little blocks of metal
      each with a graven image of a letter on it. Traditionally there was a
      different font for each point-size.

   Font Family, or just Family
      A collection of related :term:`font <Font>`\ s. Often including plain,
      italic and bold :term:`style <Style>`\ s.

   FontForge
      This.

   `FreeType <http://freetype.sf.net/>`__
      A library for rasterizing fonts. Used extensively in FontForge to understand
      the behavior of truetype fonts and to do better rasterization than FontForge
      could unaided.

   Fractur
      The old black letter writing style used in Germany up until world war II.

      See also :term:`Gothic`.

   Fuþark
   Futhark
      The old germanic runic script

   Ghost Hint
      Sometimes it is important to indicate that a horizontal edge is indeed
      horizontal. But the edge has no corresponding edge with which to make a
      normal stem. In this case a special :term:`hint <Hints>` is used with
      a width of -20 (or -21). A ghost hint must lie entirely within a glyph. If it
      is at the top of a contour use a width of -20, if at the bottom use -21.
      Ghost hints should also lie within BlueZones.

      (The spec also mentions vertical ghost hints, but as there are no vertical
      bluezones it is not clear how these should be used).

   Glyph
      A glyph is an image, often associated with one or several
      :term:`characters <Character>`. So the glyph used to draw "f" is
      associated with the character f, while the glyph for the "fi" ligature is
      associated with both f and i. In simple latin fonts the association is often
      one to one (there is exactly one glyph for each character), while in more
      complex fonts or scripts there may be several glyphs per character (In
      renaissance printing the letter "s" had two glyphs associated with it, one,
      the long-s, was used initially and medially, the other, the short-s, was used
      only at the end of words). And in the ligatures one glyph is associated with
      two or more characters.

      :term:`Fonts <Font>` are collections of glyphs with some form of
      mapping from character to glyph.

   Grid Fitting
      Before TrueType glyphs are rasterized they go through a process called
      :ref:`grid fitting <overview.TrueType>` where a tiny program (associated with
      each glyph) is run which moves the points on the glyph's outlines around
      until they fit the pixel grid better.

   Gothic
      The German monks at the time of Gutenberg used a black-letter writing style,
      and he copied their handwriting in his typefaces for printing. Italian type
      designers (after printing spread south) sneered at the style, preferring the
      type designs left by the Romans. As a term of contempt they used the word
      gothic, the style of the goths who helped destroy the roman empire.

   Graphite tables
      `Graphite <http://scripts.sil.org/RenderingGraphite>`__ is an extension to
      TrueType which embeds several tables into a font containing rules for
      contextual shaping, ligatures, reordering, split glyphs, bidirectionality,
      stacking diacritics, complex positioning, etc.

      This sounds rather like OpenType -- except that OpenType depends on the text
      layout routines knowing a lot about the glyphs involved. This means that
      OpenType fonts cannot be designed for a new language or script without
      shipping a new version of the operating system. Whereas Graphite tables
      contain all that hidden information.

      Apple's Advanced Typography provides a better comparison, but Graphite tables
      are supposed to be easier to build.

      SIL International provides a free
      `Graphite compiler <http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=GraphiteCompilerDownload>`__
      .

   Grotesque
      See also :term:`Sans Serif`.

   Han characters
      The ideographic characters used in China, :term:`Japan <Kanji>` and
      :term:`Korea <Hanja>` (and, I believe, in various other asian
      countries as well (Vietnam?)), all based on the writing style that evolved in
      China.

   Hangul
      The Korean :term:`Syllabary`. The only syllabary (that
      I'm aware of anyway) based on an alphabet -- the letters of the alphabet never
      appear alone, but only as groups of two or three making up a syllable.

   Hanja
      The Korean name for the :term:`Han characters`

   Hints
      These are described in detail in :ref:`the main manual <overview.Hints>`.
      They help the rasterizer to draw a :term:`glyph <Glyph>` well at
      small pointsizes.

   Hint Masks
      At any given point on a contour :term:`hints <Hints>` may not
      :term:`conflict <Conflicting hints>`. However different points in a
      glyph may need conflicting hints. So every now and then a contour will change
      which hints are active. Each list of active hints is called a hint mask.

   Hiragana
      One of the two Japanese syllabaries. Both Hiragana and
      :term:`Katakana` have the same sounds.

   Ideographic character
      A single character which represents a concept without spelling it out.
      Generally used to mean Han (Chinese) characters.

   Italic
      A slanted :term:`style <Style>` of a font, generally used for
      emphasis.

      Italic differs from :term:`Oblique` in that the
      transformation from the plain to the slanted form involves more than just
      skewing the letterforms. Generally the lower-case a changes to *a*, the
      serifs on lower-case letters like i (*i*) change, and the font generally
      gains a freer look to it.

   Jamo
      The letters of the Korean alphabet. These are almost never seen alone,
      generally appearing in groups of three as part of a
      :term:`Hangul` syllable. The Jamo are divided into three
      categories (with considerable overlap between the first and third), the
      choseong -- initial consonants, the jungseong -- medial vowels, and the
      jongseong -- final consonants. A syllable is composed by placing a choseong
      glyph in the upper left of an em-square, a jungseong in the upper right, and
      optionally a jongseong in the lower portion of the square.

   Kanji
      The Japanese name for the :term:`Han characters`.

   Katakana
      One of the two (modern) Japanese syllabaries. Both
      :term:`Hiragana` and Katakana have the same sounds.

   Kerning
      .. image:: /images/MetalType.jpeg
         :align: right

      When the default spacing between two glyphs is inappropriate the font may
      include extra information to indicate that when a given glyph (say "T") is
      followed by another glyph (say "o") then the advance width of the "T" should
      be adjusted by a certain amount to make for a more pleasing display.

      In the days of metal type, metal actually had to be shaved off the slug of
      type to provide a snugger fit. In the image on the side, the "F" on the left
      has had some metal removed so that a lower case letter could snuggle closer
      to it.

   Kern pair
      A pair of glyphs for which :term:`kerning <Kerning>` information has
      been specified.

   Kerning by classes
      The glyphs of the font are divided into classes of glyphs and there is a
      large table which specifies kerning for every possible combination of
      classes. Generally this will be smaller than the equivalent set of kerning
      pairs because each class will usually contain several glyphs.

   Knuth, Donald
      A mathematician who got so fed up with bad typesetting back in the 1970&80s
      that he created his own font design system and typographical layout program
      called, respectively, MetaFont and :term:`TeX`.

   Left side bearing
      .. image:: /images/sidebearings.png
         :align: right

      The horizontal distance from a glyph's origin to its leftmost extent. This
      may be negative or positive.

   `Lemur <http://bibliofile.duhs.duke.edu/gww/Berenty/Mammals/Lemur-catta/>`__
      A monotypic genus of prosimian primates, now found only on Madagascar but
      formally (about 50 million years ago) members of this family were much more
      wide spread.

   Ligature
      A single glyph which is composed of two adjacent glyphs. A common example in
      the latin script is the "fi" ligature |fi| which has a nicer feel to it than
      the sequence |f+i|.

      .. |fi| image:: /images/fi.png
      .. |f+i| image:: /images/f+i.png

   LGC
      Latin, Greek, Cyrillic. These three alphabets have evolved side by side over
      the last few thousand years. The letter forms are very similar (and some
      letters are shared). Many concepts such as "lower case", "italic" are
      applicable to these three alphabets and not to any others. (OK, Armenian also
      has lower case letters).

   Manyogana
      An early Japanese script, ancestral to both
      :term:`Hiragana` and :term:`Katakana`.
      `Manyogana <http://en.wikipedia.org/wiki/Manyogana>`__ used
      :term:`Kanji` for their phontic sounds, and over the years
      these kanji were simplified into hiragana and katahana.

   Metal Type
      .. image:: /images/MetalType.jpeg
         :align: right

      Once upon a time, printing presses smashed plates full of slugs of metal
      against paper.

   Monospace
      A font in which all glyphs have the same advance width. These are sometimes
      called typewriter fonts.

   Multi-layered fonts
      (FontForge's own term) PostScript type3 fonts and SVG fonts allow for more
      drawing possibilities than normal fonts. Normal fonts may only be filled with
      a single color inherited from the graphics environment. These two fonts may
      be filled with several different colors, stroked, include images, have
      gradient fills, etc..

      See :doc:`Also </ui/dialogs/multilayer>`

      * :doc:`general information </ui/dialogs/multilayer>`
      * Setting font type with :ref:`Element->Font Info->Layers <fontinfo.Layers>`

   Multiple Master Font
      A multiple master font is a PostScript font schema which defines an infinite
      number of related fonts. Multiple master fonts can vary along several axes,
      for example you might have a multiple master which defined both different
      weights and different widths of a font family, it could be used to generate:
      Thin, Normal, Semi-Bold, Bold, Condensed, Expanded, Bold-Condensed, etc.

      Adobe is no longer developing this format. Apple has a format which achieves
      the same effect but has not produced many examples. FontForge
      :doc:`supports both </ui/dialogs/multiplemaster>`.

   Namelist
      A mapping from unicode code point to glyph name.

   Non-Zero Winding Number Fill rule
      To determine if a pixel should be
      :ref:`filled using this rule <editexample2.even-odd-non-zero>` draw a line from here
      to infinity (in any direction) and count the number of times contours cross
      this line. If the contour crosses the line in a clockwise direction add 1, of
      the contour crosses in a counter clockwise direction subtract one. If the
      result is non-zero then fill the pixel. If it is zero leave it blank. This
      method is used for rasterizing fonts by truetype and older (before version 2)
      postscript.

      See Also :term:`Even-Odd Fill Rule`

   Ogham
      The old Celtic inscription script.

   OpenType
      A type of font. It is an attempt to merge postscript and truetype fonts into
      one specification.

      An opentype font may contain either a truetype or a postscript font inside
      it.

      It contains many of the same data tables for information like encodings that
      were present in truetype fonts.

      Confusingly it is also used to mean the advanced typographic tables that
      Adobe and MicroSoft (but not Apple) have added to TrueType. These include
      things like contextual ligatures, contextual kerning, glyph substitution,
      etc.

      And MS Windows uses it to mean a font with a 'DSIG' (Digital Signature)
      table.

   OpenType Tables
      Each opentype font contains a collection of tables each of which contains a
      certain kind of information. See
      :doc:`here for the tables used by FontForge </techref/TrueOpenTables>`.

   Oblique
      A slanted :term:`style <Style>` of a font, generally used for
      emphasis.

      Oblique differs from :term:`Italic` in that the
      transformation from the plain to the slanted form involves just skewing the
      letterforms.

   Overshoot
      .. image:: /images/overshoot.png
         :align: right

      In order for the curved shape of the "O" to appear to be the same height as
      the flat top of the "I" it tends to "overshoot" the cap-height (or x-height),
      or undershoot the baseline by about 3% of the cap-height (or x-height). For a
      triangular shape (such as "A") the overshoot is even greater, perhaps 5%.

      These guidelines are based on the way the eye works and the optical illusions
      it generates and are taken from Peter Karow's *Digital Formats for
      Typefaces*, p. 26).

      The overshoot is also dependent on the point-size of a font, the larger the
      point-size the smaller the overshoot should be. Generally modern fonts will
      be used at multiple point-sizes, but in some font families there are multiple
      faces for the different point-sizes, and in such a case the overshoot will
      probably vary from face to face.

      See also :term:`X-height`,:term:`Cap-height`, :term:`Ascender`,
      :term:`Descender`, :term:`Baseline`

   PANOSE
      A system for describing fonts. See HP's
      `PANOSE Classification Metrics Guide <http://panose.com/>`__, MicroSoft's
      `PANOSE structure (Windows) <https://msdn.microsoft.com/en-us/library/windows/desktop/dd162774(v=vs.85).aspx>`__
      and Robert Stevahn's
      `PANOSE: An Ideal Typeface Matching System for the Web <https://www.w3.org/Printing/stevahn.html>`__.
      There is also an extension called
      `PANOSE 2.0 <http://www.w3.org/Fonts/Panose/pan2.html>`__ and an online
      `discussion <http://forum.high-logic.com/viewtopic.php?t=941>`__.

      FontForge only knows about the classification scheme for Latin fonts. Other
      schemes exist for other scripts, such as
      `Classifying Arabic Fonts Based on Design Characteristics: PANOSE-APANOSE <http://spectrum.library.concordia.ca/981753/>`__.

   PfaEdit
      This was the early name for FontForge. The original conception was that it
      would only edit type1 ASCII fonts (hence the name), it quickly metamorphosed
      beyond that point, but it took me three years to rename it.

   Phantom points
      In a truetype font there are a few points added to each glyph which are not
      specified by the contours that make up the glyph. These are called phantom
      points. One of these points represents the left side bearing, and the other
      the advance width of the glyph. Truetype instructions (hints) are allowed to
      move these points around just as any other points may be moved -- thus
      changing the left-side-bearing or the advance width. Early versions of
      TrueType supplied just these two phantoms, more
      `recent versions <http://www.microsoft.com/typography/otspec/instgly.doc>`__
      also supply a phantom for the top sidebearing and a phantom for the vertical
      advance width.

   Pica
      A unit of length defined (in the US at least) to be 35/83cm (or approximately
      1/6th of an inch). This was used for measuring the length of lines of text
      (as "30 picas and 4 points long"), but not for measuring font heights.

      In Renaissance typography, before there were points, sizes of type had names,
      and "pica" was used in this context. As: "Great Canon", "Double Pica", "Great
      Primer", "English", "Pica", "Primer", "Small Pica", "Brevier", "Nonpareil"
      and "Pearl" (each name representing a progressively smaller size of type).
      and
      `See Caslon's type specimen sheet on Wikipedia. <http://en.wikipedia.org/wiki/Alphabet>`__

   Pica point
      The Anglo-American :term:`point <Point>`. With 72.27 points per inch
      ( 2.85pt /mm ).

   Point
      A point is a unit of measurement. There were three (at least) different
      definitions for "point" in common usage before the advent of computers. The
      one in use in the Anglo-Saxon printing world was the "pica point" with 72.27
      points per inch ( 2.85pt /mm ), while the one used in continental Europe was
      the didot point with 62 :sup:`2`/:small:`3` points per 23.566mm ( 2.66pt/mm
      or 67.54pt/inch ) and the French sometimes used the Mediaan point (72.78
      points per inch, 2.86pt/mm).

      The didiot and pica points were so arranged that text at a given point-size
      would have approximately the same :term:`cap-height <Cap-height>` in
      both systems, the didot point would have extra white-space above the capitals
      to contain the accents present in most non-English Latin based scripts.

      This has the interesting side effect that a font designed for European usage
      should have a smaller proportion of the vertical em given over to the text
      body. I believe that computer fonts tend to ignore this, so presumably
      european printers now set with more leading.

      As far as I can tell, computers tend to work in approximations to pica points
      (but this may be because I am in the US), PostScript uses a unit of 1/72nd of
      an inch.

      Originally fonts were not described by point size, but by
      :term:`name <Pica>`. It was not until the 1730s that
      Pierre Fournier that created the point system for specifying font heights.
      This was later improved upon by François Didiot (whence the name of the
      point). In 1878 the Chicago Type Foundry first used a point system in the US.
      In 1886 the US point was standardized -- the pica was defined to be 35/83cm,
      and the pica point defined to be 1/12th of that.

   Point Size
      In traditional typography a 10pt font was one where the block of metal for
      each glyph was 10 points high. The point size of a font is the unleaded
      baseline to baseline distance.

   Point of inflection
      A point on a curve where it changes from being concave downwards to concave
      upwards (or vice versa). Or in mathematical terms (for continuous curves)
      where :math:`\frac{d^2y}{dx^2} = 0` or infinity.

      Cubic splines may contain inflection points, quadratic splines may not.

   PostScript
      PostScript is a page-layout language used by many printers. The language
      contains the specifications of several different font formats. The main
      (FontForge) manual has a section describing how
      :ref:`PostScript differs from TrueType <overview.PT>`.

      * Type 1 -- This is the old standard for PostScript fonts. Such a font
        generally has the extension .pfb (or .pfa). A type 1 font is limited to a one
        byte encoding (ie. only 256 glyphs may be encoded).
      * Type 2/CFF -- This is the format used within
        :term:`OpenType` fonts. It is almost the same as Type 1,
        but has a few extensions and a more compact format. It is usually inside a
        CFF wrapper, which is usually inside an OpenType font. The CFF font format
        again only allows a 1 byte encoding, but the OpenType wrapper extends this to
        provide more complex encoding types.
      * Type 3 -- This format allows full postscript within the font, but it means
        that no :term:`hints <Hints>` are allowed, so these fonts will not
        look as nice at small point-sizes. Also most (screen) rasterizers are
        incapable of dealing with them. A type 3 font is limited to a one byte
        encoding (ie. only 256 glyphs may be encoded).
      * Type 0 -- This format is used for collecting many sub-fonts (of Type 1, 2 or
        3) into one big font with a multi-byte encoding, and was used for CJK or
        Unicode fonts.
      * Type 42 -- A :term:`TrueType <True Type>` font wrapped up in
        PostScript. Sort of the opposite from OpenType.
      * CID -- This format is used for CJK fonts with large numbers of glyphs. The
        glyphs themselves are specified either as type1 or type2 glyph format. The
        CID font itself has no encoding, just a mapping from CID (a number) to glyph.
        An set of external CMAP files are used to provide appropriate encodings as
        needed.

   Reference
      A :ref:`reference <overview.References>` is a way of storing the outlines of
      one glyph in another (for example in accented glyphs). Sometimes called a
      "component".

   Right side bearing
      .. image:: /images/sidebearings.png
         :align: right

      The horizontal distance from a glyph's rightmost extent to the glyph's
      advance width. This may be positive or negative.

   Sans Serif
      See the section on :term:`serifs <Serif>`.

   Script
      A :ref:`script <overview.Scripts>` is a character set and associated rules
      for putting characters together. Latin, arabic, katakana and hanja are all
      scripts.

   Serif
      .. flex-grid::
         :class: float-right

         * - latin

             greek

             cyrillic
           - .. image:: /images/serif-def.png

             a serif
           - .. image:: /images/sans-serif-def.png

             sans serif
         * - hebrew
           - .. image:: /images/BethSerif.png

             bet serif
           - .. image:: /images/BethSans.png

             sans serif

      Back two thousand years ago when the Romans were carving their letters on
      stone monuments, they discovered that they could reduce the chance of the
      stone cracking by adding fine lines at the terminations of the main stems of
      a glyph.

      These fine lines were called serifs, and came to have an esthetic appeal of
      their own. Early type designers added them to their fonts for esthetic rather
      than functional reasons.

      At the end of the nineteenth and beginning of the twentieth centuries,
      type-designers started designing fonts without serifs. These were initially
      called grotesques because their form appeared so strange, they are now
      generally called sans-serif.

      Other writing systems (Hebrew for one) have their own serifs. Hebrew serifs
      are rather different from latin (cyrillic, greek) serifs and I don't know
      their history. Hebrew serifs only occur at the top of a glyph

      I would welcome examples from other scripts of serifed and sans-serifed
      glyphs.

   SFD
      SplineFont DataBase. These are FontForge's own personal font representation.
      The files are ASCII and vaguely readable, the format is described
      :doc:`here </techref/sfdformat>`. As of 14 May 2008 the format has been registered
      with IANA for a MIME type:
      `application/vnd.font-fontforge-sfd <http://www.iana.org/assignments/media-types/application/>`__.

      Other people use sfd too. (Unfortunately)

      * Tops-10, on the Digital PDP-10 used sfd to mean "Sub File Directory". Tops-10
        made a distinction between top-level (home) directories, called "user file
        directories", and sub-directories.
      * TeX uses it to mean "Sub Font Definition" where a TeX sfd file contains
        information on how to break a big CJK or Unicode font up into small
        sub-fonts, each with a 1 byte encoding which TeX (or older versions of TeX)
        needed.
      * `Others... <http://filext.com/file-extension/SFD>`__

   SFNT
      The name for the generic font format which contains TrueType, OpenType,
      Apple's bitmap only, X11's bitmap only, obsolete 'typ1' fonts and Adobe's
      SING fonts (and no doubt others). The SFNT format describes how font tables
      should be laid out within a file. Each of the above formats follow this
      general idea but include more specific requirements (such as what tables are
      needed, and the format of each table).

   SIP
      Supplementary Ideographic Plane (0x20000-0x2FFFF) of unicode. Used for rare
      Han characters (most are no longer in common use) See Also

      * :term:`BMP` -- Basic Multilingual Plane (0x00000-0x0FFFF)
      * :term:`SMP` -- Supplementary Multilingual Plane
        (0x10000-0x1FFFF)
      * :term:`SSP` -- Supplementary Special-purpose Plane
        (0xE0000-0xEFFFF)

   SMP
      Supplementary Multilingual Plane (0x10000-0x1FFFF) of unicode. Used for
      ancient and artificial alphabets and syllabaries -- like Linear B, Gothic,
      and Shavian. See Also

      * :term:`BMP` -- Basic Multilingual Plane (0x00000-0x0FFFF)
      * :term:`SIP` -- Supplementary Ideographic Plane
        (0x20000-0x2FFFF)
      * :term:`SSP` -- Supplementary Special-purpose Plane
        (0xE0000-0xEFFFF)

   Spline
      A curved line segment. See the
      :ref:`section in the manual on splines <overview.intro>`. The splines used in
      FontForge are all second or third order :term:`Bézier splines` (quadratic
      or cubic), and `Raph Levien's <http://www.levien.com/>`__ clothoid splines.

   SSP
      Supplementary Special-purpose Plane (0xE0000-0xEFFFF) of unicode. Not used
      for much of anything. See Also

      * BMP -- Basic Multilingual Plane (0x00000-0x0FFFF)
      * :term:`SMP` -- Supplementary Multilingual Plane
        (0x10000-0x1FFFF)
      * :term:`SIP` -- Supplementary Ideographic Plane
        (0x20000-0x2FFFF)

   State machine
      A state machine is like a very simple little program, they are used on the
      mac for performing contextual substitutions and kerning. The
      :doc:`state machine dialog </ui/dialogs/statemachine>` is reachable from
      :ref:`Element->Font Info->Lookups <fontinfo.Lookups>`

      The "state machine" consists of a table of states, each state in turn
      consists of a series of potential transitions (to the same or different
      states) depending on the input. In state machines within fonts, the machine
      starts out in a special state called the start state, and reads the glyph
      stream of the text. Each individual glyph will cause a state transition to
      occur. As these transitions occur the machine may also specify changes to the
      glyph stream (conditional substitutions or kerning).

      :ref:`Example <editexample6-5.Apple>`

   Strike
      A particular instance of a font. Most commonly a bitmap strike is a
      particular pixelsize of a font.

   Style
      There are various conventional variants of a font. In probably any writing
      system the thickness of the stems of the glyphs may be varied, this is called
      the :term:`weight <Weight>` of a font. Common weights are normal and
      bold.

      In :term:`LGC` alphabets an :term:`italic <Italic>` (or
      :term:`oblique <Oblique>`) style has arisen and is used for emphasis.

      Fonts are often compressed into a :term:`condensed <Condensed>`
      style, or expanded out into an :term:`extended style <Extended>`.

      Various other styles are in occasional use: underline, overstrike, outline,
      shadow.

   SVG
      Scalable Vector Graphics. An XML format used for drawing vector images. It
      includes a :ref:`font format <generate.svg>`.

   Syllabary
      A syllabary is a phonetic writing system like an alphabet. Unlike an alphabet
      the sound-unit which is written is a syllable rather than a phoneme. In
      Japanese KataKana the sound "ka" is represented by one glyph. Syllabaries
      tend to be bigger than alphabets (Japanese KataKana requires about 60
      different characters, while the Korean Hangul requires tens of thousands).

      See Also: :term:`Abjad`, :term:`Abugida`, :term:`Alphabet` and the relevant
      `Wikipedia article <http://en.wikipedia.org/wiki/S%20yllabary>`__.

   TeX
      `A typesetting package <http://www.ctan.org/>`__.

   Thorn
      The germanic letter "þ" used for the unvoiced (English) "th" sound (as in the
      word "thorn"), I believe this is approximately the same sound value as Greek
      Theta. Currently a corrupt version of this glyph survives as "y:sup:`e`" for
      "the". See also :term:`Eth <Eth -- Edh>`.

   True Type
      A type of font invented by Apple and shared with MicroSoft. It specifies
      outlines with second degree (quadratic) :term:`Bézier <Bézier splines>`
      curves, contains innovative hinting controls, and an expandable series of
      tables for containing whatever additional information is deemed important to
      the font.

      Apple and Adobe/MicroSoft have expanded these tables in different ways to
      include for advanced typographic features needed for non-latin scripts (or
      for complex latin scripts). See :term:`Apple Advanced Typography` and
      :term:`OpenType`.

   TrueType Tables
      Each truetype font contains a collection of tables each of which contains a
      certain kind of information. See
      :doc:`here for the tables used by FontForge </techref/TrueOpenTables>`.

   Type 1
      A type of :term:`PostScript` font which see.

   Type 2
      A type of :term:`PostScript` font, used within :term:`OpenType` font wrappers.

   Type 3
      A very general type of :term:`PostScript` font, which see.

   Type 0
      A type of :term:`PostScript` font, which see.

   Type High
      In the days of metal type this was the height of the piece of metal -- the
      distance from the printing surface to the platform on which it rested.

   Typewriter
      See :term:`Monospace`.

   Unicode
      A character set/encoding which tries to contain all the characters currently
      used in the world, and many historical ones as well. See the
      `Unicode consortium <http://www.unicode.org/>`__.

      * :term:`BMP` -- Basic Multilingual Plane (0x00000-0x0FFFF)
      * :term:`SMP` -- Supplementary Multilingual Plane
        (0x10000-0x1FFFF)
      * :term:`SIP` -- Supplementary Ideographic Plane
        (0x20000-0x2FFFF)
      * :term:`SSP` -- Supplementary Special-purpose Plane
        (0xE0000-0xEFFFF)

      :ref:`More info. <bibliography.Unicode>`

   Undershoot
      See the explanation at :term:`Overshoot`.

   UniqueID
      This is a field in a PostScript font, it was formerly used as a mechanism for
      identifying fonts uniquely, then Adobe decided it was not sufficient and
      created the XUID (extended Unique ID) field. Adobe has now decided that both
      are unneeded.

      There is a very similar field in the TrueType 'name' table.

   UseMyMetrics
      This is a truetype concept which forces the width of an composite glyph (for
      example an accented letter) to be the same as the width of one of its
      components (for example the base letter being accented).

   Vertical Advance Width
      CJK text is often written vertically (and sometimes horizontally), so each
      CJK glyph has a vertical advance as well as a
      :term:`horizontal advance <Advance Width>`.

   Weight
      The weight of a font is how thick (dark) the stems of the glyphs are.
      Traditionally weight is named, but recently numbers have been applied to
      weights.

      .. list-table::

         * - Thin
           - 100
         * - Extra-Light
           - 200
         * - Light
           - 300
         * - Normal
           - 400
         * - Medium
           - 500
         * - Demi-Bold
           - 600
         * - Bold
           - 700
         * - Heavy
           - 800
         * - Black
           - 900
         * - Nord
           -
         * - Ultra
           -

   Width
      This is a slightly ambiguous term and is sometimes used to mean the
      :term:`advance width <Advance Width>` (the distance from the start of
      this glyph to the start of the next glyph), and sometimes used to mean the
      distance from the left side bearing to the right side bearing.

   X-height
      .. image:: /images/x-height.png
         :align: right

      The height of a lower case letter above the base line (with a flat top like
      "x" or "z" or "v" as opposed to one with a curved top like "o" or one with an
      ascender like "l") .

      See also :term:`Cap-height`, :term:`Ascender`, :term:`Descender`,
      :term:`Overshoot`, :term:`Baseline`

   XUID
      Extended Unique ID in a PostScript font. Now somewhat obsolete. See the
      explanation at :term:`UniqueID`.

   Zapf, Hermann
      Outstanding modern font designer.