1UNIFONT(5)                    File Formats Manual                   UNIFONT(5)
2
3
4

NAME

6       Unifont - a bitmapped font with full Unicode Plane 0 (BMP) coverage
7

SYNOPSIS

9       unifont.hex
10

DESCRIPTION

12       Unifont is a bitmapped font with glyphs described in a plain text file,
13       generically referred to as unifont.hex herein.  This man page describes
14       the  format of three related files: unifont.hex, masks.hex, and combin‐
15       ing.txt.  All three of these files start with a Unicode code point as a
16       hexadecimal string, with code points appearing in ascending order.
17
18       A  unifont.hex  file  consists  of single-line entries for each Unicode
19       code point.  Each line contains the code point,  a  colon  (':')  field
20       separator,  and  the  glyph bitmap.  The glyphs in a unifont.hex format
21       file must appear in ascending Unicode code point order.
22
23       This file can be converted into a BDF font using  the  hex2bdf(1)  pro‐
24       gram, and into a TrueType font using fontforge(1) (which is not part of
25       this package).  The BDF font can also be converted into a PCF font  us‐
26       ing bdftopcf(1) (which is also not part of this package).
27
28       The first field
29              The  first field is the Unicode code point in hexadecimal, rang‐
30              ing from "0000" through "10FFFF", inclusive.   This  corresponds
31              to  the  Unicode  code  points  U+0000 through U+10FFFF, respec‐
32              tively.
33
34       The second field
35              The second field is the glyph's bitmap string.  This is a series
36              of  hexadecimal  digits.   Currently  Unifont  encodes two glyph
37              sizes: 8 pixels wide by 16 pixels tall  (single-width),  and  16
38              pixels wide by 16 pixels tall (double-width).  A third format of
39              32 pixels wide (drawn as 31 pixels plus a  pixel  on  the  right
40              that  is  always  blank)  by 16 pixels tall (quadruple-width) is
41              also available, but only for experimental use.
42
43              As each hexadecimal digit can encode four bits, one pixel row of
44              a  glyph is either two hexadecimal digits long (single-width) or
45              four hexadecimal digits long (double-width).  The glyphs are  16
46              pixels tall, so a single-width glyph is (2)(16) = 32 hexadecimal
47              digits long and a double-width glyph is (4)(16) = 64 hexadecimal
48              digits long.
49
50       Previous  versions  of  this  package  supplied a file named masks.hex.
51       This file followed the same format as unifont.hex with  a  first  field
52       that was a Unicode code point in hexadecimal, followed by a colon (':')
53       field separator, followed by a second  field  that  was  a  hexadecimal
54       string  representing a glyph bitmap.  Code points were in ascending or‐
55       der.  The glyph bitmaps were bitmaps that would be exclusive-ored  with
56       the  glyph  in  unifont.hex that had the same code point.  The original
57       unifont.hex contained combining circles  as  depicted  in  The  Unicode
58       Standard.  When Paul Hardy got combining characters to display properly
59       in the TrueType version, it became desirable to remove these  combining
60       circles  for proper display with unifont.ttf.  The program uniunmask(1)
61       will read such a masks.hex file, read a unifont.hex  format  file,  and
62       apply  the  exclusive-or masks in masks.hex to unifont.hex.  The output
63       is another file in unifont.hex format with the masked-off  bits  (i.e.,
64       combining circles) removed.
65
66       Because  the operation is an exclusive-or, masks.hex could also be used
67       to turn on pixels in selective glyphs, for  example  to  add  combining
68       circles  to  selective glyphs that do not show them.  However, the pro‐
69       gram unigencircles(1) can do this without a  separate  masks.hex  file.
70       Thus  masks.hex  is no longer supplied with this package.  uniunmask(1)
71       remains part of this distribution in case someone might find creating a
72       custom masks.hex file useful for another purpose.
73
74       The TrueType version of the font, unifont.ttf, and the unigencircles(1)
75       utility both read a file combining.txt.  This file appears in  the  di‐
76       rectory  font/ttfsrc.   The combining.txt file is a list of code points
77       as hexadecimal strings, one per line in  ascending  order,  of  Unicode
78       code  points  that show combining circles in The Unicode Standard.  Any
79       glyph with its code point listed in combining.txt will have zero  width
80       in unifont.ttf.
81

