What is Metatype?Metatype is a framework for creating TrueType fonts based on Metafont language. It consists of several utilities, scripts and makefiles, and includes the TeX family of fonts, based on D.E.Knuth's Computer Modern font sources.
The ultimate goal of a Metatype project is creating a set of high quality freeware fonts, suitable both for printing and for using as display fonts.
What is Metafont?Metafont is a programming language for describing the shapes of the font glyphs. It was written by D. E. Knuth as a companion to TeX. Metafont compiles the font sources to raster bitmap images.
Metafont's language for defining fonts permits the expression of several classes of things: first (of course), the simple geometry of the glyphs; second, the properties of the print engine for which the output is intended; and third, 'meta'-information which can distinguish different design sizes of the same font, or the difference between two fonts that belong to the same (or related) families.
Knuth (and others) have designed a fair range of fonts using Metafont, for example the famous Computer Modern font family.
(See also TeX FAQ)
What is Metapost?The MetaPost system (by John Hobby) implements a picture-drawing language very much like that of Metafont except that it outputs Encapsulated PostScript files instead of run-length-encoded bitmaps. MetaPost is a powerful language for producing figures for documents to be printed on PostScript printers, either directly or embedded in other documents.
Much of MetaPost's source code was copied from Metafont's sources with Knuth's permission.
Metapost can also be used for converting fonts from Metafont sources to Postscript Type 3 format.
(See also TeX FAQ)
Your fonts look ugly. What is wrong?For TrueType fonts looking good in low resolution, they must contain so called "hints", or small assembler-like programs for every glyph, which help rasterizer to display glyph "the best". Currently, Metatype fonts have no hints, that's why they look ugly in point sizes 14 and lower (when no anti-aliasing is available).
Creating hints is a very hard task. To overcome this, there is another method: precomputing bitmap font images for all popular low-resolution font sisez and putting them into TrueType file. Currently this is not implemented yet.
I downloaded and unpacked Metatype sources. How do I compile the fonts?The procedure is described in metatype/README file. In a brief: (1) install all required packages, (2) go to metatype/ directory and run "make"; (3) go to maestro/cm/compile/roman (or another font face directory of your choice) and run "make", then "make ttf". You will get the file texr.ttf (or another name, according to font face).
What about support for extended latin (arabics, hebrew, devanagari etc etc)?This is our goal: adding support for as most Unicode characters as possible. You are welcome to participate and help us with it! There is a lot of freeware Metafont fonts in the Internet. Find the suitable font, add all needed characters to Metatype font source directories, or build your own font.
I like your project. How could I volunteer?Yes, of course! There is a list of task of most importance. You can select one for you taste and develop the project in this direction.
I have Metafont sources of some font. How could I convert it to TrueType using Metatype?
mkdir metatype/myfont cd metatype/myfont
mkdir 00 01
cp ../cm/00/encoding.mf 00/encoding.mf cp ../cm/01/encoding.mf 01/encoding.mf
mkdir 00/002 00/003 00/004 00/005 00/006 mkdir 00/007 01/013
beginchar (LATIN_SMALL_LETTER_A,... ...endchar;
mkdir compile cp ../cm/compile/Makefile compile/MakefilePut your font's base file here. If your font is based on original Computer Modern family, then your base file is probably named "cmbase.mf":
cp $(somewhere)/cmbase.mf compile/base.mf
mkdir compile/roman vi compile/param.mf # put parameters here
cp ../cm/compile/roman/Makefile compile/roman/ vi compile/roman/Makefile # edit font name, etcYou can create as much font faces as you wish, with different parameters.
vi compile/Makefile # edit SUBDIRS
cd compile/roman/Makefile make # compile glyphs make ttf # convert glyphs to ttfOr you could compile all font faces at once:
cd compile/Makefile make # compile glyphs make ttf # convert glyphs to ttfs