A group is a collection of glyphs. It may be any collection that appeals to you. My expectation is that groups will be used to collect glyphs which are visually associated (in some way) close together so that they may be examined and changed without the visual clutter of the rest of the font. So you might make a group that consisted of "b d p q" which often have similar shapes, or in a Korean font you might wish to look at all sylables with a give cho-sung.
FontForge treats groups like baby encodings. In
the image at left, it is displaying a font showing only the
glyphs "b d p q". The order the glyphs are mentioned in the
group is the order in which they will be displayed in the
fontview -- and, like an encoding the group may be compaced so
there are no empty holes for missing glyphs (so if the group
had contained "b d p uniAC00 q" and the font was missing
uniAC00, the display would be exactly the same) or uncompacted
with holes.
Glyphs in a group may be specified by glyph name, by unicode
code point or by a range of unicode values. The examples above
all used glyph names. A unicode code point looks like "U+XXXX"
(where XXXX indicates a hex number). Occasionally fonts will
use this notation to name their glyphs (they should not, but
some do), that should not be a significant problem because such
glyphs should have the obvious unicode code points and so will
still match. A range of unicode code points looks like
"U+XXXX-U+YYYY" (XXXX < YYYY).
A groups are heirarchical. A group may either contain a list of glyphs, or a list of sub-groups. (If you display (in the fontview) a group which contains subgroups you will see all glyphs in all sub-groups. A glyph may occur more than once if that is desirable. So a group could contain "A A A A" and the fontview would show four copies of "A" (I'm not sure why you'd want to do that, but you could). As you design your groups you can ask fontforge to check so that you do not inadvertently put the same glyph in more that one group (or in the same group twice).
The Display by Groups dialog is shown in the screen shot at right. The top-level group is called "Groups" it has two children, one called "Vowels" which is a terminal group and contains the glyph names of the latin vowels, the other called "consonants" which itself contains three subgroups.
Any group with children will have (to the right of its name) a square box containing either a "+" or a "-", clicking on this box will either expand all the sub-groups of the group, or contract them into invisibility (here all are expanded).
Clicking on a group's name will select it (clicking again
will deselect it). Here groups "ascenders" and "descenders" are
selected. If you were to press [OK]
then the
fontview would show the glyphs associated with "b d f h k l t g
j p q y" in that order.
Underneath everything is a check box you may use to specify
whether you want the results compacted or not.
This dialog is a bit more complicated than the previous one. It again contains the group list at the top of the dialog, but here only one group at a time may be selected, and information about it is displayed in the bottom part of the dialog and is subject to change.
You can [Delete]
the group (this also deletes
any subgroups). If the group contains no glyphs then you may
add sub-groups to it. Every group has a name. If the group
contains no subgroups you may add glyphs to it.
The [Set]
and [Select]
buttons
interact with the selection in the associated fontview.
[Set]
sets the glyph list to the glyphs selected
in the fontview, while [Select]
changes the
selection to the glyphs specified in the glyph list. Normally
glyphs are entered into the glyph list by
<*>Name
, but you can change the radio button
to <*>Unicode
and glyphs will be entered as
U+0067 U+006A U+0070-U+0071 U+0079.
If you select [*]No glyph duplicates
then ff
will prevent you from entering the same glyph name (or unicode
code point) twice (ff will allow you to enter "A" and U+0041 --
because I'm lazy and this is harder to check for and less
likely to occur). If you set this in a parent group then there
can be no glyph duplicates among any of its children.