font: lower and larger degree sign
[unifont.git] / README
diff --git a/README b/README
index a6148349c23c462ec94f5390a7b2e4dd97bdc13b..ed836aab3c784456d13b87ef1f95efb640e45d74 100644 (file)
--- a/README
+++ b/README
@@ -1,14 +1,15 @@
 
 
-Subject: Unifont archive version 6.3.20131020
-
-
 OVERVIEW
 --------
 GNU Unifont is an official GNU package.  It is a dual-width
 (8x16/16x16) bitmap font, designed to provide coverage for
 all of Unicode Plane 0, the Basic Multilingual Plane (BMP).
 OVERVIEW
 --------
 GNU Unifont is an official GNU package.  It is a dual-width
 (8x16/16x16) bitmap font, designed to provide coverage for
 all of Unicode Plane 0, the Basic Multilingual Plane (BMP).
-This version has a glyph for each visible code point in the
-Unicode 6.3 Basic Multilingual Plane (Plane 0).
+
+GNU Unifont has a glyph for each visible code point in the
+Unicode Basic Multilingual Plane (Plane 0) and some glyphs
+in the Supplemental Multilingual Plane (Plane 1).  This version
+also includes many glyphs in Michael Everson's ConScript
+Unicode Registry (CSUR).
 
 Unifont only provides a single glyph for each character, making it
 impossible to handle any language properly that needs context-dependent
 
 Unifont only provides a single glyph for each character, making it
 impossible to handle any language properly that needs context-dependent
@@ -23,27 +24,58 @@ assembled by Paul Hardy with the encouragement of the font's creator,
 Roman Czyborra.  This archive contains the following directories
 and files:
 
 Roman Czyborra.  This archive contains the following directories
 and files:
 
-     font       Everything you need to build the font from scratch
+     ChangeLog  Log of changes made to each GNU release
+     COPYING    Full text of GPL version 2
+     doc        Documentation in Texinfo format
+     font       The font source file with scripts for building
      hangul     Standalone font sources to build hangul-syllables.hex
      hangul     Standalone font sources to build hangul-syllables.hex
+     INSTALL    Instructions for font and software installation
      Makefile   The "make" file
      man        Unix man pages
      Makefile   The "make" file
      man        Unix man pages
+     NEWS       Summary of what's new with each GNU release
      README     This file
      src        Source programs, in Perl and C
      README     This file
      src        Source programs, in Perl and C
-     TUTORIAL   Tutorial for using this package's utilities
 
 The "font/precompiled" directory contains prebuilt font-related files:
 
 
 The "font/precompiled" directory contains prebuilt font-related files:
 
