A cursive handwriting font in Metafont
It all began on the day I thought that, as a TeX amateur, I had to have studied once seriously the ways of Metafont. I had previously used MetaPost, the system derived from Metafont to make vector pictures, and being a hardcore computer theoretician I really liked the spirit behind it, so I crossed the line to the creation of metafonts with a genuine enthusiasm.
French Cursive was initially a personal experiment, with no real ambition to become something serious. Nevertheless, once the decision was taken to start this work, I had to choose what kind of font to design. I did not want to write something simplistic (in the Logo style), neither did I want to make yet another flavour on the model of Computer Modern or Times, not only because enough of these already exist, but also because I am not really aware of the rules and customs in that field. So I turned to the only writing I knew some of the rules of: the one I learned at school.
Another reason for this choice was a long angriness against existing cursive fonts. Actually, I had never found a way to produce a satisfactory cursive writing, and all fonts I had seen were either badly deformed (probably in order to make the work simpler), or excessively "calligraphic".
In order to design these characters, I started from my own cursive writing, based on my memories from school. After some time groping, and thanks to the crucial help from my mummy, who is a primary school teacher, I came up with this:
This is a rather usual example, just meant to give an idea of the general look. The font also contains accented characters, digits and most punctuation marks. I also made some variants, including a bold version:
and a fixed-thickness version, producing kind of a ball pen writing, while others look rather like nib pen:
I also made a version I called "calligraphic", lacking a better name, with more contrasted stems and hairlines:
The ability to make such a wide range of variants is a specific aspect of Metafont (it is actually where its name comes from). By playing on a series of parameters, one can then create as many flavours of the font as one can imagine, getting a bit far from the original shape:
More seriously, the production of a well balanced and easily parametrisable writing is made possible only by the power of Metafont. The advantage of TeX is then its subtle system of ligatures. While used usually to substitute better-looking glyphs for some letter combinations, it is used here intensively to insert links between letters depending on their shapes, which is necessary to get a writing of good quality.
To get a better idea of what a text looks like in this font, here are two longer examples:
- in English, the first chapter of Robinson Crusoe (5 pages, 62 kb)
- in French, the first chapter of Les Trois Mousquetaires (14 pages, 123 kb)
What a good decision! If you want to use the French Cursive font, do not hesitate and take it right here:
|current version of the sources:||frcursive.tar.gz|
|home-made Debian package:||frcursive_1.0-1_all.deb|
This is a tar.gz archive with the sources for the font itself and for various flavours of it, in several sizes. It is not really clean yet, but that will come...
Since French Cursive is written in Metafont, it can be used directly only with TeX. The first thing to do is to copy the files from the mf directory into some directory visible by TeX. Unix users may use the provided Makefile for this. In order to use the fonts, I provide a description file for NFSS and a small LaTeX package to simplify its use. A short example is provided, just look at the source and the compiled version. The tar.gz archive above contains a more precise description of the various files and their usage.
As mentioned several times, the French Cursive fonts are defined in the Metafont language. I am conscious that many people could be more interested if they were in another, more widespread format, such as True Type or Adobe Type 1. However, because of several technical problems, direct and automatic translation of Metafont into these formats is impossible in general:
- First of all, contours produced by Metafont are polynomial parametric curves whose degree may reach 6, while contours in Type 1 and True Type are polynomials of degree 3 and 2 respectively.
- Secondly, the ligature and kerning system of TeX cannot be transposed directly. Though font metric information for PostScript fonts can contain ligature information, very few programs can use it (actually only TeX does, as far as I know). In the case of True Type, the OpenType extensions define a powerful system of glyph substitution that seems to be able to perform all the ligature manipulations that TeX allows, but using a very different approach.
- Finally, good Type 1 and True Type fonts contain hinting information to allow for good-looking glyphs at low resolutions, and this problem is solved in a radically different way by Metafont.
All these factors make the conversion of French Cursive to these formats very difficult. Nevertheless, there are tools that solve the first problem by computing approximations of the contours, thus producing acceptable glyph definitions in True Type and Type 1. Therefore I provide this experimental translation of some flavours:
|experimental version in Type 1 format:||frcursive-t1.tar.gz|
|home-made Debian package:||frcursive-t1_1.0-1_all.deb|
This version still has to be used by TeX, because ligature information is present only in the provided tfm font metric files.
The problem of ligatures is thus not solved yet, and it is ignored by the tools I use. I am currently working on a way to convert ligature information from the Metafont and TeX system into glyph substitution information as defined by the OpenType standard, but I do not have any functional version yet. Hold on, results are coming soon...Page written by Emmanuel Beffara, last modified on March 7, 2005.