GNU Unifont
Encyclopedia
The GNU Unifont by Roman Czyborra is a free bitmap font that covers the Unicode
Basic Multilingual Plane (BMP), using an intermediate bitmapped font format.
It is present in most free operating system
s and windowing systems such as Linux
, XFree86
or the X.Org Server
. The font is released under the GNU General Public License
.
Basic Multilingual Plane covers 216 = 65,536 code points. Of this number, 2048 are reserved for special use as surrogate pairs and 6,400 are reserved for private use. This leaves approximately 57,000 code points to which glyphs can be assigned. Some of these code points are special values that do not have an assigned glyph, but most do have assigned glyphs.
, the GNU Unifont has complete coverage of the Basic Multilingual Plane as defined in Unicode 5.1. Scripts that are less than 100% complete can be augmented by any contributor.
The unifont.hex file contains one line for each glyph. Each line consists of a four digit Unicode hexadecimal code point, a colon, and the bitmap string. The bit string is 32 hexadecimal digits for an 8 pixel wide glyph or 64 hexadecimal digits for a 16 pixel wide glyph.
A '1' bit in the bit string corresponds to an 'on' pixel. Pixels bits are stored top to bottom, left to right.
The font is then converted into a BDF file for use on X11
.
The first number is the hexadecimal Unicode code point, with range 0000 through FFFF. Hexadecimal 0041 is decimal 65, the code point for the letter 'A'. The colon separates the code point from the bitmap. In this example, the glyph is 8 pixels wide, so the bit string is 32 hexadecimal digits long.
The bit string begins with 8 zeros, so the top 4 rows will be empty (2 hexadecimal digits per 8 bit byte, with 8 bits per row for an 8 pixel-wide glyph). The bit string also ends with 4 zeros, so the bottom 2 rows will be empty. It is implicit from this that the default font descender is 2 rows below the baseline, and the capital height is 10 rows above the baseline. This is the case in the GNU Unifont with Latin glyphs.
The hexdraw Perl script produces the following output from the one line glyph definition above (at right the same output, spaced out for better visualization):
0041:
––––––––
––––––––
––––––––
––––––––
–––##–––
––#––#––
––#––#––
–#––––#–
–#––––#–
–######–
–#––––#–
–#––––#–
–#––––#–
–#––––#–
––––––––
––––––––
0041:
– – – – – – – –
– – – – – – – –
– – – – – – – –
– – – – – – – –
– – – # # – – –
– – # – – # – –
– – # – – # – –
– # – – – – # –
– # – – – – # –
– # # # # # # –
– # – – – – # –
– # – – – – # –
– # – – – – # –
– # – – – – # –
– – – – – – – –
– – – – – – – –
This can be edited in a text editor, then converted back into a hex string with the same utility. The goal was to create an intermediate format that would facilitate adding new glyphs.
glyphs done by WenQuanYi
's Unibit font.
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
Basic Multilingual Plane (BMP), using an intermediate bitmapped font format.
It is present in most free operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s and windowing systems such as Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, XFree86
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and is now available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It is developed by the...
or the X.Org Server
X.Org Server
X.Org Server refers to the X server release packages stewarded by the X.Org Foundation,which is hosted by freedesktop.org, and grants...
. The font is released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
Status
The UnicodeUnicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
Basic Multilingual Plane covers 216 = 65,536 code points. Of this number, 2048 are reserved for special use as surrogate pairs and 6,400 are reserved for private use. This leaves approximately 57,000 code points to which glyphs can be assigned. Some of these code points are special values that do not have an assigned glyph, but most do have assigned glyphs.
, the GNU Unifont has complete coverage of the Basic Multilingual Plane as defined in Unicode 5.1. Scripts that are less than 100% complete can be augmented by any contributor.
The .hex font format
The GNU Unifont .hex format defines its glyphs as either 8 or 16 pixels in width by 16 pixels in height. Most Western script glyphs can be defined as 8 pixels wide, while other glyphs (notably the Chinese-Japanese-Korean, or CJK set) are typically defined as 16 pixels wide.The unifont.hex file contains one line for each glyph. Each line consists of a four digit Unicode hexadecimal code point, a colon, and the bitmap string. The bit string is 32 hexadecimal digits for an 8 pixel wide glyph or 64 hexadecimal digits for a 16 pixel wide glyph.
A '1' bit in the bit string corresponds to an 'on' pixel. Pixels bits are stored top to bottom, left to right.
The font is then converted into a BDF file for use on X11
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
.
Example
This is an example font containing one glyph, for ASCII capital 'A'.
0041:0000000018242442427E424242420000
The first number is the hexadecimal Unicode code point, with range 0000 through FFFF. Hexadecimal 0041 is decimal 65, the code point for the letter 'A'. The colon separates the code point from the bitmap. In this example, the glyph is 8 pixels wide, so the bit string is 32 hexadecimal digits long.
The bit string begins with 8 zeros, so the top 4 rows will be empty (2 hexadecimal digits per 8 bit byte, with 8 bits per row for an 8 pixel-wide glyph). The bit string also ends with 4 zeros, so the bottom 2 rows will be empty. It is implicit from this that the default font descender is 2 rows below the baseline, and the capital height is 10 rows above the baseline. This is the case in the GNU Unifont with Latin glyphs.
The hexdraw Perl script produces the following output from the one line glyph definition above (at right the same output, spaced out for better visualization):
0041:
––––––––
––––––––
––––––––
––––––––
–––##–––
––#––#––
––#––#––
–#––––#–
–#––––#–
–######–
–#––––#–
–#––––#–
–#––––#–
–#––––#–
––––––––
––––––––
0041:
– – – – – – – –
– – – – – – – –
– – – – – – – –
– – – – – – – –
– – – # # – – –
– – # – – # – –
– – # – – # – –
– # – – – – # –
– # – – – – # –
– # # # # # # –
– # – – – – # –
– # – – – – # –
– # – – – – # –
– # – – – – # –
– – – – – – – –
– – – – – – – –
This can be edited in a text editor, then converted back into a hex string with the same utility. The goal was to create an intermediate format that would facilitate adding new glyphs.
Vectorization
The font has subsequently been vectorized and converted to TrueType format, and merged back the improvements to 20,000 CJKCJK
CJK is a collective term for Chinese, Japanese, and Korean, which is used in the field of software and communications internationalization.The term CJKV means CJK plus Vietnamese, which constitute the main East Asian languages.- Characteristics :...
glyphs done by WenQuanYi
WenQuanYi
WenQuanYi is an open-source project of Chinese computer fonts licensed under GNU General Public License.-General:WenQuanYi project was started by Qianqian Fang , a Chinese biomedical imaging researcher at the Massachusetts General Hospital, in October, 2004.Now the fonts of WenQuanYi project are...
's Unibit font.