font: lower and larger degree sign
[unifont.git] / README
1
2 OVERVIEW
3 --------
4 GNU Unifont is an official GNU package.  It is a dual-width
5 (8x16/16x16) bitmap font, designed to provide coverage for
6 all of Unicode Plane 0, the Basic Multilingual Plane (BMP).
7
8 GNU Unifont has a glyph for each visible code point in the
9 Unicode Basic Multilingual Plane (Plane 0) and some glyphs
10 in the Supplemental Multilingual Plane (Plane 1).  This version
11 also includes many glyphs in Michael Everson's ConScript
12 Unicode Registry (CSUR).
13
14 Unifont only provides a single glyph for each character, making it
15 impossible to handle any language properly that needs context-dependent
16 character shaping. It is supplied in the form of a hex file, with
17 a converter to convert it to BDF. See http://czyborra.com/unifont/
18 or http://unifoundry.com/unifont.html for more information.  The
19 BDF font is converted to PCF, and the hex file is converted to a
20 TrueType font.
21
22 This is the unifoundry.com collection of utilities for GNU Unifont,
23 assembled by Paul Hardy with the encouragement of the font's creator,
24 Roman Czyborra.  This archive contains the following directories
25 and files:
26
27      ChangeLog  Log of changes made to each GNU release
28      COPYING    Full text of GPL version 2
29      doc        Documentation in Texinfo format
30      font       The font source file with scripts for building
31      hangul     Standalone font sources to build hangul-syllables.hex
32      INSTALL    Instructions for font and software installation
33      Makefile   The "make" file
34      man        Unix man pages
35      NEWS       Summary of what's new with each GNU release
36      README     This file
37      src        Source programs, in Perl and C
38
39 The "font/precompiled" directory contains prebuilt font-related files:
40
41      coverage.txt                     Percentage coverage of Plane 0 scripts
42
43      unifont-<version>.hex            Hex string source of glyphs to build
44                                       Unifont
45      unifont-<version>.bdf.gz         BDF version of Unifont
46      unifont-<version>.pcf.gz         PCF version of Unifont
47      unifont-<version>.ttf            TrueType version of Unifont
48
49      unifont_sample-<version>.hex     Hex string source of all Plane 0 glyphs
50                                       (except those for U+FFFE and U+FFFF),
51                                       including nonprinting and PUA glyphs,
52                                       with combining circles
53      unifont_sample-<version>.bdf.gz  BDF font version of the above .hex file
54      unifont_sample-<version>.ttf     SBIT font version of the above .hex file
55
56      unifont_csur-<version>.*         Fonts containing Plane 0 Unifont glyphs
57                                       plus glyphs for Michael Everson's
58                                       ConScript Unicode Registry (CSUR) for
59                                       the Plane 0 Private Use Area
60
61      unifont_upper-<version>.*        Fonts containing glyphs from Unicode
62                                       Plane 1 through Plane 14, inclusive
63
64      unifont_upper_csur-<version>.*   Fonts containing glyphs from Unifont
65                                       Upper plus glyphs from Michael Everson's
66                                       ConScript Unicode Registry (CSUR) that
67                                       are in the Private Use Area in Plane 15
68
69      unifont-<version>.bmp            The entire Plane 0 Unifont font with
70                                       combining circles, built from the files
71                                       font/plane00/*.hex, showing combining
72                                       circles
73
74 The directory that was originally named "font/hexsrc" has been renamed
75 to "font/plane00" now that Unifont supports glyphs beyond Plane 0.  Higher
76 plane glyphs appear in "font/plane01" through "font/plane0F".  Currently
77 there is no "font/plane10" directory (the highest Unicode plane is Plane 17,
78 or 0x10).
79
80 This release incorporates all glyph errata issued by The Unicode Consortium
81 from Unicode 1.0 errata to the latest.
82
83
84 BUILDING
85 --------
86 See the "INSTALL" file in this directory for building instructions.
87
88
89 src/ AUTHORS
90 ------------
91 Roman Czyborra wrote all the Perl files in the src directory except
92 "hex2sfd", "hexkinya", "unifontchojung", "unifontksx", "unihex2png",
93 and "unipng2hex".
94
95 In the case of "johab2ucs2", Jungshik Shin wrote the orignial version;
96 he then gave it to Roman.  Paul Hardy made further changes to "johab2ucs2".
97
98 Roman originally named the "src/hexbraille" script as simply "braille".
99 Paul Hardy thought there was too great a chance of a name conflict with
100 other utilities, and so renamed it.
101
102 Luis Alejandro Gonzalez Miranda wrote the original "hex2sfd" Perl
103 script, as well as a "howto-build.sh" shell script that Paul Hardy
104 converted into "./font/ttfsrc/Makefile".
105
106 Paul Hardy wrote "unifontchojung" and "unifontksx" for extracting subsets
107 of Hangul glyphs, as an aid in creating a new Hangul Syllables block.
108
109 Andrew Miller wrote "hexkinya".  He also wrote "unihex2png" and "unipng2hex"
110 based upon Paul Hardy's "unihex2bmp" and "unibmp2hex" programs.  Last but not
111 least, he wrote the "unifont-viewer" Perl script to graphically view a Unifont
112 hex file dynamically.
113
114 Paul Hardy wrote all the C programs.
115
116
117 Unifont AUTHORS
118 ---------------
119 Roman Czyborra created the original GNU Unifont, including the
120 .hex format.  For greater detail, see the HISTORY section below.
121
122 David Starner aggregated many glyphs contributed by others and
123 incorporated these into pre-2004 Unifont releases.
124
125 Qianqian Fang began his Wen Quan Yi font in 2004, by which
126 time work on Unifont had stopped.  Most of the almost 30,000
127 CJK ideographs in Unifont versions 5.1 and later were taken
128 from Wen Quan Yi with permission of Qianqian Fang.  The glyphs
129 in "./font/plane00/wqy-cjk.hex" are for the most part Qianqian
130 Fang's Unibit and Wen Quan Yi glyphs.
131
132 Paul Hardy drew most of the newly-drawn glyphs added to the BMP
133 from the Unifont 5.1 release to the present release.  This includes
134 the 11,172 glyphs in the Hangul Syllables block, plus approximately
135 10,000 additional glyphs scattered throughout the BMP.
136
137 Andrew Miller drew the glyphs added to Unicode 6.3.0.
138
139 For higher planes and the Private Use Area glyphs, see the ChangeLog
140 file.
141
142
143 LICENSE
144 -------
145 The source code for everything except the compiled fonts in this current
146 release is licensed as follows:
147
148      License for this current distribution of program source
149      files (i.e., everything except the fonts) is released under
150      the terms of the GNU General Public License version 2,
151      or (at your option) a later version.
152
153 GPL version 2 is contained in the "COPYING" file in the main source
154 directory for this package.  If your received this source without
155 a copy of GPL version 2, you can download a copy from GNU's website
156 at http://www.gnu.org/licenses/gpl-2.0.html.
157
158 The license for the compiled fonts is covered by the above GPL terms
159 with the GNU font embedding exception, as follows:
160
161      As a special exception, if you create a document which uses this font,
162      and embed this font or unaltered portions of this font into the document,
163      this font does not by itself cause the resulting document to be covered
164      by the GNU General Public License. This exception does not however
165      invalidate any other reasons why the document might be covered by the
166      GNU General Public License. If you modify this font, you may extend
167      this exception to your version of the font, but you are not obligated
168      to do so. If you do not wish to do so, delete this exception statement
169      from your version. 
170
171 See "http://www.gnu.org/licenses/gpl-faq.html#FontException" for more details.
172
173
174 CHANGES IN VERSION 6.3
175 ----------------------
176 Version 6.3 reflects all glyph changes and errata published in Unicode
177 6.3.0.  In preparation for releasing this version, Paul Hardy obtained
178 a hard copy of the errata published in Unicode Version 1.1, not yet
179 available on Unicode's website.  All previously published errata have
180 been incorporated.  This is a complete replacement for all previous
181 releases.
182
183 The following code points in previously published errata were examined
184 and found to be correct:
185
186      Unicode 1.1: U+717F, U+773E, U+809C, U+8480, U+908E
187
188 Andrew Miller drew the 5 new additions to the Unicode 6.3.0 Basic
189 Multilingual Plane in the initial Unifont 6.3 release.
190
191 The latest Unifont 6.3 release includes these glyph changes by Paul Hardy:
192
193    - Armenian -- several glyphs were redrawn based upon feedback from
194      native speakers (U+0530..U+058F).
195
196    - CJK Radicals Supplement -- several glyphs were redrawn to better match
197      their representations in The Unicode Standard code charts:
198      U+2E9F, U+2EA9, U+2EAC, U+2EAE, U+2EC0, U+2EDE, U+2EE7, and U+2EED.
199
200    - Capricorn sign (U+2651) -- this was redrawn to an alternate form that
201      better fit in an 8 by 16 pixel grid.
202
203    - Dashes -- changed to distguish better between different dash types
204      (a two horizontal pixel difference is the minimum to easily distinguish
205      a difference between two glyphs):
206      * Hyphen (U+002D) and Soft Hyphen (U+00AD) are now 4 pixels wide
207      * En Dash (U+2012) is now 6 pixels wide
208      * Em Dash (U+2013) is now 8 pixels wide
209
210    - Control Pictures:
211      * Centered text for C1 Controls U+0089 ("HTJ"), U+0095 ("MW"),
212        and U+009E ("PM")
213      * Copied glyphs from U+0000..U+001F to U+2400..u+241F and erased
214        surrounding borders; earlier, some glyphs in U+0000..U+001F had
215        their text re-centered so this carries that change forward
216
217    - Arrows -- General Re-alignment
218      * Aligned most single vertical arrow strokes with the 5th column,
219        counting from the left, to align with the center of the "w" glyph
220        (U+0077)
221      * Aligned most single horizontal arrow strokes with the 7th row,
222        counting from the bottom, to align with the horizontal stroke in
223        the "e" glyph (U+0065); this follows the convention of Donald Knuth's
224        fonts in TeX, as illustrated in The TeXbook
225      * Modified the following ranges per the above two re-alignments:
226        o U+2190..U+21FF Arrows
227        o U+27F0..U+27FF Supplemental Arrows -- A
228        o U+2900..U+297F Supplemental Arrows -- B
229        o U+2B00..U+2BFF Miscellaneous Symbols and Arrows
230
231    - Modified the following additional Miscellaneous Technical glyphs
232      * Scan lines for old 9-line character terminals:
233        o U+23BA Line 1, horizontal line across row  1 (counting from the top)
234        o U+23BB Line 3, horizontal line across row  5 (counting from the top)
235        o U+23BC Line 7, horizontal line across row 12 (counting from the top)
236        o U+23BD Line 9, horizontal line across row 16 (counting from the top)
237      * U+23CE Return Symbol: shortened to match Latin capital height
238      * U+23AF Horizontal Line Extension: aligned on 7th row, counting
239        from the bottom
240      * U+23D0 Vertical Line Extension: aligned on 5th column, counting
241        from the left
242      * U+23DA Ground Symbol: aligned with Vertical Line Extension (U+23D0)
243      * U+23DB Fuse Symbol: algined with Horizontal Line Extension (U+23AF)
244      * U+23EC Black Down-pointing Double Triangle: moved down one row to
245        match Latin capital height
246
247    - Swapped U+FE17 and U+FE18, which had been reversed
248
249    - hangul/ directory -- updated "hangul-generation.html" to match the
250      latest version at http://unifoundry.com/hangul/hangul-generation.html
251
252 Five new utility programs have also been added:
253
254    - unifontpic - creates a bitmapped graphics (.bmp) file of the entire
255      Basic Multilingual Plane (Plane 0), by default in a 256-by-256
256      glyph grid for ease of printing, and optionally in a 16-by-4096 glyph
257      grid for easier scrolling on a screen, for software that can handle
258      a .bmp file with over 64k pixel rows (not all software can).  The
259      256-by-256 glyph grid can be scaled to print on a piece of paper
260      approximately 3 feet by 3 feet (or one meter by one meter).  Written
261      by Paul Hardy.
262
263    - unigencircles - adds dashed combining circles to unifont.hex glyphs
264      for code points that are in "font/ttfsrc/combining.txt" but not in
265      "font/plane00/nonprinting.hex".  Written by Paul Hardy.
266
267    - unigenwidth - creates an implementation of the POSIX functions
268      wcwidth() and wcswidth() as specified in IEEE 1003.1-2008, Vol. 2:
269      System Interfaces, Issue 7, pages 2251 and 2241, respectively.
270      Plane 0 widths are determined by reading the current Unifont glyphs.
271      All higher planes, 0x01 through 0x10, are calculated without regard
272      to Unifont glyphs.  This can be modified in the future if Unifont
273      glyphs extend beyond Plane 0.  Written by Paul Hardy.
274
275    - unihex2png - converts a unifont.hex-format file into a Portable
276      Network Graphics (PNG) file for editing with a wider rane of graphics
277      editors than the original unihex2bmp allowed.  Written by Andrew
278      Miller, based upon the unihex2bmp source code.  Introduced in
279      Version 6.3.20131215.
280
281    - unipng2hex - converts a PNG graphics file created by unihex2png
282      back into a unifont.hex-format file.  Written by Andrew Miller,
283      based upon the unibmp2hex source code.  Introduced in Version
284      6.3.20131215.
285
286 The last two program additions, unihex2png and unipng2hex, also support
287 glyph heights of 24 and 32 pixels in addition to Unifont's original
288 height of 16 pixels.  hex2bdf and hexdraw have also been modified to
289 support these alternate glyph heights.  This capability has not been
290 tested extensively, and for now is considered experimental.
291
292
293 CHANGES IN VERSION 6.2
294 ----------------------
295 After release of version 5.1 of Unifont, it was learned that the
296 replacement glyphs used in Hangul Syllables, although free to use,
297 could never be licensed under any version of GPL.  For that reason,
298 Paul Hardy created a set of Hangul Syllables from scratch with the
299 oversight of some native Koreans.  This was done using the files that
300 appear in the "hangul/" directory.  For a detailed discussion of the
301 process, see
302
303      http://unifoundry.com/hangul/hangul-generation.html
304
305 The new font was released as Unifont 6.2, with representation of
306 all glyphs in the Unicode 6.2 BMP.  As a result of replacing the
307 Hangul Syllables block, this was the first release that provided
308 GPLv2+ coverage (with a font embedding exception) for the entire
309 package.
310
311 The Unicode Consortium released Unicode Version 6.2.0 on 22 April 2013.
312
313 This version of Unifont includes all additions to the BMP since Unicode
314 Version 5.1, and adds 1,328 more glyphs to the Basic Multilingual Plane.
315
316 It also incorporates all errata that the Unicode Consortium published
317 that apply to the BMP from Unicode 3.0 errata through Unicode 6.1 errata
318 (listed with the Unicode 6.2.0 release).  Only one erratum was left
319 unmodified: the Ogham Space glyph, U+1680, which was left as a line stroke
320 because of the rendering limitations of the bitmapped Unifont.  The errata
321 for the following glyphs were examined and if necessary corrected:
322
323      Unicode 3.1: U+066B, U+224C, U+1780..U+17E9
324      Unicode 3.2: [none]
325      Unicode 4.0: U+06DD, U+0B66
326      Unicode 4.1: U+01B3, U+031A
327      Unicode 5.0: U+0485, U+0486, U+06E1
328      Unicode 5.1: U+047C, U+047D, U+075E, U+075F,
329                   U+1031, U+1E9A, U+1460, U+147E,
330                   U+2626 
331      Unicode 5.2: U+04A8, U+04A9, U+04BE, U+04BF,
332                   U+135F, U+19D1, U+19D2, U+19D4 
333                   [U+1680 left as is]
334      Unicode 6.0: [none]
335      Unicode 6.1: U+2D7F
336
337 Note that some glyphs were assigned in earlier versions of Unicode and
338 later withdrawn, but their glyphs still appear in the code charts.
339 Therefore, they have been left in place.  The Unicode Consortium now
340 holds the position that once a glyph is assigned, it is not replaced.
341
342 Andrew Miller noted that one glyph (U+2047) was incorrect and the glyph
343 CYRILLIC CAPITAL LETTER A (U+0410) did not match LATIN CAPITAL LETTER A
344 (U+0041).  He submitted corrections and they have been incorporated.
345
346 The biggest change was a totally redrawn set of Hangul Syllables,
347 U+AC00..U+D7A3, comprising 11,172 glyphs in all.  This allowed the
348 entire font to be licensed under the GNU GPL.
349
350 Unicode 6.2 (and hence Unifont) now only has 2,330 unassigned code points
351 in the BMP for possible future assignments, and the rate at which new
352 code points are being assigned in the BMP is decreasing greatly.
353
354 The unihex2bmp program has reversed the meaning of its "-f" (flip,
355 or transpose) flag compared to Unifont Version 5.1 unihex2bmp.
356 Now the default behavior is to produce 16x16 glyph charts with
357 the same arrangement as The Unicode Standard.
358
359 The unibmp2hex program now hard-codes several scripts and code points
360 to be double-width.  This was necessary after removing the combining
361 circles from many glyphs that only occupied the left-hand side of the
362 16x16 grid, but combine with double-width glyphs from the rest of a
363 given script.
364
365 The "blanks.hex" file has been renamed to "unassigned.hex" as a more
366 accurate description of its contents.  The "substitutes.hex" file has
367 been renamed to "spaces.hex", as all it contained were single- and
368 double-width space glyphs (strings of 0s).
369
370
371 Roman Czyborra and Paul Hardy wanted to license this entire collection
372 under GPL to simplify its adoption by the GNU Project.  In the end, there
373 was just one catch: the Hangul Syllables block that appeared in Unifont 5.1,
374 although licensed for free use, could not be licensed under the GPL.
375
376 There was no suitable alternative that was covered under the GPL, so Paul
377 Hardy created a new block of Hangul Syllables.  This took a few years of
378 spare time to complete.  Native Koreans reviewed and critiqued the glyphs.
379 If anyone who is Korean would like to improve this block (U+AC00..U+D7A3),
380 please feel free to do so and submit the changes so they can be incorporated.
381
382 The font has also gone through a couple of simplifications since the
383 release of version 5.1:
384
385    - There is only one source file for CJK ideographs now, "wqy.hex",
386      acknowledging that most of these glyphs were taken from the Wen
387      Quan Yi distribution.
388
389    - There are no more combining circles; these were all removed.
390
391 The result is now there is just one variation of output font rather than
392 four.  That one is used to generate the TrueType "unifont.ttf" font.
393
394 The directory "font/plane00" contains the .hex input files for building
395 Unifont, and contains these files:
396
397      hangul-syllables.hex   Unicode Hangul Syllables, U+AC00..U+D7A3
398      nonprinting.hex        Format and other assigned but invisible glyphs
399      pua.hex                Private Use Area glyphs
400      README                 The README file
401      spaces.hex             Code points that are space glyphs
402      unassigned.hex         Unassigned code points in the BMP
403      unifont-base.hex       Source file with almost all BMP scripts
404      wqy.hex                Source file with Wen Quan Yi CJK ideographs
405
406 The file previously named "blanks.hex" is now named "unassigned.hex".
407 These "blank" glyphs are no longer included in the compiled font.
408 Although the Unicode Standard specifically allows a visual rendering
409 of unassigned code points, doing so would prevent a display engine
410 finding a glyph in another font.  In fact, the original "blanks.hex"
411 pattern was modeled after the proposed representation of unassigned
412 code points depicted in The Unicode Standard, Version 5.0, Section 5.3,
413 Unknown and Missing Characters (p. 155).
414
415 Incorporating "blanks.hex" (now "unassigned.hex") was invaluable in
416 spotting assigned code points with glyphs that had not yet been drawn.
417 However, now there is complete coverage of the entire BMP, with only
418 about 2,300 BMP code points remaining out of 65,536 that could potentially
419 be given assignments in the future, so the great bulk of work on the
420 BMP is done.
421
422 The "pua.hex" file contains a four-digit hexadecimal representation of
423 each code point, rendered as white on black.  The new program "hexgen.c"
424 generated these glyphs.  A four-digit hexadecimal code point is suggested
425 as one possible rendering of PUA glyphs in The Unicode Standard, Version
426 5.0, Section 5.3.  Another possible rendering suggested in that same
427 section is a pencil glyph.  A pencil glyph was used originally in Unifont
428 Version 5.1.
429
430 The glyphs in "pua.hex" are not compiled into the final font.  To do
431 so, modify font/Makefile by adding "pua.hex" to the list of hex source
432 files.  Alternatively, someone could use their own pua.hex file for
433 various Private Use Area assignments.
434
435
436 UNIFONT VERSION 5.1
437 -------------------
438 Paul Hardy's first release of Unifont and associated graphics utilities
439 was Version 5.1.  This corresponded to Unicode Version 5.1 (the current
440 version at the time), with a glyph for every visible character in the
441 Unicode 5.1 Basic Multilingual Plane.
442
443 For the Unifont 5.1 release, Paul Hardy replaced the 11,172
444 thick-stroke Hangul Syllables glyphs with thin-stroke glyphs
445 (a desire expressed by Roman Czyborra for years), merged Qianqian
446 Fang's unibit and Wen Quan Yi glyphs into GNU Unifont (with lots
447 of help and enthusiasm from Qianqian Fang), drew about 8,500 more
448 glyphs to provide complete coerage of the BMP, and replaced the
449 existing Tibetan glyphs with new ones contributed by Rich Felker.
450
451 There was a bug in the johab2ucs2 Perl Script that formed one range
452 of Hangul Syllables incorrectly in previous releases.  Paul Hardy
453 noticed and fixed the bug for the Unifont 5.1 release.  All previous
454 releases of Unifont have an incorrectly formed Hangul Syllables block.
455
456 Earlier releases also had an incorrectly formed Braille glyph block.
457 There was a bug in the Perl script that drew the Braille glyphs in
458 earlier releases.  Roman Czyborra made a fix to that Perl script,
459 named "braille" at his website (http://czyborra.com).  The revised
460 script ("hexbraille") was included in the Unifont 5.1 release, and
461 used to generate the Unifont 5.1 Braille glyphs.
462
463
464 HISTORY
465 -------
466 Roman Czyborra <roman@czybora.com> began GNU Unifont in 1998 as a low
467 quality font to provide a glyph for every Unicode character in the
468 Basic Multilingual Plane.  He realized that no one font at the time
469 had complete coverage of the Unicode BMP.  http://czyborra.com still
470 has several cool tools for Unifont not included here.
471
472 Since Roman Czyborra was unable to maintain the Unifont for a while,
473 and many patches existed on gnu-unifont@groups.yahoo.com
474 (http://groups.yahoo.com/group/gnu-unifont), David Starner
475 <dstarner98@aasaa.ofe.org> decided to make a new release extending
476 Unifont with many characters in 1999.  That was the foundation of earlier
477 GNU Unifont compilations from 1999 to 2004.
478
479 By 2004, work on Unifont had stopped.  Qianqian Fang wanted to create
480 a high-quality Chinese Unicode font in 2004.  He began by copying the
481 GNU Unifont glyphs.  He replaced its Latin glyphs with those of another
482 X11 font.  He replaced the existing main CJK ideographs with a higher
483 quality font that the People's Republic of China had placed in the public
484 domain.  Qianqian named this new font "unibit", and released it under
485 the terms of the GNU General Public License (GPL) version 2, with the
486 exception that embedding his font in a document did not by itself bind
487 that document to the terms of the GNU GPL.
488
489 See http://wqy.sourceforge.net/cgi-bin/enindex.cgi (English) or
490 http://wenq.org (Chinese) for more information on Wen Quan Yi.
491
492 In late 2007, Paul Hardy became interested in adding to GNU Unifont.
493 He wrote a couple of programs to convert GNU Unifont .hex files to and
494 from bitmap images for easy editing with any graphics software.  He began
495 by combining the latest glyphs available for GNU Unifont.  This starting
496 point was posted at http://czyborra.com as the 2007-12-31 version of
497 unifont.hex.  Shortly after that, Roman Czyborra's website went down.
498 Paul Hardy then started posting complete copies of GNU Unifont on his
499 website, at "http://unifoundry.com/unifont.html".
500
501 Roman Czyborra encouraged Paul Hardy to continue this work on GNU Unifont.
502
503 In early 2008, Paul Hardy learned of Qianqian Fang's work.  Qianqian
504 encouraged a combining of effort, and Paul Hardy at that point created
505 two versions of GNU Unifont: one with the original Chinese ideographs
506 (which Roman Czyborra copied from a Japanese font in the public domain),
507 and one with Qianqian Fang's Wen Quan Yi (Spring of Letters) ideographs.
508 The Wen Quan Yi font provides far more coverage of CJK ideographs than
509 the original Japanese font did, and is of higher quality.
510
511 Paul Hardy created a version of both the font with the original CJK
512 ideographs from Japan and with CJK ideographs from Wen Quan Yi that
513 contained combining circles.  He then wrote a post-processing program
514 to remove the combining circles from the final font.
515
516 In 2005, Luis Alejandro Gonzalez Miranda (http://www.lgm.cl) created
517 a set of Fontforge scripts and Perl programs to build a TrueType font
518 from unifont.hex.  Paul Hardy modified Luis' software in 2008 to cover
519 the full Unicode 5.1 Basic Multilingual Plane range.  Luis gave Paul
520 Hardy permission to release this modified version under the terms of
521 "the GNU General Public License, version 2 or (at your option) a later
522 version."
523
524 On 4 July 2008, Paul Hardy was looking through all of Roman Czyborra's
525 Perl scripts.  One of these, "braille", contained a comment from 2003
526 that the original GNU Unifont did not generate its Braille patterns
527 (U+2800..U+28FF) correctly.  The modified script fixed that bug.  Paul
528 Hardy incorporated the corrected Braille glyphs into the 6 July 2008
529 release of GNU Unifont.
530
531 All previous versions probably contain this Braille bug and should be
532 replaced.
533
534 Other notable additions include:
535
536      - Incorporation of CJK glyphs from Qianqian Fang's fonts
537
538      - Incorporation of Rich Felker's Tibetan glyphs
539
540      - Replacement of the Hangul Syllables block with a thin stroke font
541        (Roman had mentioned wanting to do this someday on his website),
542        the current version being created from scratch by Paul Hardy
543
544      - Addition of circled pencil glyphs for the Private Use Area
545        (suggested as an acceptable rendering in the Unicode 5.0 Standard),
546        now replaced with optional four-digit hexadecimal code point glyphs;
547        thought not built into the final font by default, they are available
548        in "font/plane00/pua.hex"
549
550      - Replacement of the Unifont 5.1 gray box glyphs for unassigned
551        code points with four-digit hexadecimal glyphs; these are built
552        into the final font by default
553
554      - Proper handling of combining characters in the TrueType version
555
556      - Proper handling of space glyphs in the TrueType version
557
558 The hex2bdf script in this release is Roman's original script, not the
559 modified version that produced two BDF files (one for 8 pixel wide glyphs
560 and another for 16 pixel wide glyphs).  The TrueType font should be used
561 in preference to the BDF font, so this is probably a moot point.
562
563 For the Unifont 6.2 release, Qianqian Fang gave Paul Hardy permission
564 to release the subset of Wen Quan Yi glyphs included in Unifont under
565 GPLv2+, with a font embedding exception.  With the newly-drawn Hangul
566 Syllables block, this allowed the entire font to be released under
567 GPLv2+ with a font embedding exception.
568
569
570 OPEN ISSUES
571 -----------
572 * Some CJK ideographs use an entire 16x16 pixel grid.  This leaves
573 insufficient space between lines.  However, changing to a non-square
574 grid would distort the block drawing glyphs.  The best solution is
575 probably to use GNU Unifont for mostly non-CJK glyph rendering, and
576 to use Qianqian Fang's Wen Quan Yi fonts (http://wenq.org) for
577 predominately CJK glyph rendering.  The Wen Quan Yi fonts use extra
578 leading (blank space) between lines.
579
580 * There are still some Control and Format glyphs in "unifont-base.hex";
581 these might be more appropriate for "nonprinting.hex".
582