]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/contributor/feta-font.itexi
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / contributor / feta-font.itexi
index a8bf78fe75dfb56af19f6f62e08ce12737028f38..78021ae8d73c858a3be151dc9e3888c90aa7b983 100644 (file)
@@ -8,6 +8,7 @@
 * Adding a new font section::
 * Adding a new glyph::
 * Building the changed font::
+* METAFONT formatting rules::
 @end menu
 
 @node Overview of the feta font
@@ -17,7 +18,10 @@ The feta font is a font that was created specifically for use in
 LilyPond.  The sources for the font are found in mf/*.mf.
 
 The feta font is merged from a number of subfonts.  Each subfont
-can contain at most 223 glyphs.
+can contain at most 224 glyphs.  This is because each subfont is
+limited to a one-byte address space (256 glyphs maximum) and we
+avoid the first 32 points in that address space, since they are
+non-printing control characters in ASCII.
 
 In LilyPond, glyphs are accessed by glyph name, rather than by code point.
 Therefore, the naming of glyphs is significant.
@@ -38,13 +42,15 @@ available at CTAN.
 
 mf2pt1 is used to create type 1 fonts from the metafont sources.
 
-FontForge is used to display the resulting glyph shapes.
+FontForge is used to postprocess the output of mf2pt1 and clean up
+details of the font.  It can also be used by a developer to
+display the resulting glyph shapes.
 
 @node Adding a new font section
 @section Adding a new font section
 
 The font is divided into sections, each of which contains less
-than 223 glyphs.  If more than 223 glyphs are included in a section,
+than 224 glyphs.  If more than 224 glyphs are included in a section,
 an error will be generated.
 
 Each of the sections is contained in a separate @code{.mf} file.  The
@@ -62,6 +68,8 @@ An entry in the generic file used to create the font, or a new
 generic file
 @item
 If necessary, new entries in the GNUmakefile
+@item
+An entry in @file{scripts/build/gen-emmentaler-scripts.py}
 @end itemize
 
 See the examples in @code{mf/} for more information.
@@ -105,3 +113,20 @@ rm mf/out/*
 make
 @end example
 
+@node METAFONT formatting rules
+@section METAFONT formatting rules
+
+There are special formatting rules for METAFONT files.
+
+Tabs are used for indentation.
+
+When a path contains more than two points, put each point on a
+separate line, with the operator at the beginning  of the line:
+
+@example
+fill z1
+     -- z2
+     -- z3
+     .. cycle;
+@end example
+