UTILITIES

83       Roman  Czyborra,  the font's creator, originally wrote two Perl scripts
84       as utilities: bdfimplode(1) and hexdraw(1).
85
86       The bdfimplode(1) Perl script reads in a font in BDF format and  gener‐
87       ates a font output in unifont.hex format.
88
89       The  hexdraw(1) Perl script might appear somewhat magical.  It can read
90       a file in unifont.hex format and generate a text file with  each  glyph
91       appearing as a grid of characters in an 8 by 16 or 16 by 16 grid: a '-'
92       character indicates a corresponding white pixel, and  a  '#'  character
93       indicates  a corresponding black pixel.  These pixel grids are indented
94       with a single tab character.  The first line of each glyph first  shows
95       the  code point for the glyph, followed by a colon (':').  The 16 lines
96       that graphically represent each glyph are followed by one  blank  line.
97       This  text file can then be modified with any text editor.  The magical
98       part about hexdraw(1) is that it will read in this  text  file,  detect
99       that  it  is  in  this converted format, and produce as output a second
100       file in Unifont's .hex format.  Thus hexdraw(1) automagically  provides
101       round-trip coverage between an original font file in unifont.hex format
102       and an intermediate text graphics format for editing.
103
104       Utilities introduced after those first  two  convert  a  file  in  uni‐
105       font.hex  format  to  and  from bitmapped graphics (".bmp") files.  The
106       unihex2bmp(1) program converts a file in unifont.hex format into a .bmp
107       format  file,  for  editing  with a graphics editor.  The unibmp2hex(1)
108       program performs the reverse conversion, from a bitmapped graphics for‐
109       mat back to a file in unifont.hex format.
110
111       hexdraw(1),  unihex2bmp(1),  and unibmp2hex(1) are the central programs
112       that handle conversion of a unifont.hex file  to  and  from  two-dimen‐
113       sional  glyph  representations  for  visual  editing.  See the doc/uni‐
114       font.info texinfo file included in the source package for more informa‐
115       tion  on  these  and  other  utilities  to customize unifont.hex format
116       files.  Also consult the man pages for the utilities listed below.
117

FILES

119       The following files are part of the Unifont source distribution:
120
121       font/plane*/*.hex
122                      GNU Unifont font files
123
124       LICENSE        The Unifont license
125
126       README         Instructions on building Unifont
127
128       doc/unifont.info
129                      Tutorial in texinfo format on customizing Unifont
130

SEE ALSO

132       bdfimplode(1), hex2bdf(1), hex2otf(1), hex2sfd(1), hexbraille(1),  hex‐
133       draw(1),   hexkinya(1),   hexmerge(1),   johab2ucs2(1),  unibdf2hex(1),
134       unibmp2hex(1),  unibmpbump(1),  unicoverage(1),   unidup(1),   unifont-
135       viewer(1),  unifont1per(1),  unifontchojung(1), unifontksx(1), unifont‐
136       pic(1), unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
137       unihexfill(1),    unihexgen(1),    unihexrotate(1),    unipagecount(1),
138       unipng2hex(1)
139

AUTHOR

141       The unifont.hex format was created by  Roman  Czyborra,  who  drew  the
142       original set of glyphs.
143

LICENSE

145       unifont  is  Copyright © 1998 Roman Czyborra, with portions Copyright ©
146       2007–2013 Paul Hardy, Copyright © 2004–2013 Qianqian Fang, and others.
147
148       This program is free software; you can redistribute it and/or modify it
149       under  the  terms of the GNU General Public License as published by the
150       Free Software Foundation; either version 2 of the License, or (at  your
151       option) any later version.
152

BUGS

154       The  format  is  very straightforward and no real bugs exist.  However,
155       Unifont's original BDF font format does not support Unicode's combining
156       characters (accents, etc.); only the TrueType version of Unifont does.
157
158
159
160                                  2020 Jul 03                       UNIFONT(5)
Impressum