This dialog allows you to set the name and unicode encoding of a given character. If you know the name of the character then PfaEdit can tell you the encoding (if you press Set From Name), similarly if you know the encoding then PfaEdit can tell you the name.
The name field contains a pull down list with (possibly) several synonyms for the name of this unicode code point.
The Glyph class field is for the opentype 'GDEF' table. You can usually leave
it set to automatic. PfaEdit will then figure out the class, and whether
it should be output into GDEF. You can see what PfaEdit does in
can assign an arbetrary (unicode) comment to the character.
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 character
to make it stand out in the font view.
There are 6 seperate sub-dialogs to help you edit the features of the GPOS and GSUB tables (some of these data can be converted into various of Apple's AAT tables, particularly 'morx'). The first of these is the alternate position dialog which allows you to associate certain modifications to a character's metrics with a feature in the GPOS table.
In the example at right the 'fwid' feature (full width) adds 400 units to the character's advance width and moves it horizontally by 200 units.
A new entry in the list may be created by pressing the [New] button and a dlg will pop up with fields for the metrics you can change. It will also have a field for a feature tag, and a set of check boxes for flags (these flags are not relevant here, but are included as an excercise in assinine completeness.
The [Delete] and [Edit] buttons should be fairly self-explanitory. [Copy] and [Paste] work as expected too. You can also paste something copied here into the font view (if you wish to have the same position information available in a large block of characters).
The pairwise positioning sub-dialog allows you to
change the positions of two characters when they occur next to one another.
The most common example of that is kerning (which is better done elsewhere,
the metricsview for example, but it can be done here if you really want to
A simple substitution replaces one glyph with another. Here the glyph "one" has a substitution to "onesuperior" when the 'sups' (Superscript) feature is invoked.
PfaEdit recognizes a special feature tag ' RQD' to indicate that this feature is required for the given script/language. Such a feature will always be applied.
You can generate a substitution most easily by draging a character from the font view and droping it here (you will then be prompted for a feature tag for the substitution table.
The multiple and alternate substitution sub-dialogs
are very similar to this one except that they can take multiple glyph names.
In a multiple substitution sub table 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.
The ligature field allows you to tell PfaEdit that the current character is a ligature composed of several other characters. PfaEdit will often be able to fill this in with the right default value, but occasionally you may want to change it. The value should be a list of postscript character names separated by spaces. If a character 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".
In the example at right the "m" character is one of a set of flags stored in the GSUB table. It indicates that combining marks should be ignored when looking for the ligature.
The GPOS and GSUB tables allow further refinements
of ligatures. You may classify a ligature as: Standard, Required, Discretionary,
Historic or Fraction. Required ligatures must be replaced, Standard ligatures
should be, Discretionary ones may be, and Historic ones should only be used
int appropriate circumstances. The pull down list on the Tag field allows
you to pick what type of ligature this should be.
In complicated Asian characters, postscript has a mechanism for controlling
the width of counters between stems. These are
called counter mask
In Latin, Cyrillic, Greek fonts only characters like "m" are allowed to have
counter masks, and only in very controlled conditions. See the description
of counter masks.
Some characters (ligatures, accented characters,
Hangul syllables, etc.) are built up out of other characters (at least according
to unicode). This pane of the dlg shows the components that Unicode says
make up the current character, if those componants are in the font then you
can use PfaEdit's Element->Build Accented or Element->Build Composit
commands to create the current character. 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
The Next and Prev buttons allow you to move from one character to the next (if, for example, you need to enter encodings for a range of characters).
The Done (or Cancel) button only Cancels work in the current character. If
you have already used Next or Prev then those earlier changes will not be
These two dialogs allow you to specify an otf feature tag and all the other impedimentia that go along with it. They are used by Character Info (above) to specify substitutions, positions, and ligatures, as well as by Font Info to specify anchor classes.
You must either specify an opentype feature tag (a four character tag like 'liga', see the section on GPOS and GSUB for feature tags), or an apple feature/setting value (Something like <2,2> where the first number is the feature and the second the setting for that feature).
In addition you must specify a set of flags which control the behavior of the feature. If your feature is to be used in right to left text then select that flag. If your feature is to be used to combine glyphs even if there are interviening mark glyphs (accents and such) then select Ignore Combining Marks.
And a collection of scripts and languages for which the substitution will be active. In the example above the substitution is active for the greek script and the default language (which here means all languages as none have been singled out for special treatment), the cyrillic script and the default language, and the latin script and several languages.
Clicking on the pulldown list produces a list of choices that are currently used in the font. The last choice allows you to change or add to this list.
Most of the time you will want to specify that your item should be active in just one script but in all languages of that script. For instance the "fl" ligature should probably always be applied in the latin script, no matter what the language is (except Turkish where ligatures should be explicitly disabled), however there is no point in having it active for cyrillic users as they will never see that combination of characters. On the other hand the es-zet ligature (German double-s, ß) has fallen by the wayside in all (I think) languages but German so that ligature should only be active for the latin script, german language.
And there are some characters that don't fall into one single script. The same digits are used for latin, cyrillic, greek, hebrew, (sometimes arabic) and many other script systems, so any ligatures of the digits (such as fractions) should be available in all script systems.
The script names used by PfaEdit are those specified by Microsoft and Adobe for opentype. These are almost compatible with ISO 15924 except that all opentype scripts are in lower case (while those in ISO 15924 all start with capital letters) and short script names (such as "Lao") are converted to 'lao ' rather than 'Laoo'. I have extended the set of opentype scripts with many of those in ISO 15924 by making them all lower case (I have not used everything from ISO 15924 because it contains script variants for things which I consider to be one script (eg. fraktur has a seperate script tag, but I consider it to be latin). I have also guessed at codes for Limbu, Tai Le, and Ugaritic ('limb','tail','ugrt'), which are scripts used in Unicode but not defined in ISO 15924.
This dialog shows all the script and language combinations which are in use in the current font. You may add a new combination or change an old one by pressing the obvious buttons.
If you want to specify a script or language that PfaEdit doesn't know about, then hold the control key down when pressing the [New...] or [Edit] buttons and you will get an unparsed dlg which will allow you to enter whatever you like (OpenType does not give a tag for the default language (it is has a special representation which does not involve tags), but for the sake of consistance I have assigned it the tag of 'dflt'. No 'dflt' tags will appear in the output font, instead they will be converted to the appropirate representation for the default language).
The language names used by PfaEdit are those specified by Microsoft and Adobe for opentype.
Note: In most cases the order of scripts in the list is irrelevant, but kerning
uses the initial script to determine the direction of the kern pair. So if
you have kerning on the digits, and want those to be active in both latin
and hebrew, you must use the unparsed dlg which allows you to order the scripts
yourself (or add a greek, or cyrillic script to the list (something that
comes before hebrew in alphabetic order and is left to right)).
This dialog shows all the scripts currently activated in this script-language collection. If you want to add a new script to the collection hold the control key down while clicking on the script. New scripts are added with the "default" language selected. If you want finer control over languages (ie. want to specify a language other than default) then double click on a script and you will get a dialog of languages.
This shows all languages active in the current script in the current
script-language collection. Some languages are not meaningful in a given
script (but I don't know enough to know which to remove so I include all
possible languages and appologize for extranious information). Use the control
key to select multiple languages. At least one language must be
-- Prev -- TOC -- Next --