www.delorie.com/gnu/docs/fontutils/fontu.html   search  
Buy GNU books!

Font utilities

[Top] [Contents] [Index] [ ? ]

Font utilities

This manual documents how to install and run the GNU font utilities. It corresponds to version 0.7 (released in March 2000).

The introduction briefly describes the purpose and philosophy of the font utilities. The overview gives details on their general usage, especially how they interact, and describes various things which are common to all or most of the programs.

The first part of this master menu lists the major nodes in this Info document, including the index. The rest of the menu lists all the lower level nodes in the document.

1. Introduction  A brief introduction.
2. Installation  How to compile and install the font utilities.
3. Overview  Commonalities to the programs, a roadmap to how they fit together, and examples of using them in concert.
4. Bugs  How, why, and where to report bugs.
5. File formats  These programs read and write many files.
6. Imageto  Extracting a font from a scanned image.
7. IMGrotate  Rotating an image.
8. Fontconvert  Manipulation of bitmap fonts.
9. Charspace  Adding character metrics to a font.
10. Limn  Making outlines from bitmaps.
11. BZRto  Converting generic outlines to other formats.
12. BPLtoBZR  Converting plain text to binary BZR fonts.
13. XBfe  Hand editor for bitmap fonts under X11.
14. BZRedit  Hand editor for outline fonts under Emacs.
15. GSrenderfont  Rasterize PostScript fonts.
16. Enhancements  Future projects.
A. GNU GENERAL PUBLIC LICENSE  Copying and sharing the font utilities.
B. Regain your programming freedom  
Index  General index.

 -- The Detailed Node Listing ---


