Provided by: bdf2psf_1.70ubuntu8_all bug

NAME

       bdf2psf - convert a BDF font to PSF format for the Linux console

SYNOPSIS

       bdf2psf [--fb] [--log logfile] bdf{+bdf} equivalence{+equivalence} symbols{+[:]symbols} size psf [sfm]

DESCRIPTION

       The  program bdf2psf translates BDF fonts to PSF format. It accepts fonts with arbitrary size of the font
       matrix. If the width of the glyph matrix of the source font is 7 or 9 pixels then it generates fonts with
       width of 8 pixels.

OPTIONS

       --fb   Generate font for the framebuffer. There are two important differences between the framebuffer and
              the text mode. First, all fonts in text mode have to have matrix 8 pixels width. They also have to
              have either 256 or 512 glyphs. Second, in most text modes the hardware does some magic in order to
              use 8 pixels width fonts as if they were 9 pixels width.  In  order  to  achieve  this  the  video
              hardware  copyes  the 8th column in the 9th columnt of the glyphs with codes from 0xC0 to 0xDF and
              from 0x1C0 to 0x1DF.  Bdf2psf is very careful when deciding where to place a particular glyph  and
              as a result the encoding of the generated font is more or less arbitrary.

       --log logfile
              Record in the file logfile any problems during the conversion.

       bdf{+bdf}
              The "+"-separated list of the source BDF font(s). When a particular symbol is defined in more than
              one of the specified fonts then fonts listed first take precedence.

       equivalence{+equivalence}
              A "+"-separated list of files defining an equivalence relation between the glyphs. See the section
              EQUIVALENCE FILES below.

       symbols{+[:]symbols}
              A  "+"-separated  list  of  files  describing character sets.  The generated font will support all
              specified character sets.  When there is no space in the PSF font for all symbols,  the  character
              sets  listed  first take precedence.  When a colon before a character set is specified no warnings
              will be issued for symbols that could not be placed in the font. See the  section  CHARACTER  SETS
              below.

       size   The size of the PSF font. Usually 256 or 512 glyphs.

       psf    The name of the generated font.  If a file with this name already exists it will be overwritten.

       sfm    Save in the file sfm the SFM of the generated font. This parameter is optional.

CHARACTER SETS

       The  encodings  of  the  traditional  console  fonts a similar to the standard encodings of the different
       languages.  For example there are fonts for all variants of ISO 8859.  This is redundand, for example ISO
       8859-1,  ISO  8859-9  and ISO 8859-15 differ only by few characters and can be easyly covered by only one
       font.

       In order to determine the minimal set of character sets a clustering algorithm has been used. The  source
       code  of fontconfig contains lists of the characters that most languages require - one list per language.
       We started with one character set per language and used the clustering algorithm in  order  to  join  the
       character sets to bigger.  The character sets described in files installed in the directory fontsets were
       the result of the algorithm.  These files list the unicodes of the symbols of the character set, one  per
       line. Comments starting with a sharp sign are also allowed.

       There  two more special character sets in the files required.set and useful.set.  The first of them lists
       the symbols that every console font is obligated to support. There two classes of  obligatory  symbols  -
       the ASCII symbols and the symbols from the so called alternate character set (see section "Line Graphics"
       of terminfo(5)).  Notice that in order to limit itself to the cp437  character  set,  the  Linux  console
       driver  does  some  approximations of the symbols from the alternate character set. For example it prints
       U+256A (BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE) instead  of  the  not-equal  sign.  The  file
       required.set  lists  the  symbols  used by the Linux console driver (i.e. U+256A instead of the not-equal
       sign).

       In most cases there is more available space in the fonts than necessary. The spare codes  can  be  filled
       with  the  symbols from the useful.set special character set.  It is convenient to use a colon before the
       name of useful.set on the command line of bdf2psf so no warnings are issued when there is no space in the
       font for some of these symbols.

EQUIVALENCE FILES

       The  equivalence  files  define  an  equivalence  relation  between  unicodes. The sharp sign is used for
       comments, the empty lines are ignored. All other lines should list two or more unicodes.  Only one  glyph
       will be allocated in the PSF font for these unicodes.

       Example:

            U+2126 U+03A9
            # U+2126:   OHM SIGN
            # U+03A9:   GREEK CAPITAL LETTER OMEGA
            U+041D U+0048
            # U+041D:   CYRILLIC CAPITAL LETTER EN
            # U+0048:   LATIN CAPITAL LETTER H

       This  equivalence  file says that U+2126 (the Ohm sign) and U+03A9 (Omega) have the same look so only one
       glyph is enough for them. And also U+041D (Cyrillic En) and U+0048 (Latin H) look the same.

       Two equivalence files are provided - standard.equivalents and arabic.equivalents.  The first one  can  be
       used  for  all  fonts.  The purpose of the second is to reduce the number of the necessary glyphs for the
       Arabic letters at the cost of the font quality.  It should be used only for fonts that  have  to  support
       Arabic  but  there is not enough space in the PSF font for all Arabic characters.  The Uni1 character set
       is a character set that requires arabic.equivalents.

FILES

       All   mentioned   files   and   directories   are   usually   installed    in    /usr/share/bdf2psf    or
       /usr/local/share/bdf2psf.

AUTHOR

       Anton Zinoviev <anton@lml.bas.bg>