X-Git-Url: http://git.shiar.net/unifont.git/blobdiff_plain/119a78c606ce7e90f07f84f5307628fd5a0837f7..HEAD:/README diff --git a/README b/README index a614834..ed836aa 100644 --- 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). -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 @@ -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: - 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 + INSTALL Instructions for font and software installation 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 - TUTORIAL Tutorial for using this package's utilities The "font/precompiled" directory contains prebuilt font-related files: - coverage.txt Percentage coverage of each Plane 0 script - unifont-.bmp The entire Plane 0 font with combining circles - unifont-.bdf.gz BDF version of Unifont - unifont-.hex Hex string source of glyphs to build Unifont - unifontall-.hex Hex string source of all Plane 0 glyphs, - including nonprinting and PUA glyphs - unifont-.pcf.gz PCF version of Unifont - unifont-.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-.hex Hex string source of glyphs to build + Unifont + unifont-.bdf.gz BDF version of Unifont + unifont-.pcf.gz PCF version of Unifont + unifont-.ttf TrueType version of Unifont + + unifont_sample-.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-.bdf.gz BDF font version of the above .hex file + unifont_sample-.ttf SBIT font version of the above .hex file + + unifont_csur-.* 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-.* Fonts containing glyphs from Unicode + Plane 1 through Plane 14, inclusive + + unifont_upper_csur-.* 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-.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. @@ -51,168 +83,19 @@ from Unicode 1.0 errata to the latest. 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 ------------ -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. @@ -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". -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 @@ -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 -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 -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 @@ -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. +For higher planes and the Private Use Area glyphs, see the ChangeLog +file. + 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. +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: @@ -286,33 +185,20 @@ and found to be correct: 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 @@ -363,6 +249,46 @@ release: - 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 ---------------------- @@ -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 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 @@ -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 - 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