Why
---

 Yet another console font!  I've been very happy with my sigma font,
but I wanted to try kms.  On my desktop I have a 1600x1200 monitor -
if I don't specify any overrides, this gives me something like a
200x75 console which is far too tiny to read.  So, for the sigma
font I've been specifying 1024x768 for the framebuffer and getting a
nice 128x48 console.  But that is apparently incompatible with kms.
[ I've since seen a suggestion that passing video= is ok ].

 The kernel comes with a sun 12x22 font (CONFIG_FONT_SUN12x22) which
is a less tiny size (135x53 for me).  Unfortunately, it lacks accented
letters.

 After searching, I eventually found psftools which allowed me to
dump a font to text, edit it, and create an updated font.  I just wish
I'd found it sooner!

 The current version of kbd includes iso01-12x22 and iso02-12x22, but
neither of these provide much in the way of accents (in fact, the
iso02 version seems to be identical to the iso01 file, as if a fubar
happened when they were first added to kbd, and the original site for
it does not respond).  But, loading iso01 provides a warning message
from setfont that position 32 is nonblank and the background will look
funny - in fact, the background is fine in this case, but I don't want
the error message on each tty so I started from sun-12x22.


Changes
-------

 Far too many to mention, but the main ones include:

· This is a 512 glyph font, so as with sigma-consolefonts you'll have
  to do without bright colours in a tty.

· I reduced the letter heights to get more room for accents
  (so, numbers are now taller than capital letters)

· I reworked the 'A' glyph to look better (IMHO), and altered the 'g'
  to 'helvetic' style instead of 'times'.

· later, I moved the nominal baseline down by 1 pixel to let me use
  less-small capitals than what i'd been using.

· I added accents - some of these started in iso01, but I've often
  reworked them (the ring and cedilla are probably taken straight from
  iso01).  In all of this, my aim is to get distinct and legible
  letters.  So, while I've paid attention to the notes in ucs-fonts,
  I've made the grave accent wider than the acute because I was
  having difficulty identifying which accent was on a particular
  letter.

· I took the few greek glyphs from iso01-12x22 as a starting point,
  then reworked them to fit the changed sizes.  And then added those
  that were missing (for current 'montonic' greek).  Some of them
  may look a bit ugly to native speakers - the versions in iso01
  were perhaps better, but I needed to alter the alignments to let me
  include the accented latin letters.

· I then attempted to create the basic cyrillic letters.  I hope I've
  made them acceptable.

· After that I added letters to cover what I think are all the live
  languages West of the Caucasus (I've added a couple of glyphs for
  azeri using a latin alphabet, but there isn't space to include the
  armenian or georgian alphabets, nor the many extra cyrillic letters
  needed for the other languages of the Causcasus.  So, if anyone
  *does* need those, try my sigma-consolefonts.  I don't expect
  anyone will ever have console text in many of the 'supported'
  languages, but if people can display them on a tty then it *might*
  happen.

· As with my maps in sigma-consolefonts, I've included esperanto and
  mapped the obsolete 'kra' to cyrillic/greek 'k'.


Artistic Guidelines
-------------------

 For letters and so forth, the bottom row of the character cell is
always blank.  Above this, there are 4 rows for descenders (a bit on
the small side - for p,g,q I've changed the letter shape slightly to
maximize the apparent length of the descender).  Lowercase letters
are 10 rows tall, uppercase 13.  Above this are any accents - for
uppercase letters, these can reach into the top row.

 A letter starts by having a margin at both left and right.  When it
is helpful to make the letter wider, it can move into the first
column at the left, particularly for serifs.  In extreme cases, the
last column at the right can be used (e.g. 'W'), but this should
mostly be avoided - some minimal space between letters is usually a
good thing.

 Generally, my guiding principles are "does the letter look ok?" and
"can I distinguish the variant forms?" (accents and so forth).  This
has led me to alter some of the accents to make them bolder.  I'm
sure that on a small screen they will look blocky, but on a big screen
it's necessary to give the reader as much help as possible.

 Edit in an xterm, with a wide range of fonts!  Sometimes, different
fonts make visibly different choices.  It seems to me that greek
letters use either no descender or a full descender.  For latin, I've
used full descenders and made below-baseline accents a similar
height.  For cyrillic, after spending a long time looking at text in
browsers, and pasting it then changing to a seriffed font, I've
concluded that there are probably full-length descenders (e.g.
lowercase 'у' [ 'u' ] but also shorter versions on e.g. 'д' and 'щ'
('d' and shcha).  For the tailed-letters in kildin sami I've taken
a guess at how they are supposed to look.

 The glyphs are all supposed to be in serif form, although the small
cyrillic zhe [ж] doesn't have any and a few serifs have had to be
omitted because of lack of space.

License
-------

 The sun-12x22 font is derived from the version included in the linux
kernel, and is therefore licensed under GPL v2.  Accordingly, all the
fonts derived from it bear that license.

 In a spirit of full compliance, I've put the gzipped "source" here -
you can recreate source from a psf using psf2txt, but by supplying
the commented source both you and I may sometimes be able to read
comments about certain decisions.


Last updated 2010-08-25 by Ken Moffat <ken@linuxfromscratch.org>

