Building accented glyphs with Glyph Construction ↩
- Before you start
- Defining base glyphs and accents
- Adjusting vertical positions
- Adjusting horizontal positions
- Building the accented glyphs
This page contains a step-by-step guide for building precomposed accented glyphs using the Glyph Construction language and the Glyph Builder interface.
Before you start
- Make sure that the Glyph Construction extension is installed.
- If it isn’t, see instructions for installing extensions manually or using Mechanic.
- Prepare a list with names of accented glyphs to build.
- See Defining character sets for information about language support.
Our example font and glyph names list
To keep things simple, we’ll start from a very basic font containing only lowercase/uppercase Latin characters and a few accents. Of course, your font may include as many other glyphs as you like.
- The font also contains the
dotlessi
glyph, which is needed to build accented versions ofi
.- The font does not contain any anchors or guidelines.
These are the names of the accented glyphs we are going to build. Your list of glyph names can be a lot longer.
# uppercase
Aacute
Acircumflex
Atilde
Agrave
Ccedilla
Eacute
Ecircumflex
Iacute
Oacute
Ocircumflex
Otilde
Uacute
# lowercase
aacute
acircumflex
atilde
agrave
ccedilla
eacute
ecircumflex
iacute
oacute
ocircumflex
otilde
uacute
Defining base glyphs and accents
The first step in the creation of glyph constructions is to define each accented glyph as the ‘sum’ of its components. For example, the accented glyph Aacute
is the combination of the base glyph A
with the accent glyph acute
. Putting it together: Aacute = A + acute
.
Here is the same list of glyph names with the components for each glyph:
# uppercase
Aacute = A + acute
Acircumflex = A + circumflex
Atilde = A + tilde
Agrave = A + grave
Ccedilla = C + cedilla
Eacute = E + acute
Ecircumflex = E + circumflex
Iacute = I + acute
Oacute = O + acute
Ocircumflex = O + circumflex
Otilde = O + tilde
Uacute = U + acute
# lowercase
aacute = a + acute
acircumflex = a + circumflex
atilde = a + tilde
agrave = a + grave
ccedilla = c + cedilla
eacute = e + acute
ecircumflex = e + circumflex
iacute = dotlessi + acute
oacute = o + acute
ocircumflex = o + circumflex
otilde = o + tilde
uacute = u + acute
Accented glyphs may have more than one accent, for example:
Aringacute = A + aring + acute
. See also the Vietnamese examples included in the repository.
To preview the glyph constructions we just wrote, open your font, open the Glyph Builder, and paste the glyph construction rules into the left column. Then click on the Update button to refresh the preview. You should see something like this:
This does not look right yet, but it’s a start. Each accented glyph is already being assembled from its components; the accents, however, are simply placed in their original positions. We still need to add instructions to position the accents.
Adjusting vertical positions
As the next step, we’ll add a positioning rule for each accent. The Glyph Construction language offers several positioning methods; we’ll use positioning by reference, which takes two values (one for x
and other for y
alignment).
The vertical alignment will be controlled by two variables with y
-values for upper- and lowercase glyphs. The horizontal alignments, for now, will be specified using the calculated center
position.
Putting it all together:
# define alignment positions
$top_uc = 770
$top_lc = 570
# uppercase
Aacute = A + acute@center,{top_uc}
Acircumflex = A + circumflex@center,{top_uc}
Atilde = A + tilde@center,{top_uc}
Agrave = A + grave@center,{top_uc}
Ccedilla = C + cedilla@center,bottom
Eacute = E + acute@center,{top_uc}
Ecircumflex = E + circumflex@center,{top_uc}
Iacute = I + acute@center,{top_uc}
Oacute = O + acute@center,{top_uc}
Ocircumflex = O + circumflex@center,{top_uc}
Otilde = O + tilde@center,{top_uc}
Uacute = U + acute@center,{top_uc}
# lowercase
aacute = a + acute@center,{top_lc}
acircumflex = a + circumflex@center,{top_lc}
atilde = a + tilde@center,{top_lc}
agrave = a + grave@center,{top_lc}
ccedilla = c + cedilla@center,bottom
eacute = e + acute@center,{top_lc}
ecircumflex = e + circumflex@center,{top_lc}
iacute = dotlessi + acute@center,{top_lc}
oacute = o + acute@center,{top_lc}
ocircumflex = o + circumflex@center,{top_lc}
otilde = o + tilde@center,{top_lc}
uacute = u + acute@center,{top_lc}
Click on the Update button to refresh the preview. You should see something like this:
This looks a lot better already. You can tweak the values of top_uc
and top_lc
until you are satisfied with the vertical position of the accents.
The horizontal positions are not quite there yet, though. Look at the accents over a
, for example – they don’t really look centered. This is because we’re using the mathematical (calculated) center, not the optical one. We’ll improve that in the next step.
Adjusting horizontal positions
The horizontal alignment of accents were specified with the reference positioning mode and the keyword center
, which, in the absence of any anchors or guides, will use the calculated reference positions.
In this approach, anchors or guidelines are needed only for handling exceptions – in this case, glyphs in which the horizontal optical center is not the calculated one.
So, in order to fix the horizontal alignment of accents in a
, we’ll add a guideline named center
to override the calculated center position.
Update the preview, and see how the accents are now aligned to the guideline:
That’s it! Quick and easy positioning of accents using just one guide and no anchors :)
Don’t forget to save your Glyph Construction rules as a
.glyphConstruction
file when you’re done, so you can reuse them later with other fonts.
Building the accented glyphs
To build the accented glyphs in the current font, click on the Build Glyphs button. The following sheet with options will appear:
Select the option Auto Unicodes if your accented glyphs are named according to the AGLAdobe Glyph List. Documents all glyph names used in Adobe’s pre-Unicode fonts.
This includes afii
-names for Cyrillic glyphs, etc. or GNFULGlyph Name Formatted Unicode List is a system for generating glyph name lists from official Unicode data. lists. If you’ve used custom glyph names, you can define the unicodes directly in the glyph construction rules. For example:
# uppercase
Aacute = A + acute@center,{top_uc} | 00C1
Acircumflex = A + circumflex@center,{top_uc} | 00C2
Atilde = A + tilde@center,{top_uc} | 00C3
...etc...
Finally, click on the Build button to build all glyphs in the font.