Contact Us


Initiative B@bel

WSI Guidelines


















Type Design


Design Tools



Font Downloads










Font FAQ



NRSI: Computers & Writing Systems


You are here: Rendering > Resources
Short URL: http://scripts.sil.org/Reprise

SIL Reprise — font conversion utility

breathing new life into SIL Encore fonts

Bob Hallissy, 2009-09-07


Version 1.3 is now available.

What is SIL Reprise?

Reprise is a utility to convert legacy-encoded fonts (e.g., SIL Encore fonts) into Unicode fonts so they can be used in Unicode-based applications. The goal is to produce a Unicode font that renders your Unicode data exactly as the legacy font renders your legacy data.

In addition to your legacy font, Reprise requires a fully reversible TECkit mapping between the legacy encoding and Unicode. In this context, "fully reversible" means that you can use it to convert Unicode data back to Legacy encoding and it renders properly (e.g., with appropriate contextual forms) using your Legacy font.

Reprise uses information from the TECkit mapping for two purposes:

  • to re-encode the glyphs in the font so they are associated with the correct Unicode codepoint, and
  • to create "smarts" in the font so that the contextual forms and ligatures in your font are displayed when appropriate.

Sounds tricky — what are the limitations?

There are encoding mapping constructs that Reprise cannot handle. The most important of these is multi-pass or re-ordered mappings. However, most legacy fonts built from the SIL Encore font system will not require these kinds of mappings. See below for more information about limitations and known problems.

Why not just use Doulos SIL or Charis SIL?

Doulos SIL and Charis SIL are much more complete, in terms of character repertoire and "smarts", than any font you can build with Reprise. If your requirements are met by one of these fonts then by all means use them rather than Reprise.

However, if you need other typefaces, e.g., the italic or bold variants of Doulos, or any of Sophia or Manuscript, or if you need alternate glyphs (e.g., of Eng) or special diacritic positioning that you have perfected in your Encore fonts, then while waiting for complete font families to be developed you could convert your existing legacy fonts using Reprise.

How does it work?

How SIL Reprise works

Reprise reads the legacy font and mapping description to create a new output font and, optionally, a Graphite GDL source file. You then compile the output font using Microsoft VOLT and/or GrCompiler to create a new font that has the smarts.

What are the requirements for using Reprise?

  • Your font license must permit modification of the font. Use of the fonts on your computer is normally governed by a license agreement. Many such licenses prohibit modification of the font. Please check your font license before proceeding. If you are using SIL Encore derived fonts (SIL Doulos, SIL Charis, SIL Sophia, SIL Manuscript) then a special waiver has been granted.
  • You must have the source for your TECkit mapping — it can be authored in either UTR22c (i.e., XML) or TECkit syntax. Most importantly: it must be fully reversible in the sense that you can use it to convert Unicode data back to legacy encoding and it renders properly (e.g., with appropriate contextual forms) using your Legacy font.
  • For TECkit-syntax maps, the TECkit compiler TECkit_Compiler.exe must be available on your PATH.
  • You should be comfortable with, or be able to get help with, configuring your system for and running command-line utilities.
  • Reprise generates both Graphite source (GDL) and VOLT source, but these need to be compiled before the font is usable.
    • If you want to use the font in a Graphite application (e.g., FieldWorks) then you will need to have the Graphite compiler installed.
    • If you want to use the font in an OpenType-aware application (e.g., Toolbox, Paratext or Office), then you will need  Microsoft VOLT installed.

Limitations and known issues

Please look over this carefully!

The Reprise technology is not a blackbox, pushbutton, system.

There are several individual steps in the process of building a font, and you have to use several different programs. Further, and especially during this early phase, there may be errors along the way.

Requires VOLT and/or Graphite compiler

Some users may want to use VOLT to "touch up" the OpenType logic built by Reprise, so that will always be an option. Eventually we hope to provide the option of automatic compilation of OpenType tables, thus bypassing VOLT. But for now you will need to use VOLT or Graphite to compile your fonts.

No multipass or reordered mappings

As mentioned above, Reprise does not support mappings that utilize multiple passes or reordering. This will not be a concern to most Encore font users, but could affect some others.

Bad mapping descriptions create bad fonts

The success of Reprise is dependent on having a good reverse (i.e., from Unicode back to Legacy) mapping information defined in your TECkit or UTR22c mapping description. However, I find that a lot of people are more concerned about the forward (Legacy to Unicode) mapping than they are with the reverse mapping.

Things to look out for include:

  • Your mapping rules should be written consistently with regard to whether they are creating/expecting composed or decomposed Unicode sequences. Be sure the header flags ExpectsNFC or ExpectsNFD are set appropriately.
  • Your mapping should include appropriate contextual rules, e.g., so a Unicode combining mark is mapped to the correct variant (e.g, high, low) of the Legacy diacritic.


If you are ready to have a go, then continue here.

© 2003-2017 SIL International, all rights reserved, unless otherwise noted elsewhere on this page.
Provided by SIL's Non-Roman Script Initiative. Contact us here.