How to Add Small Caps in FontForge
Adding small caps to a font in FontForge involves two primary
processes: designing the reduced-height capital glyphs and configuring
the OpenType layout substitutions so design software can display them
automatically. By creating uniquely named glyphs (such as
a.sc) and binding them to the smcp (Small
Capitals) and c2sc (Capitals to Small Capitals) lookup
tables, you can integrate native, professional small capitals into any
TrueType or OpenType font.
Step 1: Create the Small Cap Glyphs
True small caps are not merely scaled-down uppercase letters; they require proportional stroke weight adjustments to match the visual weight of standard lowercase letters.
- Open your font file in FontForge.
- Select Encoding > Add Encoding Slots... from the top menu, enter the number of glyphs you need (e.g., 26 for basic Latin), and click OK.
- Scroll to the new empty slots at the end of the font view.
- Select an empty slot, right-click, and choose Glyph Info.
- Name the glyph using a consistent suffix, such as
a.scfor lowercase "a",b.scfor "b", and so on. - Draw or paste your small cap designs into these slots. If generating
them from existing uppercase glyphs, copy the capital letter, paste it
into the
.scslot, scale it to approximately the x-height (often 70% to 80% of cap height), and adjust horizontal stem widths so they do not appear noticeably thinner than surrounding letters.
Step 2:
Set Up the Lowercase to Small Caps Feature (smcp)
Once your .sc glyphs are drawn and named, you must link
them to regular lowercase characters using OpenType features.
- Navigate to Element > Font Info.
- Select Lookups from the left-hand navigation, then ensure the GSUB (Glyph Substitution) tab is active.
- Click Add Lookup.
- In the lookup configuration dialog:
- Set Type to Single Substitution.
- Under Feature, select or type
smcp(Small Capitals). - Under Script/Language, add your targeted scripts
(e.g.,
latnwithdefault). - Click OK.
- Select the newly created lookup in the list and click Add Subtable.
- Accept the default name and click OK.
- In the subtable window, choose the option Default with
Suffix and enter
.sc(or your chosen suffix) into the field. - FontForge will automatically pair standard characters to their
.scequivalents (e.g.,amaps toa.sc). Click OK.
Step 3:
Set Up the Capitals to Small Caps Feature (c2sc)
To allow uppercase letters to convert to small caps alongside
lowercase letters, add the companion c2sc feature.
- In the GSUB tab of Font Info, click Add Lookup again.
- Set Type to Single Substitution.
- Under Feature, select or type
c2sc(Capitals to Small Capitals). - Add the appropriate script and language systems (e.g.,
latn>default), then click OK. - Highlight this lookup, click Add Subtable, and accept the default name.
- Manually map the capital characters to the corresponding small cap
glyphs (e.g.,
Amaps toa.sc), or use a suffix match if your naming scheme distinguishes them (such as uppercase-derived naming rules). - Click OK to close the subtable, then click OK to close the Font Info window.
Step 4: Validate and Export
- Navigate to File > Generate Fonts....
- Choose OpenType (CFF) or TrueType format.
- Save the font file under a new version name.
- Test the generated font in OpenType-compatible software (such as
Adobe InDesign, web browsers using CSS
font-variant: small-caps;, or LibreOffice) to ensure lowercase and uppercase characters switch to the proper small capital forms.