Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

 

User Manual

 

Introduction

Fuser is a tool which takes a set of 'nfnt' files and embeds them as 'sbit' tables in a TrueType outline font. It is usually used in conjunction with another tool called Fissioner, which generates the 'nfnt' files. Once Fissioner splits the original outline font into 'nfnt' bitmaps, Fuser then rolls those back into the outline font as embedded bitmaps.


Embedded Bitmaps

This feature was mainly provided to allow Chinese/Japanese/Korean (CJK) typography at small point sizes. Typically, CJK characters are far more complex than their Roman counterparts, and without hinting, the outlines of such characters can be reduced to little "ink-blots" at small sizes. However, the complexity of the glyphs - and more importantly, the sheer size of CJK glyph sets (A Chinese font typically has in excess of 12,000 glyphs) - precludes the use of instructing.

A workaround solution is to have two versions of each CJK font: an outline font for the larger sizes (above 24pt) and a set of bitmaps for the commoner small point sizes (16, 14, 12 and 10pt). This used to mean manually having to change font (from the outline to the bitmap font) when you changed pointsize.

With the advent of QuickDraw GX, however, the same font file can now contain both bitmaps and outline data: where a bitmap exists, it is automatically used, otherwise the outline data is used to generate the characters as normal. The embedded bitmaps give designers of CJK fonts the best of both worlds: nicely rounded glyphs at large sizes (from the outline data) and legible, quickly-rendered glyphs at smaller sizes (from the bitmaps).

  Support for embedded bitmaps has been provided mainly to support CJK typography. Their use in non-CJK fonts is discouraged: TrueType instructing is more than adequate to ensure legibility of non-CJK fonts.  


Preserving Metrics

There is one problem with using embedded bitmaps in a font - sometimes the bitmap version of a font has completely different metrics than the outline version. This often happens when designers widen glyphs in the font to improve legibility. The result of embedding such a bitmap into an outline font can be seen below.

As you can see, the bitmap stands out like a sore thumb - it's far wider than the other sizes, which were generated from outlines. To avoid this, you should always try to design a bitmap version of the font with the same metrics that the outline version would have.

Fortunately, if you use Fissioner to generate the 'nfnt' source bitmaps Fuser uses, this problem will never arise. Because Fissioner produces bitmaps straight from the outline font data, they have the same spacing and other metrics as the outline-generated images at that point size. Thus, the Fissioner-generated font bitmaps will fit in seamlessly with the rest of the outline font (unless of course you radically change the letterforms!)


Versions

Fuser is currently available in a fat binary version, meaning it can be run on either a 68k machine or a PowerPC machine.


Using Fuser

Before starting, make sure that the 'sfnt' (TrueType font) into which you want to embed the bitmap information and the 'nfnt' suitcases created by Fissioner are in the same folder.

  1. Double click the Fuser application to launch (application is not drag launchable).Users of non-PowerPC Macintoshes should select Fuser68k instead of FuserPPC.


     

     

  2. The application will immediately come up asking you to select the font that you want to embed the 'sbit' information into. This font must be an 'sfnt'.

     

  3. The application will then ask you what point-size 'sbit' you wish to create. Input the point size to match the 'nfnt' that Fissioner created, and click OK.

    This operation does not modify the suitcase(s) containing the 'nfnt's. You enter the point size so that Fuser can look for the appropriately named 'nfnt' suitcases (in the folder where the 'sfnt' font lies) and then add their bitmaps to the 'sfnt'.

 

Repeat these steps to embed other bitmap sizes as desired.

 

Caveats

  • Fuser does not give any confirmation that the embedding was completed successfully. To confirm that the operation was completed successfully, select the new suitcase, and do a "Get Info..." command on it from the Finder: the new suitcase should be bigger than the original.
  • Fuser does not overwrite any 'sbit' information in the 'sfnt', it only appends it. If you run the Fuser using the same bitmap-size suitcases twice, Fuser will add the same information twice.
  • There is no way to easily edit or remove the 'sbit' information once it has been embedded into the 'sfnt'.


Contacts

To report bugs or suggest improvements to these tools, contact the Apple Fonts Group at applefonts@apple.com.