2.1 The configure script  Options and frills for the `configure' script.
2.2 Prerequisites  What's needed before installation.
2.3 Problems  Known trouble.


2.2.1 Archives  Where to find programs.


3.1 Picture  A pictorial overview.
3.2 Creating fonts  How to use the programs together.
3.3 Command-line options  Many aspects of the command line are common to all programs.
3.4 Font searching  How fonts and other files are looked for.
3.5 Font naming  How to name fonts.

Creating fonts

3.2.1 Font creation example  A real-life example.

Command-line options

3.3.1 The main input file  Each program operates on a "main" font.
3.3.2 Common options  Some options are accepted by all programs.
3.3.3 Specifying character codes  Ways of specifying single characters.
3.3.4 Common option values  Some options need more information.

Specifying character codes Named character codes  Character names are looked up in the encoding. Numeric character codes  Decimal, octal, hex, or ASCII.


4.1 Bug criteria  Have you found a bug?
4.2 Bug reporting  How to effectively report a bug.

Bug reporting

4.2.1 Necessary information  What you need to send.
4.2.2 Unnecessary information  What you don't need to send.
4.2.3 Documentation bugs  Report the bugs in the manual, too.

File formats

5.1 File format abbreviations  The alphabet soup of font formats.
5.2 Common file syntax  Some elements of auxiliary files are constant.
5.3 Encoding files  The character code-to-shape mapping.
5.4 Coding scheme map file  The coding scheme string-to-filename mapping.

Encoding files

5.3.1 Character names  How to write character names.
5.3.2 Ligature definitions  How to define ligatures.
5.3.3 GNU encodings  Why we invented new encodings for GNU.


6.1 Imageto usage  Process for extracting fonts from an image.
6.2 IFI files  IFI files supply extra information.
6.3 Invoking Imageto  Command-line options.

Imageto usage

6.1.1 Viewing an image  Seeing what's in an image.
6.1.2 Image to font conversion  Extracting a font.
6.1.3 Dirty images  Handling scanning artifacts or other noise.


7.1 IMGrotate usage  Doing the image rotation.
7.2 Invoking IMGrotate  Command-line options.

IMGrotate usage

7.1.1 Clockwise rotation  Rotating clockwise.
7.1.2 Flip rotation  FLipping end-for-end.


8.1 Invoking Fontconvert  Command-line options.

Invoking Fontconvert

8.1.1 Fontconvert output options  Specifying the output format(s).
8.1.2 Character selection options  What characters to operate on.
8.1.3 Character manipulation options  Changing characters' appearance.
8.1.4 Fontwide information options  Changing global information in a font.
8.1.5 Miscellaneous options  Other options.


9.1 Charspace usage  Details on improving the character metrics.
9.2 CMI files  You specify the metrics in a separate file.
9.3 Invoking Charspace  Command-line options.

CMI files

9.2.1 CMI tokens  The building blocks of CMI files.
9.2.2 char command  Defining a character's side bearings.
9.2.3 char-width command  Defining side bearings via the set width.
9.2.4 define command  Introducing a new identifier.
9.2.5 kern command  Defining a kerning pair.
9.2.6 codingscheme command  Specifying the font encoding.
9.2.7 fontdimen command  Defining additional font parameters.
9.2.8 CMI processing  How Charspace reads CMI files.

fontdimen command TFM fontdimens  All the valid fontdimens.


10.1 Limn algorithm  How Limn fits outlines to bitmaps.
10.2 Invoking Limn  Command-line options.

Limn algorithm

10.1.1 Finding pixel outlines  Extracting the edges from the bitmap.
10.1.2 Finding corners  Finding subsections of each outline.
10.1.3 Removing knees  Removing extraneous points.
10.1.4 Filtering curves  Smoothing the outlines.
10.1.5 Fitting the bitmap curve  Doing the fitting.
10.1.6 Changing splines to lines  Use straight lines where possible.
10.1.7 Changing lines to splines  Sometimes it isn't possible.
10.1.8 Aligning endpoints  If points are close enough, line them out.
10.1.9 Displaying fitting online  Seeing the results as Limn runs.

Fitting the bitmap curve Initializing t  Initializing the parameter values. Finding tangents  Computing the direction of the curve at the endpoints. Finding the spline  Where are the control points? Reparameterization  Changing the parameter values. Subdivision  Splitting the curve into pieces.


11.1 Metafont and BZRto  Output as a Metafont program.
11.2 Type 1 PostScript fonts and BZRto  Output as a Type 1 PostScript font.
11.3 Type 3 PostScript fonts and BZRto  Output as a Type 3 PostScript font.
11.4 CCC files  Creating additional characters.
11.5 Invoking BZRto  Command-line options.
11.6 BZR files  The technical definition of BZR format.

Metafont and BZRto

11.1.1 Metafont output at any size  Making larger or smaller fonts.
11.1.2 Proofing with Metafont  Metafont can help with debugging fonts.

CCC files

11.4.1 CCC setchar statements  Statements for including a character.
11.4.2 CCC move statements  Statements for moving to a new position.

BZR files

11.6.1 BZR format introduction  General concepts and definitions.
11.6.2 BZR preamble  The beginning.
11.6.3 BZR characters  The middle.
11.6.4 BZR postamble  The end.

BZR characters BZR character beginnings  Giving character metrics. BZR character shapes  Defining the outline(s).


12.1 BPL files  Bezier property list file format.
12.2 Invoking BPLtoBZR  Command-line options.

BPL files

12.1.1 BPL preamble  The beginning.
12.1.2 BPL characters  The middle.
12.1.3 BPL postamble  The end.

BPL characters BPL outlines  Representation of character outlines.


13.1 XBfe usage  How to edit fonts.
13.2 Invoking XBfe  Command-line options.

XBfe usage

13.1.1 Controlling XBfe  
13.1.2 XBfe shape editing  Changing the pixels.
13.1.3 XBfe metrics editing  Changing the side bearings.

XBfe shape editing Selections  Marking pixel regions for later operations. Enlarging the bitmap  Give yourself more room at the edges.


14.1 BZRedit usage  Operating the editor.

BZRedit usage

14.1.1 BZRedit installation  Additional installation is needed.
14.1.2 Editing BZR files  Editing files in the binary format.
14.1.3 Editing BPL files  Editing files in the textual format.

Editing BPL files BZRedit and Ghostscript  Customizing the use of Ghostscript.


15.1 GSrenderfont usage  Making bitmap fonts from PostScript.
15.2 Invoking GSrenderfont  Command-line options.

GSrenderfont usage

15.1.1 GSrenderfont font names  Supplying PostScript names and filenames.
15.1.2 GSrenderfont output size  Specifying the size and resolution.
15.1.3 GSrenderfont encoding  Specifying the output encoding.


16.1 Additional fonts  GNU needs more fonts.
16.2 Program features  These programs can be improved.
16.3 Portability  Assumptions about the programming environment.
16.4 Implementation  Conventions we used in the sources.

Additional fonts

16.1.1 Legal issues  Legality (and illegality) differ by country.

Regain your programming freedom

B.1 Software patents  Algorithm monopolies.
B.2 User interface copyright  Forbidding upward-compatibility.
B.3 What to do?  

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003