forked from fontforge/fontforge.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfontview.html
572 lines (572 loc) · 25.1 KB
/
fontview.html
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
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 6-Dec-2000 -->
<!-- AP: Last modified: 23-Jul-2008 -->
<TITLE>The Font View</TITLE>
<LINK REL="icon" href="fftype16.png">
<LINK REL="stylesheet" TYPE="text/css" HREF="/assets/css/old/FontForge.css">
</HEAD>
<BODY id="menued">
<div style="margin:0; height: 4 em; padding: 0.5em; background: red; color:yellow; text-align:center; font-size:1em; font-family: sans-serif;">
<p><a href="http://fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >This is part of the old website. New website begins at fontforge.github.io</a></p>
<p><a href="https://github.com/fontforge/fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >Are you a web developer? Help us migrate this page on Github</a></p>
</div>
<P ALIGN=CENTER>
<IMG SRC="/assets/img/old/fontforge-banner-420.jpeg" WIDTH=420 HEIGHT=80>
<DIV class="menucontainer">
<UL class="menubar">
<LI class="menu">
<A href="http://sourceforge.net/projects/fontforge/files/">Download</A>
<UL>
<LI>
<A href="http://sourceforge.net/projects/fontforge/files/fontforge-docs/"
>Documentation</A>
<LI>
<A href="http://sourceforge.net/projects/fontforge/files/fontforge-source/"
>Source</A>
</UL>
<LI>
<A HREF="overview.html#TOC">Introduction</A>
<LI>
<A href="editexample.html">Tutorial</A>
<LI class="menu">
<A href="fontview.html">Windows</A>
<UL>
<LI>
<A href="fontview.html" >Font</A>
<LI>
<A href="charview.html" >Outline Glyph</A>
<LI>
<small><A href="charview.html#Debugging" > Debugging TrueType</A></small>
<LI>
<small><A href="multilayer.html" > Type3 Glyphs</A></small>
<LI>
<A href="bitmapview.html" >Bitmap Glyph</A>
<LI>
<A href="metricsview.html" >Metrics</A>
</UL>
<LI class="menu">
<A href="fontinfo.html">Dialogs 1</A>
<UL>
<LI>
<A href="fontinfo.html" >Font Information</A>
<LI>
<small><A href="histogram.html" > Histogram Dialog</A></small>
<LI>
<A href="charinfo.html" >Glyph Information</A>
<LI>
<A href="getinfo.html" >Point, Reference Information</A>
<LI>
<A href="multilayer.html#Layer" >Type3 Layer Information</A>
<LI>
<A href="bdfinfo.html" >Bitmap Properties</A>
<LI>
<A href="baseline.html" >Baseline Information</A>
<LI>
<A HREF="justify.html">Justification Information</A>
<LI>
<A href="math.html" >Math Information</A>
<LI>
<A href="multiplemaster.html" >Multiple Master Information</A>
<LI>
<HR>
<LI>
<A href="lookups.html" >Lookups & subtables</A>
<LI>
<A href="metricsview.html#kernpair" >Kerning glyph pairs 1</A>
<LI>
<A href="kernpairs.html" >Kerning glyph pairs 2</A>
<LI>
<A href="metricsview.html#kernclass" >Kerning by classes</A>
<LI>
<A href="anchorcontrol.html" >Anchor Control</A>
<LI>
<A href="contextchain.html" >Contextual lookup dialog</A>
<LI>
<A href="statemachine.html" >Apple State Machine dialog</A>
<LI>
<A href="showatt.html" >Show Advanced Typography</A>
<LI>
<HR>
<LI>
<A href="problems.html" >Potential Problems dialog</A>
<LI>
<A href="validation.html" >Font Validation dialog</A>
</UL>
<LI class="menu">
<A href="generate.html">Dialogs 2</A>
<UL>
<LI>
<A href="filemenu.html#Open" >Open Fonts dialog</A>
<LI>
<A href="oflib.html" >Browsing OFLib dialog</A>
<LI>
<A href="generate.html" >Generate Fonts dialog</A>
<LI>
<A href="generate.html#Mac" >Generate Mac Family dialog</A>
<LI>
<HR>
<LI>
<A href="display.html" >Print & Display dialog</A>
<LI>
<A href="prefs.html" >Preferences dialog</A>
<LI>
<A href="groups.html" >Groups dialog</A>
<LI>
<HR>
<LI>
<A href="elementmenu.html#Bitmaps">Manage Bitmap Strikes</A>
<LI>
<A href="elementmenu.html#Regenerate">Re-Rasterize Bitmap Strikes</A>
<LI>
<HR>
<LI>
<A href="search.html" >Search & Replace dialog</A>
<LI>
<A href="Styles.html" >Style Transformation dialogs</A>
<LI>
<A href="transform.html" >Transformation dialog</A>
<LI>
<A href="elementmenu.html#Expand" >Expand Stroke dialog</A>
<LI>
<A href="tilepath.html" >Tile Path dialog</A>
<LI>
<A href="InsertTextDlg.html" >Insert Text dialog</A>
<LI>
<HR>
<LI>
<A href="metricsmenu.html#Width">Set width dialogs</A>
<LI>
<A href="metricsmenu.html#Width">Set left/right bearings</A>
<LI>
<A href="autowidth.html" >Auto Width & Kern dialogs</A>
<LI>
<HR>
<LI>
<A href="hintsmenu.html#Review" >Review PS Hints dialog</A>
<LI>
<A href="ttfinstrs.html" >TrueType Instruction Editor</A>
<LI>
<A href="ttfinstrs.html#cvt" >TrueType 'cvt ' Editor</A>
<LI>
<HR>
<LI>
<A href="selectbyatt.html" >Select by feature dialog</A>
<LI>
<A href="elementmenu.html#MassRename" >Rename Glyphs dialog</A>
<LI>
<A href="elementmenu.html#CompareFonts" >Compare Fonts dialog</A>
</UL>
<LI class="menu">
<A href="filemenu.html">Menus</A>
<UL>
<LI>
<A href="filemenu.html" >File</A>
<LI>
<A href="editmenu.html" >Edit</A>
<LI>
<A href="pointmenu.html" >Point</A>
<LI>
<A href="elementmenu.html">Element</A>
<LI>
<A href="toolsmenu.html">Tools</A>
<LI>
<A href="hintsmenu.html" >Hints</A>
<LI>
<A href="encodingmenu.html" >Encoding</A>
<LI>
<A href="viewmenu.html" >View</A>
<LI>
<A href="metricsmenu.html" >Metrics</A>
<LI>
<A href="cidmenu.html" >CID</A>
<LI>
<A href="mmmenu.html" >Multi Master</A>
<LI>
<A href="windowmenu.html" >Window</A>
<LI>
<A href="helpmenu.html" >Help</A>
</UL>
<LI>
<A href="faqFS.html">FAQ</A>
<LI>
<A href="IndexFS.html">Index</A>
<LI>
<A href="GlossaryFS.html">Glossary</A>
</UL>
</DIV>
<DIV id="in">
<H1 ALIGN=Center>
Font View
</H1>
<P>
<IMG SRC="/assets/img/old/AmbrosiaFV.png" WIDTH="423" HEIGHT="226">
<P>
The font view is a list of all the glyphs available in the given font.
<P>
You may chose to display it at various sizes, by default it will be displayed
with the outline font rasterized on a 24 pixel em square. You may display
it at 36, 48, 72 and 96 pixel sizes as well. You may also choose to look
at an anti-aliased greymap (the above image is anti-aliased). These are slower
to generate but look nicer (<A HREF="AA-Comparison.html">Comparison</A>).
<P>
If you have an encoding slot which has nothing in it (as opposed to an encoding
which maps to a space glyph) then that will be shown by a faint red X drawn
across the box.
<P>
Above each image of the glyphs in the font is a label indicating the glyph
in some conventional format. Usually this is just a small image of the glyph
in a standard font (as it is above), but you can change it to show the glyph's
name, unicode code point or encoding (in hex). In small views (24 pixel view
for instance) there may not be room for the entire label, and it will appear
truncated.
<P>
<IMG SRC="/assets/img/old/fvOutOfDateHinting.png" WIDTH="99" HEIGHT="66" ALIGN="Left">If
a glyph has been changed since it was last hinted (PostScript), or if a glyph
contains contours but has no instructions (TrueType), then its label will
be edged with blue bars. If the glyph has out of date instructions (TrueType),
then its label will be edged with red.
<P>
If one of your glyphs has something in its background layer then this will
be indicated visually (currently by darkening the background of the glyph
label).
<P>
Normally the view will display the foreground layer of the font, but you
may change it to display any layer (other than the background layer) with
<CODE><A HREF="viewmenu.html#FVLayers">View->Layers->?</A></CODE>
<P>
You may also display any of the bitmap fonts you have generated from the
outline glyphs. Simply go to the View menu and select the one you want.
<P>
If you look at a bitmap version of the font, and it does not contain a glyph
for which there is an outline glyph (ie. the font needs its bitmaps regenerated)
then the missing glyph will be outlined in red to bring it to your attention
more easily.
<P>
Small bitmap fonts will be magnified. If the pixelsize of the font is less
than 10 it will be shown 3 times normal size, if less than 20 twice normal
size.
<P>
Underneath the menu bar is some information on the last glyph selected. First
is the encoding of the glyph in the current font expressed in decimal. Next
is the unicode code point for the glyph (or ???? if it is not a unicode
character). Next the postscript name for the glyph, and finally the unicode
name. Not all unicode characters will have unicode names (the CJK characters
do not for example)
<P>
If you move the cursor to a glyph and let it rest there a small popup window
will appear containing information about that glyph. If you depress the control
key then this window is locked in place until you move the mouse.
<P>
You may display <A NAME="metrics">metrics</A> lines (baseline, origin and
advance width) in the font view. (View -> Show H Metrics). If you do so,
I suggest viewing the font at a large pixel size, otherwise the window looks
too confusing.
<TABLE BORDER CELLPADDING="2">
<TR>
<TD><P ALIGN=Center>
<IMG SRC="/assets/img/old/FVHMetrics.png" WIDTH="100" HEIGHT="116"></TD>
<TD><P ALIGN=Center>
<IMG SRC="/assets/img/old/FVVMetrics.png" WIDTH="100" HEIGHT="116"></TD>
</TR>
<TR VALIGN="Top">
<TD>A 96 pixel display showing the various horizontal metric lines.<BR>
The blue line is the baseline<BR>
The small red tick on the left marks the glyph origin.<BR>
The green line on the right shows where the advance width is while the
bottom green line shows how long it is. (normally you will not display
both at once)<BR>
The glyph is centered horizontally, and the font ascent is the top of the
box displaying it, while the descent is the bottom.</TD>
<TD>A 96 pixel display showing the various vertical metric lines.<BR>
The blue line down the center is the vertical baseline.<BR>
The red bar at the top (over writing the ascent line) is the vertical
origin.<BR>
The green line at the bottom shows where the vertical advance is while
the green line on the right shows how long it is. (normally you will
not display both at once)</TD>
</TR>
</TABLE>
<P>
You may select any number of glyphs in the font by dragging through them.
You may use shift-click to select (or deselect) additional glyphs. You may
also use the arrow keys to move around (and shift-arrow to select). To some
extent the order you select glyphs in will be remembered and a few commands
will make use of that.
<P>
You may drag and drop selected glyphs into
<DL>
<DT>
The metrics view
<DD>
Where they will be inserted into the display before the selected glyph (selected
in the metrics view) in the order in which you selected them in the font
view.
<DT>
The outline view
<DD>
Where they will appear as references
<DT>
The glyph info substitutions/ligature dlg
<DD>
Where they will appear as a substitution or ligature.
</DL>
<P>
The [Tab] key will move to the next glyph with something in it, and Shift-[Tab]
will move to the previous glyph with something interesting.
<P>
You can perform various operations on the selected glyphs:
<UL>
<LI>
Apply a general transformation (ie. move 20 units right and then rotate
180°)
<LI>
Expand all paths to be stroked paths
<LI>
Clean up areas where several paths intersect
<LI>
Simplify paths
<LI>
Build Accented Characters
<LI>
Regenerate bitmaps
<LI>
Autohint
<LI>
Control various metrics settings
</UL>
<P>
And, of course, you can cut and paste. Normally copying a glyph will copy
that glyph and any bitmaps associated with it, but you can use the
Edit->Copy From menu item to change this so that only entries from the
currently displayed font are copied. So if a 12 pixel font is being displayed
then only the bitmaps from the 12 pixel bitmap font will be copied in this
mode. Cut and Clear will clear those things which would be copied.
<P>
Paste is a little more complicated. In general it will paste whatever is
in the clipboard, regardless of the copy mode. So if the clipboard contains
a 12pixel bitmap and the font view is displaying outlines, then pasting it
will paste it into the 12pixel font none the less. There is one exception
to this. If the clipboard contains a 12 pixel bitmap and the font view is
currently display a 17pixel bitmap then the paste will go into the displayed
bitmap.
<P>
A Paste from the font view will delete whatever splines were in the glyph
beforehand (while a paste in the outline glyph view will merge the new set
of splines with the old). Paste from the font view will also set the width
of the glyph.
<P>
You can scroll the display to any particular character by typing that character.
There is also a dialog which allows a slightly more general way of jumping
around. You may type in the glyph's name (all glyphs in a font will be named),
its encoding value, its unicode encoding value, or (for 2 byte fonts) its
ku ten specification.
<P>
Pressing the right mouse button invokes a popup menu.
<H2>
<A NAME="Encodings">Encodings and Character Sets</A>
</H2>
<P>
A Character Set is a set of characters (for example all the letters of the
alphabet would be one character set). An encoding is a function that takes
a number (often between 0 and 255) and maps it to a character. Often these
two are used synonymously as an encoding generally implies a given character
set. (strictly speaking a character set is an unordered collection with no
implied encoding, and some encodings work with multiple character sets).
<P>
All fonts in fontforge have both a character set and an encoding. The character
set is just the set of characters in the font. The encoding is the way those
characters are ordered (or sometimes, the way the first 256 are ordered).
The font info dialog allows you to chose the encoding (and character set)
you wish for a font. Often a font will have a few extra glyphs that don't
fit into the character set specified by the encoding, these glyphs will be
placed at the end of the font and when the font is output (ie. postscript
is generated, or a bitmap font created) the glyphs will be included in the
font but they will not be encoded (this can be useful, especially in postscript
where it is possible to reencode a font at run time. Thus a font might have
all the glyphs needed both for a cyrillic character set and for a latin one,
but only one character set at a time would be encoded).
<P>
It is possible for an encoding not to be one-to-one. That is there may be
several characters that might lead to the same underlying glyph (the classic
example is the non-breaking space which often uses the same glyph as the
breaking space). When FontForge encounters such an encoding it will create
a character structure for each entry, one of those structures will contain
the data for drawing the glyph, the other(s) will contain a reference to
the one real character. All characters will have the same name. When FontForge
generates a font it looks for this case and turns it into a font whose encoding
vector contains multiple references to a glyph.
<P>
It is also possible to have an encoding where a single character can lead
to several different glyphs depending on the context. In arabic, for example,
most characters have at least four different glyphs depending on whether
the character is found initially, medially or finally in a word, or if it
appears by itself (isolated).
<P>
You may also create a custom encoding. (Generally, only the first 256 entries
of a Custom encodings will actually be part of a font's encoding vector).
You may change the name of any glyph in the font with the Element->Char
Info command. This will force the font to have a custom encoding.
<P>
There are many standard encodings built in to the program. There are 14 ISO
8859 encodings, the encoding used by the Macintosh for the US and Western
Europe, the encoding used by MS Windows for the US and Europe (which is a
slight extension of ISO 8859-1). There are also several 2-byte encodings
built in. Several of these are subsets of unicode (whose goal is to specify
every character currently used by humans). There are many large CJK (Chinese,
Japanese, Korean) two byte encodings. You can also add your own encodings
with the <A HREF="encodingmenu.html">Encoding</A> menu. A brief description
of what's in the encodings also appears <A HREF="encodingmenu.html">on that
page</A>.
<P>
There may be some slight differences between one vendor's definition of an
encoding and another. I try to follow those encodings specified by the Unicode
consortium. I notice that the Symbol encoding used by Microsoft differs from
the Unicode one (usually just be substituting synonyms, Omega for Ohm sign
for instance).
<P>
Adobe did not choose their naming conventions very well for Greek letters.
They assigned the name "mu" to Micro Sign, "Delta" to Increment and "Omega"
to Ohm Sign. So the Greek alphabet has ugly nameless holes in it.
<P>
CID fonts (see <A HREF="#CID">below</A>) have no encodings. Instead they
are designed to be associated with one or several cmap files which provide
encodings in a general way. cmap files are beyond the scope of FontForge.
Adobe has defined many which are freely
<A HREF="http://www.adobe.com/products/acrobat/acrrasianfontpack.html">available</A>.
<P>
There is one final encoding called "Glyph Order". This encoding is just the
glyphs in the order in which they were read from the original font.
<H3>
<A NAME="Unicode">Unicode</A> (ISO 10646)
</H3>
<P>
PostScript® assigns a name to every unicode character. Some of these
names are fairly obvious like "A" for the first letter of the latin alphabet,
others are more obscure like "afii57664" for hebrew alef, while others are
just "uni8765" for the unicode character at 0x8765.
<P>
PostScript Unicode encoding does not quite mesh with the unicode standard.
This is probably because PostScript deals in glyphs and Unicode deals with
characters so PostScript sees no distinction between space and nobreak space
(and so does not encode the latter) while Unicode does.
<P>
According to the <A HREF="http://www.unicode.org/">unicode website</A> the
first 256 character positions of unicode and ISO 8859-1 (ISO Latin1) are
the same. However the PostScript encoding of ISOLatin1 is slightly different
from that specified for unicode. I cannot explain the reasoning behind this.
FontForge does not use PostScript's ISOLatin1 Encoding vector, instead it
uses the first 256 code positions of the unicode encoding vector (slightly
modified by me to conform to Unicode conventions rather than PostScript.
So I include nobreak space and the soft-hyphen).
<P>
FontForge supports two slightly different unicode encodings. The first contains
only the first 65536 characters of unicode (those in the
<A HREF="http://www.unicode.org/roadmaps/bmp.html">Basic Multilingual
Plane</A>, or BMP), while the second can contain as many characters as you
have memory for. Character definitions are still sparse outside of the BMP
so at the moment you probably want to use just the BMP. Currently there are
only definitions for plane 0 (BMP, U+0000-U+ffff), Plane 1
(<A HREF="http://www.unicode.org/roadmaps/smp.html">SMP, Secondary Multilingual
Plane</A>, U+10000-U+1ffff), Plane 2
(<A HREF="http://www.unicode.org/roadmaps/sip.html">SIP, Supplementary
Ideographic Plane</A>, U+20000-U+2ffff), and Plane 14
(<A HREF="http://www.unicode.org/roadmaps/ssp.html">SSP Supplementary
Special-purpose Plane</A>, U+e0000-U+effff).
<H2>
<A NAME="CID">CID keyed fonts</A>
</H2>
<P>
The standard mechanisms that postscript provides work reasonably well for
alphabets and syllabaries, but the massive number of characters needed for
CJK (Chinese, Japanese or Korean) fonts require more complex machinations.
Adobe's current solution is the <A HREF="cidmenu.html#CID">CID-keyed font</A>,
a font consisting of several subfonts each a collection of glyph descriptions
with no encoding imposed on them and no names given to them.
<P>
If FontForge loads in a CID keyed font it will enable a special menu called
<A HREF="cidmenu.html">CID</A> which (among other things) displays the list
of all the sub-fonts in the font. When it starts up FontForge will pick
(practically at random) a sub-font to display in the font view. You may change
which font is displayed by the CID menu.
<P>
The CID menu also allows you to turn a normal font into a CID keyed font.
It creates a collection containing just the original font (you may add other
fonts, or blank fonts, later). But before it can create a collection FontForge
needs to know what glyph set you will be using. A glyph set is just a collection
of glyphs, and you may define your own if you wish (but if you do you have
to define your own cmap files, etc and it's probably not worth it). Adobe
has defined glyph sets for Japanese (actually there are two, one corresponding
to JIS208 and one to JIS212), Korean (Wansung & Johab), Traditional Chinese
(Big5) and Simplified Chinese (GB2312). Although these glyph sets are based
on the standards mentioned, they each have many additional glyphs. Adobe
also defines a glyph set that works for Unicode, but it is called "Identity"
instead. FontForge does not have these glyph sets built in to it, each must
be loaded the first time it is used. I provide one file for each of the above
glyph sets, they have an extension of ".cidmap", and you may download them
all <A HREF="cidmaps.tgz">from here</A>.
<P>
(There are also many other character sets floating around feel free to install
them yourself).
<P>
Adobe identifies each glyph set by a three values: a registry, an ordering
and a supplement. The registry is the name of the organization that is defining
the glyph set (Adobe calls itself Adobe), an ordering identifies the glyph
set (Japan1, Korea1, etc.) and the supplement indicates how many times the
ordering has been revised. Glyphs may only be added to an ordering, never
removed, so an old font will be perfectly described by a newer glyph set,
while a new font described by an old glyph set will have some unavailable
glyphs. So a full cidmap name will look like:<BR>
Adobe-Japan1-4.cidmap<BR>
Adobe-Korea1-2.cidmap
<P>
<FONT COLOR="Red"><STRONG><BIG>Warning:</BIG></STRONG></FONT> CID keyed fonts
(actually any CJK font) use massive amounts of memory in FontForge. I am
able to work on many of them on my 256M machine with 384M of swap space.
<P>
The <A HREF="editmenu.html#Remove-Undoes">Remove Undoes </A>command will
allow you to free up memory if you think you may be running short. FontForge
is not always able to protect itself against running out of memory, sometimes
the OS just sends it a SIGKILL signal.
<H2>
<A NAME="MM">Multiple Master Fonts</A>
</H2>
<P>
If the font is a <A HREF="multiplemaster.html#MM">Multiple Master </A>Font
there will again be several subfonts only this time all the subfonts contain
the same glyph set. Each subfont provides glyphs for one style of the font
family. The <A HREF="mmmenu.html">MM</A> menu allows you to control which
style of the family is visible in the font view, and provides a few other
commands for manipulating multiple masters.
<H2>
<A NAME="Vertical-Metrics">Vertical Metrics</A>
</H2>
<P>
CJK fonts generally should have vertical metrics. Latin (Cyrillic, Greek)
fonts generally should not. If FontForge reads in a font with vertical metrics
it will retain those metrics, but when FontForge creates a new font then
that font will not have vertical metrics enabled.
<P>
To enable vertical metrics for a font go to
<CODE><A HREF="fontinfo.html#vertical">Element->Font Info</A></CODE> and
select the <CODE>General</CODE> tab and check the <CODE>[*] Has Vertical
Metrics </CODE>checkbox. This will allow you to set the vertical origin for
the font and it will give every glyph a default vertical advance of the emsize
of the font (ascent+descent).
<P>
The vertical origin is the y height (in the design coordinate system) of
the origin for vertical metrics.
<P>
In the outline glyph view you will be able to adjust the vertical metrics
just as you adjust the horizontal metrics.
<P>
You can view the vertical metrics in the font view just as you can the horizontal
metrics with View->Show V Metrics.
<P>
<P ALIGN=Center>
-- <A HREF="editexample.html">Prev</A> -- <A HREF="overview.html">TOC</A>
-- <A HREF="charview.html">Next</A> --
</DIV>
</BODY></HTML>