-     coverage.txt              Percentage coverage of each Plane 0 script
-     unifont-<version>.bmp     The entire Plane 0 font with combining circles
-     unifont-<version>.bdf.gz  BDF version of Unifont
-     unifont-<version>.hex     Hex string source of glyphs to build Unifont
-     unifontall-<version>.hex  Hex string source of all Plane 0 glyphs,
-                               including nonprinting and PUA glyphs
-     unifont-<version>.pcf.gz  PCF version of Unifont
-     unifont-<version>.ttf     TrueType version of Unifont
-
-The original version of this README file was written by David Starner
-and modified by Paul Hardy from 2008 to the present.
+     coverage.txt                     Percentage coverage of Plane 0 scripts
+
+     unifont-<version>.hex            Hex string source of glyphs to build
+                                      Unifont
+     unifont-<version>.bdf.gz         BDF version of Unifont
+     unifont-<version>.pcf.gz         PCF version of Unifont
+     unifont-<version>.ttf            TrueType version of Unifont
+
+     unifont_sample-<version>.hex     Hex string source of all Plane 0 glyphs
+                                      (except those for U+FFFE and U+FFFF),
+                                      including nonprinting and PUA glyphs,
+                                      with combining circles
+     unifont_sample-<version>.bdf.gz  BDF font version of the above .hex file
+     unifont_sample-<version>.ttf     SBIT font version of the above .hex file
+
+     unifont_csur-<version>.*         Fonts containing Plane 0 Unifont glyphs
+                                      plus glyphs for Michael Everson's
+                                      ConScript Unicode Registry (CSUR) for
+                                      the Plane 0 Private Use Area
+
+     unifont_upper-<version>.*        Fonts containing glyphs from Unicode
+                                      Plane 1 through Plane 14, inclusive
+
+     unifont_upper_csur-<version>.*   Fonts containing glyphs from Unifont
+                                      Upper plus glyphs from Michael Everson's
+                                      ConScript Unicode Registry (CSUR) that
+                                      are in the Private Use Area in Plane 15
+
+     unifont-<version>.bmp            The entire Plane 0 Unifont font with
+                                      combining circles, built from the files
+                                      font/plane00/*.hex, showing combining
+                                      circles
+
+The directory that was originally named "font/hexsrc" has been renamed
+to "font/plane00" now that Unifont supports glyphs beyond Plane 0.  Higher
+plane glyphs appear in "font/plane01" through "font/plane0F".  Currently
+there is no "font/plane10" directory (the highest Unicode plane is Plane 17,
+or 0x10).
 
 This release incorporates all glyph errata issued by The Unicode Consortium
 from Unicode 1.0 errata to the latest.
 
 This release incorporates all glyph errata issued by The Unicode Consortium
 from Unicode 1.0 errata to the latest.
@@ -51,168 +83,19 @@ from Unicode 1.0 errata to the latest.
 
 BUILDING
 --------
 
 BUILDING
 --------
-To make the binaries from the top directory, type
-
-     make
-
-This will create the directories "./bin", "./lib", and "./font/compiled".
-
-The compiled programs will be in the "./bin" directory.  The ./lib
-directory will contain the file wcwidth.c, to provide an implementation
-of the POSIX wcwidth() and wcswidth() functions.  The font will build,
-placing files in the "font/compiled/" subdirectory.
-
-The default settings will build Unifont with four-digit hexadecimal
-glyphs appearing for unassigned code points, and with no glyphs for
-Private Use Area code points or non-printing code points.  As an
-example, to override these defaults in this top-level directory type
-
-     make UNASSIGNED="" PUA="hexsrc/pua.hex" \
-          NONPRINTING="hexsrc/nonprinting.hex"
-
-To make certain that no unassigned, PUA, or non-printing glyphs are
-included, type
-
-     make UNASSIGNED="" PUA="" NONPRINTING=""
-
-You can similarly build Unifont with your own custom PUA glyphs.
-Just specify where the custom PUA file is, relative to the "font/"
-directory.  Note, though, that unifontpic generates its glyph
-diagram from whatever .hex files are in the "font/hexsrc" directory.
-Therefore, to have custom PUA glyphs be part of this generated
-glyph map, replace "font/hexsrc/pua.hex" with a custom pua.hex file.
-
-Other useful make variables that can be overridden on the command line
-from the top-level Makefile include:
-
-     DESTDIR   - By default, not set; set to an alternate root location
-                 such as "~/tmproot" if desired, but this directory
-                 must already exist.
-     USRDIR    - Set as typically "usr" or "usr/local" for installation
-     PREFIX    - This is just $(DESTDIR)/$(USRDIR) but can be overridden.
-     PKGDEST   - Destination for package files, by default "usr/share"
-                 so that this README file, the TUTORIAL file, etc. will
-                 be installed in "/usr/share/unifont".
-     COMPRESS  - Set to non-zero to compress installed man pages
-
-All of the .hex file names can be replaced selectively on the top-level
-"make" command line.  The list of component hex file variables is:
-
-     UNIFONTBASE - The bulk of Unifont scripts
-     CJK         - Most of the CJK Ideographs
-     HANGUL      - Hangul Syllables block
-     NONPRINTING - Glyphs for non-printing characters
-     SPACES      - Space glyphs, single- and double-width
-     UNASSIGNED  - Glyphs for unassigned code points
-     PUA         - Glyphs for the Private Use Area
-
-To install the binaries, man pages, and Unifont, review the
-destination directories in the Makefiles to verify that the files
-will be installed where you want, and then type
-
-     make install
-
-This installs programs in "/usr/bin" or "/usr/local/bin" (depending
-on the USRDIR setting in the top-level Makefile), installs PCF and
-TrueType fonts in the appropriate places, and places the following
-files in "/usr/share/unifont" or "/usr/local/share/unifont" (again
-depending on the USRDIR setting in the top-level Makefile):
-
-     combining.txt - list of Unicode Plane 0 combining characters
-     LICENSE.gz    - license information for this package
-     README.gz     - this README file
-     TUTORIAL.gz   - tutorial on using the Unifont utilities
-     unifont.hex   - composite Unifont .hex source, used by GRUB1
-     wchardata.c   - implementation of IEEE 1003.1-2008 wcswidth(), wcwidth()
-     wchardata.o   - object file from wchardata.c
-
-Typing "make install" will install font files from "font/compiled/"
-if that directory exists; otherwise it will install font files from
-the "font/precompiled/" directory.
-
-To rebuild what is in the "font/precompiled" directory (which you
-ordinarily you should never do--there would have to be a very good
-reason), remove its files, modify the DATE and VERSION information in
-the top-level Makefile and in "font/Makefile", then type
-
-     make precompiled
-
-from the top-level directory or the "font/" subdirectory.
-
-To just make the fonts, charts, etc. within the "font" directory,
-install the "bdftopcf" program and FontForge as well as performing
-a "make install" to install the Unifont binaries.  Then from the
-top-level directory type
-
-     cd font
-     make
-
-The resulting fonts will be in the "./font/compiled" directory, along
-with bitmap renderings of each glyph.
-
-WARNING: Building the TrueType version of GNU Unifont will require
-anywhere from 256 MBytes to 1 GByte of virtual memory, can require
-almost 250 Megabytes of free disk space during the build, and is best
-run on a decent processor (say 1 GHz clock rate or better).
-
-During the TrueType build, FontForge will monopolize your CPU...plan
-accordingly.
-
-There is no reason to build the font from scratch unless you modify
-the .hex font source files (or must satisfy an insatiable curiosity),
-because the "./font/precompiled" directory already contains pre-built
-BDF, PCF, and TrueType fonts.
-
-To create a custom version of the font with combining circles (such as
-was done to create the large picture of Unifont), enter these commands:
-
-     cd font/ttfsrc
-     sort ../hexsrc/*.hex | \
-          unigencircles combining.txt ../hexsrc/nonprinting.hex > unifont.hex
-     make
-
-When "make" is finished, the ttfsrc directory will contain a "unifont.ttf"
-file which includes the dashed combining circles that the unigencircles
-utility added.  Copy this "unifont.ttf" file to a safe location in a different
-directory with a more descriptive name.  This font is named "unifontcircles"
-in the font distribution.  Then type
-
-     make clean
-
-If you've made a new version of the font, hand-copy the new font file(s)
-to your desired destination.  Otherwise, precompiled PCF and TrueType
-versions of the font will be copied from "./font/precompiled/" into
-$(DESTDIR)/usr/share/fonts.
-
-After font installation, you might need to restart the X Window System
-for the new fonts to be recognized, but first try the command
-
-     xset fp rehash
-
-in a shell (terminal) window.  If that doesn't work, restart the X
-Window System.
-
-To remove intermediate files, from the top-level directory type
-
-     make clean
-
-To remove all created files and leave the directory in its pre-build
-state, from the top-level directory type
-
-     make distclean
-
-That will remove the "./bin" directory, the "./lib" directory, the
-"./font/compiled" directory, and other intermediate files.  Note that
-this command leaves the files in "./font/precompiled" intact, even
-though a prior "make precompiled" command would have rebuilt those files.
+See the "INSTALL" file in this directory for building instructions.
 
 
 src/ AUTHORS
 ------------
 
 
 src/ AUTHORS
 ------------
-Right now, all the Perl files in the src directory except "hex2sfd",
-"unifontchojung", and "unifontksx" were written by Roman Czyborra (or
-in the case of johab2ucs2, by Jungshik Shin, who then gave it to Roman).
-Roman originally named the "src/hexbraille" script as simply "braille";
+Roman Czyborra wrote all the Perl files in the src directory except
+"hex2sfd", "hexkinya", "unifontchojung", "unifontksx", "unihex2png",
+and "unipng2hex".
+
+In the case of "johab2ucs2", Jungshik Shin wrote the orignial version;
+he then gave it to Roman.  Paul Hardy made further changes to "johab2ucs2".
+
+Roman originally named the "src/hexbraille" script as simply "braille".
 Paul Hardy thought there was too great a chance of a name conflict with
 other utilities, and so renamed it.
 
 Paul Hardy thought there was too great a chance of a name conflict with
 other utilities, and so renamed it.
 
@@ -220,7 +103,15 @@ Luis Alejandro Gonzalez Miranda wrote the original "hex2sfd" Perl
 script, as well as a "howto-build.sh" shell script that Paul Hardy
 converted into "./font/ttfsrc/Makefile".
 
 script, as well as a "howto-build.sh" shell script that Paul Hardy
 converted into "./font/ttfsrc/Makefile".
 
-All the C programs were written by Paul Hardy.
+Paul Hardy wrote "unifontchojung" and "unifontksx" for extracting subsets
+of Hangul glyphs, as an aid in creating a new Hangul Syllables block.
+
+Andrew Miller wrote "hexkinya".  He also wrote "unihex2png" and "unipng2hex"
+based upon Paul Hardy's "unihex2bmp" and "unibmp2hex" programs.  Last but not
+least, he wrote the "unifont-viewer" Perl script to graphically view a Unifont
+hex file dynamically.
+
+Paul Hardy wrote all the C programs.
 
 
 Unifont AUTHORS
 
 
 Unifont AUTHORS
@@ -229,14 +120,14 @@ Roman Czyborra created the original GNU Unifont, including the
 .hex format.  For greater detail, see the HISTORY section below.
 
 David Starner aggregated many glyphs contributed by others and
 .hex format.  For greater detail, see the HISTORY section below.
 
 David Starner aggregated many glyphs contributed by others and
-built these into pre-2004 Unifont releases.
+incorporated these into pre-2004 Unifont releases.
 
 Qianqian Fang began his Wen Quan Yi font in 2004, by which
 time work on Unifont had stopped.  Most of the almost 30,000
 
 Qianqian Fang began his Wen Quan Yi font in 2004, by which
 time work on Unifont had stopped.  Most of the almost 30,000
-CJK ideographs in the latest Unifont versions 5.1 and later
-were taken from Wen Quan Yi with permission of Qianqian Fang.
-The glyphs in "./font/hexsrc/wqy-cjk.hex" are for the most part
-Qianqian Fang's Unibit and Wen Quan Yi glyphs.
+CJK ideographs in Unifont versions 5.1 and later were taken
+from Wen Quan Yi with permission of Qianqian Fang.  The glyphs
+in "./font/plane00/wqy-cjk.hex" are for the most part Qianqian
+Fang's Unibit and Wen Quan Yi glyphs.
 
 Paul Hardy drew most of the newly-drawn glyphs added to the BMP
 from the Unifont 5.1 release to the present release.  This includes
 
 Paul Hardy drew most of the newly-drawn glyphs added to the BMP
 from the Unifont 5.1 release to the present release.  This includes
@@ -245,6 +136,9 @@ the 11,172 glyphs in the Hangul Syllables block, plus approximately
 
 Andrew Miller drew the glyphs added to Unicode 6.3.0.
 
 
 Andrew Miller drew the glyphs added to Unicode 6.3.0.
 
+For higher planes and the Private Use Area glyphs, see the ChangeLog
+file.
+
 
 LICENSE
 -------
 
 LICENSE
 -------
@@ -256,6 +150,11 @@ release is licensed as follows:
      the terms of the GNU General Public License version 2,
      or (at your option) a later version.
 
      the terms of the GNU General Public License version 2,
      or (at your option) a later version.
 
+GPL version 2 is contained in the "COPYING" file in the main source
+directory for this package.  If your received this source without
+a copy of GPL version 2, you can download a copy from GNU's website
+at http://www.gnu.org/licenses/gpl-2.0.html.
+
 The license for the compiled fonts is covered by the above GPL terms
 with the GNU font embedding exception, as follows:
 
 The license for the compiled fonts is covered by the above GPL terms
 with the GNU font embedding exception, as follows:
 
@@ -286,33 +185,20 @@ and found to be correct:
 
      Unicode 1.1: U+717F, U+773E, U+809C, U+8480, U+908E
 
 
      Unicode 1.1: U+717F, U+773E, U+809C, U+8480, U+908E
 
-Three new utility programs have also been added:
-
-   - unifontpic - creates a bitmapped graphics (.bmp) file of the entire
-     Basic Multilingual Plane (Plane 0), by default in a 256-by-256
-     glyph grid for ease of printing, and optionally in a 16-by-4096 glyph
-     grid for easier scrolling on a screen, for software that can handle
-     a .bmp file with over 64k pixel rows (not all software can).  The
-     256-by-256 glyph grid can be scaled to print on a piece of paper
-     approximately 3 feet by 3 feet (or one meter by one meter).
+Andrew Miller drew the 5 new additions to the Unicode 6.3.0 Basic
+Multilingual Plane in the initial Unifont 6.3 release.
 
 
-   - unigencircles - adds dashed combining circles to unifont.hex glyphs
-     for code points that are in "font/ttfsrc/combining.txt" but not in
-     "font/hexsrc/nonprinting.hex".
+The latest Unifont 6.3 release includes these glyph changes by Paul Hardy:
 
 
-   - unigenwidth - creates an implementation of the POSIX functions
-     wcwidth() and wcswidth() as specified in IEEE 1003.1-2008, Vol. 2:
-     System Interfaces, Issue 7, pages 2251 and 2241, respectively.
-     Plane 0 widths are determined by reading the current Unifont glyphs.
-     All higher planes, 0x01 through 0x10, are calculated without regard
-     to Unifont glyphs.  This can be modified in the future if Unifont
-     glyphs extend beyond Plane 0.
+   - Armenian -- several glyphs were redrawn based upon feedback from
+     native speakers (U+0530..U+058F).
 
 
-Andrew Miller drew the 5 new additions to the Unicode 6.3.0 Basic
-Multilingual Plane in the initial Unifont 6.3 release.
+   - CJK Radicals Supplement -- several glyphs were redrawn to better match
+     their representations in The Unicode Standard code charts:
+     U+2E9F, U+2EA9, U+2EAC, U+2EAE, U+2EC0, U+2EDE, U+2EE7, and U+2EED.
 
 
-Paul Hardy made the following improvements for the latest Unifont 6.3
-release:
+   - Capricorn sign (U+2651) -- this was redrawn to an alternate form that
+     better fit in an 8 by 16 pixel grid.
 
    - Dashes -- changed to distguish better between different dash types
      (a two horizontal pixel difference is the minimum to easily distinguish
 
    - Dashes -- changed to distguish better between different dash types
      (a two horizontal pixel difference is the minimum to easily distinguish
@@ -363,6 +249,46 @@ release:
    - hangul/ directory -- updated "hangul-generation.html" to match the
      latest version at http://unifoundry.com/hangul/hangul-generation.html
 
    - hangul/ directory -- updated "hangul-generation.html" to match the
      latest version at http://unifoundry.com/hangul/hangul-generation.html
 
+Five new utility programs have also been added:
+
+   - unifontpic - creates a bitmapped graphics (.bmp) file of the entire
+     Basic Multilingual Plane (Plane 0), by default in a 256-by-256
+     glyph grid for ease of printing, and optionally in a 16-by-4096 glyph
+     grid for easier scrolling on a screen, for software that can handle
+     a .bmp file with over 64k pixel rows (not all software can).  The
+     256-by-256 glyph grid can be scaled to print on a piece of paper
+     approximately 3 feet by 3 feet (or one meter by one meter).  Written
+     by Paul Hardy.
+
+   - unigencircles - adds dashed combining circles to unifont.hex glyphs
+     for code points that are in "font/ttfsrc/combining.txt" but not in
+     "font/plane00/nonprinting.hex".  Written by Paul Hardy.
+
+   - unigenwidth - creates an implementation of the POSIX functions
+     wcwidth() and wcswidth() as specified in IEEE 1003.1-2008, Vol. 2:
+     System Interfaces, Issue 7, pages 2251 and 2241, respectively.
+     Plane 0 widths are determined by reading the current Unifont glyphs.
+     All higher planes, 0x01 through 0x10, are calculated without regard
+     to Unifont glyphs.  This can be modified in the future if Unifont
+     glyphs extend beyond Plane 0.  Written by Paul Hardy.
+
+   - unihex2png - converts a unifont.hex-format file into a Portable
+     Network Graphics (PNG) file for editing with a wider rane of graphics
+     editors than the original unihex2bmp allowed.  Written by Andrew
+     Miller, based upon the unihex2bmp source code.  Introduced in
+     Version 6.3.20131215.
+
+   - unipng2hex - converts a PNG graphics file created by unihex2png
+     back into a unifont.hex-format file.  Written by Andrew Miller,
+     based upon the unibmp2hex source code.  Introduced in Version
+     6.3.20131215.
+
+The last two program additions, unihex2png and unipng2hex, also support
+glyph heights of 24 and 32 pixels in addition to Unifont's original
+height of 16 pixels.  hex2bdf and hexdraw have also been modified to
+support these alternate glyph heights.  This capability has not been
+tested extensively, and for now is considered experimental.
+
 
 CHANGES IN VERSION 6.2
 ----------------------
 
 CHANGES IN VERSION 6.2
 ----------------------
@@ -465,7 +391,7 @@ release of version 5.1:
 The result is now there is just one variation of output font rather than
 four.  That one is used to generate the TrueType "unifont.ttf" font.
 
 The result is now there is just one variation of output font rather than
 four.  That one is used to generate the TrueType "unifont.ttf" font.
 
-The directory "font/hexsrc" contains the .hex input files for building
+The directory "font/plane00" contains the .hex input files for building
 Unifont, and contains these files:
 
      hangul-syllables.hex   Unicode Hangul Syllables, U+AC00..U+D7A3
 Unifont, and contains these files:
 
      hangul-syllables.hex   Unicode Hangul Syllables, U+AC00..U+D7A3
@@ -619,7 +545,7 @@ Other notable additions include:
        (suggested as an acceptable rendering in the Unicode 5.0 Standard),
        now replaced with optional four-digit hexadecimal code point glyphs;
        thought not built into the final font by default, they are available
        (suggested as an acceptable rendering in the Unicode 5.0 Standard),
        now replaced with optional four-digit hexadecimal code point glyphs;
        thought not built into the final font by default, they are available
-       in "font/hexsrc/pua.hex"
+       in "font/plane00/pua.hex"
 
      - Replacement of the Unifont 5.1 gray box glyphs for unassigned
        code points with four-digit hexadecimal glyphs; these are built
 
      - Replacement of the Unifont 5.1 gray box glyphs for unassigned
        code points with four-digit hexadecimal glyphs; these are built