forked from fontforge/fontforge.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
charinfo.html
464 lines (464 loc) · 18.9 KB
/
charinfo.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
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 29-Dec-2002 -->
<!-- AP: Last modified: 24-Feb-2009 -->
<TITLE>Char Info</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>
Glyph Info
</H1>
<H2>
<IMG SRC="/assets/img/old/charinfo.png" WIDTH="545" HEIGHT="508" ALIGN="Right">
<A NAME="Character">Glyph</A> Info
</H2>
<UL>
<LI>
<A HREF="charinfo.html#Unicode">Encoding and Unicode data</A>
<LI>
<A HREF="charinfo.html#comment">Glyph Comment</A>
<LI>
<A HREF="charinfo.html#position">Simple Glyph Positioning </A>(GPOS)
<LI>
<A HREF="charinfo.html#pairwise">Pair-wise Glyph Positioning (kerning)
</A>(GPOS)
<LI>
<A HREF="charinfo.html#substitution">Glyph Simple Substitution</A> (GSUB,
morx)
<LI>
<A HREF="charinfo.html#multiple">Glyph Alternate Substitution</A> (GSUB)
<LI>
<A HREF="charinfo.html#multiple">Glyph Multiple Substitution</A> (GSUB)
<LI>
<A HREF="charinfo.html#ligature">Glyph Ligature Substitution </A>(GSUB, morx)
<LI>
<A HREF="charinfo.html#components">Components</A>
<LI>
<A HREF="#CounterMasks">Counter Masks</A>
<LI>
<A HREF="#TeX">TeX & Math</A>
<LI>
<A HREF="#Variants">Variants</A>
<LI>
<A HREF="#TileSize">Tile Size</A>
</UL>
<P>
<A NAME="Unicode">This dialog </A>allows you to set the name and unicode
encoding of a given glyph. If you know the name of the glyph then FontForge
can tell you the encoding (if you press Set From Name), similarly if you
know the encoding then FontForge can tell you the name.
<P>
The name field contains a pull down list with (possibly) several synonyms
for the name of this unicode code point.
<P>
It is possible to have one glyph assigned to two unicode code points (This
is not recommended, but it is possible). If you wish to do this you may enter
additional unicode values in the "<CODE>Alternate Unicode</CODE>" area (set
the variation selector to 0).
<P>
Adobe has proposed an extension to OpenType to support unicode variation
selectors in the 'cmap' table (traditionally they have been done as ligatures
in the 'GSUB' table). If you wish to take advantage of this mechanism you
can also use the "<CODE>Alternate Unicode/Variation</CODE>" section to add
'cmap' data. If you wish the current glyph to be the default variation for
this font (the one that appears in the unicode encoding subtable), then set
the <CODE>Unicode Value</CODE> field above to the desired code point and
add an entry with the same code point and the appropriate variation selector
(as in the example above).
<P>
However if this glyph is not going to be the default glyph for this code
point, then set the <CODE>Unicode Value </CODE>field to -1, while entering
the appropriate code point and variation selector below.
<P>
The Glyph class field is for the opentype 'GDEF' table. You can usually leave
it set to automatic. FontForge will then figure out the class, and whether
it should be output into GDEF. You can see what FontForge does in
<A HREF="showatt.html">View->Show ATT</A>.
<P>
The <CODE>[] Mark for Unlink, Remove Overlap Before Save</CODE> checkbox
sounds absurdly complicated. Consider the glyphs Aring, Ccedilla, and Oogonek.
In traditional design the accent of each of these glyphs will overlap the
base letter. Unfortunately neither TrueType nor PostScript allows contours
to intersect. You can solve this problem by unlinking the references that
make up the glyph and then running Element->Remove Overlap. But that has
problems of its own... now when you change the base letter (or the accent)
the change will no longer be reflected in the composite glyph. This little
checkbox neatly solves that problem. If the glyph is composed of references
which overlap, and you wish to retain the references, but you wish it to
be output without an overlap, simply check this box. Then when it comes time
to save the font, ff will perform the unlink and then run remove overlap,
save the font, and then restore the glyph to its original
condition.<BR CLEAR=ALL>
<P>
<IMG SRC="/assets/img/old/charinfo-comment.png" WIDTH="307" HEIGHT="359" ALIGN="Right">You
can assign an arbitrary (unicode) <A NAME="comment">comment</A> to the glyph.
Simply type any text into this field. The comment is for your use, it will
not go into any generated fonts. You may also assign a color to a glyph to
make it stand out in the font view.<BR CLEAR=ALL>
<P>
<IMG SRC="/assets/img/old/charinfo-pos.png" WIDTH="359" HEIGHT="313" ALIGN="Right">There
are 6 separate sub-dialogs to help you edit the
<A NAME="features" HREF="lookups.html">lookups</A> of the
<A HREF="gposgsub.html">GPOS and GSUB</A> tables (some of these data can
be converted into various of Apple's AAT tables, particularly 'morx'). Lookups
and their subtables are described in some detail
<A HREF="overview.html#Lookups">here</A>, and may be manipulated and created
with the <A HREF="fontinfo.html#Lookups">Element->Font Info</A> commmand.
<P>
The first of sub-dialogs is the alternate <A NAME="position">position</A>
pane which allows you to associate certain modifications to a glyph's metrics
with a feature in the GPOS table.
<P>
In the example at right the first lookup subtable (which is associated with
the Scientific Inferiors feature) will move the y position of the glyph down
by 900 em-units, while the second subtable will move it down by 560 em-units.
Positioning subtables can also move glyphs horizontally and can adjust the
horizontal and vertical advances of the glyph. If you have configured FontForge
to support them you can also add device tables for pixel level corrections
to these adjustments. Most subtables will use only a few of the possibilities
open to them and FontForge generally hides unused columns -- but if you want
to see them just turn off [*] Hide Unused Columns.
<P>
A new entry in the list may be created by pressing the <New> button
and a popup menu will appear with all possible lookup subtables you could
add data to.
<P>
The <A NAME="pairwise">pairwise</A> positioning sub-dialog allows you to
change the positions of two glyphs when they occur next to one another --
better know as kerning. I think the <A HREF="metricsview.html">Metrics View
</A>provides a better place to do kerning, but you can do it here if you
wish.<BR Clear=Right>
<P>
<IMG SRC="/assets/img/old/charinfo-subs.png" WIDTH="474" HEIGHT="315" ALIGN="Right"> A simple
<A NAME="substitution">substitution</A> replaces one glyph with another.
Here the glyph "one" has a series of substitutions to various glyphs depending
on what lookup subtable is invoked.
<P>
The <A NAME="multiple">multiple</A> and alternate substitution sub-dialogs
are very similar to this one except that they can take multiple glyph names.
In a multiple substitution subtable each glyph is replaced by several other
glyphs (sort of the reverse of a ligature), while in the alternate substitution
sub-dialog each glyph is to be replaced by exactly one glyph from a list
and the user is to be given a choice as to which glyph is to be chosen.
<BLOCKQUOTE ID="lit">
<TABLE>
<TR VALIGN=BOTTOM>
<TD>"Hello Rabbit," he said, "is that you?"
<P>
"Let's pretend it isn't," said Rabbit, "and see what happens."</TD>
<TD>Winnie-The-Pooh<BR>
A. A. Milne, 1926</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
<P>
<BR Clear=Right>
<P>
<IMG SRC="/assets/img/old/charinfo-lig.png" WIDTH="411" HEIGHT="312" ALIGN="Right"> The
<A NAME="ligature">ligature</A> pane allows you to tell FontForge that the
current glyph is a ligature composed of several other glyphs. FontForge will
sometimes be able to fill this in with the right default value, but not always.
The value should be a list of postscript glyph names separated by spaces.
If a glyph may be viewed as two different ligatures then they may both be
specified in different lines. For example "ffi" may be viewed as a ligature
of "f" "f" and "i" or of "ff" and "i".
<P>
<BR Clear=Right>
<P>
<IMG SRC="/assets/img/old/charinfo-counters.png" WIDTH="307" HEIGHT="409" ALIGN="Right">
In complicated Asian glyphs, postscript has a mechanism for controlling the
width of <A NAME="CounterMasks">counters</A> between stems. These are called
counter mask
hints<IMG SRC="/assets/img/old/newcountermask.png" WIDTH="282" HEIGHT="392" ALIGN="Left">.
In Latin, Cyrillic, Greek fonts only glyphs like "m" are allowed to have
counter masks, and only in very controlled conditions. See the description
of <A HREF="hinting.html#Counter">counter masks</A>.<BR CLEAR=ALL>
<P>
<IMG SRC="/assets/img/old/charinfo-counters.png" WIDTH="307" HEIGHT="409" ALIGN="Right">
Some <A NAME="components">glyphs</A> (ligatures, accented glyphs, Hangul
syllables, etc.) are built up out of other glyphs (at least according to
unicode). This pane of the dlg shows the components that Unicode says make
up the current glyph, if those components are in the font then you can use
FontForge's <KBD>Element->Build->Build Accented </KBD>or
<KBD>Element->Build->Build Composite</KBD> commands to create the current
glyph. The information displayed here is informative only, you may not change
this field directly (it changes when you change the unicode value or glyph
name associated with this glyph).<BR CLEAR=ALL>
<P>
<IMG SRC="/assets/img/old/charinfo-tex.png" ALIGN="Right" WIDTH="544" HEIGHT="364"> The
<A NAME="TeX">TeX</A> pane allows you to specify glyph specific information
used in TeX tmf files. The height and depth fields are often the same as
the glyph's bounding box (if you don't fill these in that's what fontforge
will use by default), but they should be corrected for optical distortion,
so in glyphs like "o" these fields should be clipped to the x-height and
baseline (ff will attempt to do this when you press <CODE>[Guess]</CODE>).
<P>
The Italic correction is used by both TeX and the new OpenType
<A HREF="math.html#Italic">MATH</A> table. In the MATH table you may also
specify a device table to correct rounding errors at small pixel sizes.
<P>
The Top Accent Position is another concept from the
<A HREF="math.html#TopAccent">MATH table</A> and provides a horizontal position
over which to position math accents (vertical positioning is done somewhere
else).
<P>
For extremely tall glyphs the normal mechanisms for positioning superscripts
are inappropriate and the <CODE>[] Is Extended Shape</CODE> checkbox alerts
the typesetter to this fact.
<P>
The [Math Kerning] button brings up the <A HREF="math.html#MathKern">Math
Kerning dialog</A> which gives you fine control over the placement of subscripts
and superscripts near the glyph.<BR CLEAR=ALL>
<H3>
<A NAME="Variants">Variants </A>
</H3>
<P>
<IMG SRC="/assets/img/old/charinfo-variants.png" WIDTH="545" HEIGHT="384" ALIGN="Right">There
are two panes for variants, one for glyphs that get longer horizontally and
one for glyphs that get longer vertically.
<P>
In mathmatical typesetting the size of a parenthesis will depend on the vertical
size of the formula within that parenthesis. As formulae can be arbetarily
complex they may be arbetarily tall, so there needs to be a way of making
arbetarily big parentheses. This pane provides two mechanisms.
<P>
At the top you may specify a list of prebuilt glyphs each a little bigger
than the one before.
<P>
Underneath you may specify a way of building really big parentheses by combining
several component glyphs. See the description of this in the
<A HREF="math.html#GlyphConstruction">MATH Info dialog </A>for more
details.<BR CLEAR="ALL">
<H3>
<A NAME="TileSize"><IMG SRC="/assets/img/old/charinfo-tilesize.png" WIDTH="445" HEIGHT="374"
ALIGN="Right">Tile Size</A>
</H3>
<P>
This only applies when editing type3 fonts. Even then it is only meaningful
if the current glyph is used as a
<A HREF="multilayer.html#Patterns">pattern</A> in some other glyph.
<P>
When a glyph is used as a pattern, the size of the pattern tile defaults
to the bounding box of the glyph used. This means there will be no whitespace
around the tile. Sometimes that is desirable (if the tiles are to looks
as though they touch), sometimes it is not. This provides control over the
whitespace that surrounds the drawn region of the tile.
<P>
You can specify that you want a constant margin of white space around all
edges of the tile, or you can specify explicitly the coordinates of the
tile.<BR CLEAR="ALL">
<P>
The Next and Prev buttons allow you to move from one glyph to the next (if,
for example, you need to enter encodings for a range of glyphs).
<P>
The Cancel button now cancels all changes made with this instance of the
dialog.<BR Clear=Right>
<BR CLEAR=ALL>
<P>
See Also:
<UL>
<LI>
<A HREF="fontinfo.html">The font info dialog</A>
<LI>
<A HREF="getinfo.html">The get info dialogs</A>
<LI>
<A HREF="math.html">The MATH info dialog</A>
</UL>
<P ALIGN=Center>
-- <A HREF="elementmenu.html">Prev</A> -- <A HREF="overview.html">TOC</A>
-- <A HREF="elementmenu.html">Next</A> --
</DIV>
</BODY></HTML>