"Fossies" - the Fresh Open Source Software Archive

Member "unifont-12.1.02/doc/unifont.txt" (16 Mar 2019, 103211 Bytes) of package /linux/misc/unifont-12.1.02.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "unifont.txt": 12.0.01_vs_12.1.01.

    1 Table of Contents
    2 *****************
    3 
    4 1 Introduction
    5 2 Tutorial
    6   2.1 Unicode
    7   2.2 Unifont Structure
    8   2.3 Hex File Format
    9   2.4 Using Graphical Tools
   10   2.5 Using Hexdraw
   11   2.6 Checking Coverage
   12   2.7 Custom Builds
   13   2.8 One Glyph per File
   14   2.9 Viewing a Unifont File Interactively
   15   2.10 Seeing the Big Picture (Literally!)
   16   2.11 Combining Circles
   17   2.12 Installing Fonts on GNU/Linux
   18   2.13 Creating a Brand New Font
   19   2.14 Updates to Unicode
   20 3 Reference
   21   3.1 bdfimplode
   22     3.1.1 bdfimplode NAME
   23     3.1.2 bdfimplode SYNOPSIS
   24     3.1.3 bdfimplode DESCRIPTION
   25     3.1.4 bdfimplode FILES
   26     3.1.5 bdfimplode SEE ALSO
   27     3.1.6 bdfimplode AUTHOR
   28     3.1.7 bdfimplode LICENSE
   29     3.1.8 bdfimplode BUGS
   30   3.2 hex2bdf
   31     3.2.1 hex2bdf NAME
   32     3.2.2 hex2bdf SYNOPSIS
   33     3.2.3 hex2bdf DESCRIPTION
   34     3.2.4 hex2bdf OPTIONS
   35     3.2.5 hex2bdf EXAMPLE
   36     3.2.6 hex2bdf FILES
   37     3.2.7 hex2bdf SEE ALSO
   38     3.2.8 hex2bdf AUTHOR
   39     3.2.9 hex2bdf LICENSE
   40     3.2.10 hex2bdf BUGS
   41   3.3 hex2sfd
   42     3.3.1 hex2sfd NAME
   43     3.3.2 hex2sfd SYNOPSIS
   44     3.3.3 hex2sfd DESCRIPTION
   45     3.3.4 hex2sfd FILES
   46     3.3.5 hex2sfd SEE ALSO
   47     3.3.6 hex2sfd AUTHOR
   48     3.3.7 hex2sfd LICENSE
   49     3.3.8 hex2sfd BUGS
   50   3.4 hexbraille
   51     3.4.1 hexbraille NAME
   52     3.4.2 hexbraille SYNOPSIS
   53     3.4.3 hexbraille DESCRIPTION
   54     3.4.4 hexbraille FILES
   55     3.4.5 hexbraille SEE ALSO
   56     3.4.6 hexbraille AUTHOR
   57     3.4.7 hexbraille LICENSE
   58     3.4.8 hexbraille BUGS
   59   3.5 hexdraw
   60     3.5.1 hexdraw NAME
   61     3.5.2 hexdraw SYNOPSIS
   62     3.5.3 hexdraw DESCRIPTION
   63     3.5.4 hexdraw FILES
   64     3.5.5 hexdraw SEE ALSO
   65     3.5.6 hexdraw AUTHOR
   66     3.5.7 hexdraw LICENSE
   67     3.5.8 hexdraw BUGS
   68   3.6 hexkinya
   69     3.6.1 hexkinya NAME
   70     3.6.2 hexkinya SYNOPSIS
   71     3.6.3 hexkinya DESCRIPTION
   72     3.6.4 hexkinya FILES
   73     3.6.5 hexkinya SEE ALSO
   74     3.6.6 hexkinya AUTHOR
   75     3.6.7 hexkinya LICENSE
   76     3.6.8 hexkinya BUGS
   77   3.7 hexmerge
   78     3.7.1 hexmerge NAME
   79     3.7.2 hexmerge SYNOPSIS
   80     3.7.3 hexmerge DESCRIPTION
   81     3.7.4 hexmerge FILES
   82     3.7.5 hexmerge SEE ALSO
   83     3.7.6 hexmerge AUTHOR
   84     3.7.7 hexmerge LICENSE
   85     3.7.8 hexmerge BUGS
   86   3.8 johab2ucs2
   87     3.8.1 johab2ucs2 NAME
   88     3.8.2 johab2ucs2 SYNOPSIS
   89     3.8.3 johab2ucs2 DESCRIPTION
   90     3.8.4 johab2ucs2 FILES
   91     3.8.5 johab2ucs2 SEE ALSO
   92     3.8.6 johab2ucs2 AUTHOR
   93     3.8.7 johab2ucs2 LICENSE
   94     3.8.8 johab2ucs2 BUGS
   95   3.9 unibdf2hex
   96     3.9.1 unibdf2hex NAME
   97     3.9.2 unibdf2hex SYNOPSIS
   98     3.9.3 unibdf2hex DESCRIPTION
   99     3.9.4 unibdf2hex FILES
  100     3.9.5 unibdf2hex SEE ALSO
  101     3.9.6 unibdf2hex AUTHOR
  102     3.9.7 unibdf2hex LICENSE
  103     3.9.8 unibdf2hex BUGS
  104   3.10 unibmp2hex
  105     3.10.1 unibmp2hex NAME
  106     3.10.2 unibmp2hex SYNOPSIS
  107     3.10.3 unibmp2hex DESCRIPTION
  108     3.10.4 unibmp2hex OPTIONS
  109     3.10.5 unibmp2hex EXAMPLE
  110     3.10.6 unibmp2hex FILES
  111     3.10.7 unibmp2hex SEE ALSO
  112     3.10.8 unibmp2hex AUTHOR
  113     3.10.9 unibmp2hex LICENSE
  114     3.10.10 unibmp2hex BUGS
  115   3.11 unibmpbump
  116     3.11.1 unibmpbump NAME
  117     3.11.2 unibmpbump SYNOPSIS
  118     3.11.3 unibmpbump DESCRIPTION
  119     3.11.4 unibmpbump OPTIONS
  120     3.11.5 unibmpbump FILES
  121     3.11.6 unibmpbump SEE ALSO
  122     3.11.7 unibmpbump AUTHOR
  123     3.11.8 unibmpbump LICENSE
  124     3.11.9 unibmpbump BUGS
  125   3.12 unicoverage
  126     3.12.1 unicoverage NAME
  127     3.12.2 unicoverage SYNOPSIS
  128     3.12.3 unicoverage DESCRIPTION
  129     3.12.4 unicoverage OPTIONS
  130     3.12.5 unicoverage EXAMPLE
  131     3.12.6 unicoverage FILES
  132     3.12.7 unicoverage SEE ALSO
  133     3.12.8 unicoverage AUTHOR
  134     3.12.9 unicoverage LICENSE
  135     3.12.10 unicoverage BUGS
  136   3.13 unidup
  137     3.13.1 unidup NAME
  138     3.13.2 unidup SYNOPSIS
  139     3.13.3 unidup DESCRIPTION
  140     3.13.4 unidup FILES
  141     3.13.5 unidup SEE ALSO
  142     3.13.6 unidup AUTHOR
  143     3.13.7 unidup LICENSE
  144     3.13.8 unidup BUGS
  145   3.14 unifont-viewer
  146     3.14.1 unifont-viewer NAME
  147     3.14.2 unifont-viewer SYNOPSIS
  148     3.14.3 unifont-viewer DESCRIPTION
  149     3.14.4 unifont-viewer FILES
  150     3.14.5 unifont-viewer SEE ALSO
  151     3.14.6 unifont-viewer AUTHOR
  152     3.14.7 unifont-viewer LICENSE
  153     3.14.8 unifont-viewer BUGS
  154   3.15 unifont1per
  155     3.15.1 unifont1per NAME
  156     3.15.2 unifont1per SYNOPSIS
  157     3.15.3 unifont1per DESCRIPTION
  158     3.15.4 unifont1per OPTIONS
  159     3.15.5 unifont1per FILES
  160     3.15.6 unifont1per SEE ALSO
  161     3.15.7 unifont1per AUTHOR
  162     3.15.8 unifont1per LICENSE
  163     3.15.9 unifont1per BUGS
  164   3.16 unifontchojung
  165     3.16.1 unifontchojung NAME
  166     3.16.2 unifontchojung SYNOPSIS
  167     3.16.3 unifontchojung DESCRIPTION
  168     3.16.4 unifontchojung FILES
  169     3.16.5 unifontchojung SEE ALSO
  170     3.16.6 unifontchojung AUTHOR
  171     3.16.7 unifontchojung LICENSE
  172     3.16.8 unifontchojung BUGS
  173   3.17 unifontksx
  174     3.17.1 unifontksx NAME
  175     3.17.2 unifontksx SYNOPSIS
  176     3.17.3 unifontksx DESCRIPTION
  177     3.17.4 unifontksx FILES
  178     3.17.5 unifontksx SEE ALSO
  179     3.17.6 unifontksx AUTHOR
  180     3.17.7 unifontksx LICENSE
  181     3.17.8 unifontksx BUGS
  182   3.18 unifontpic
  183     3.18.1 unifontpic NAME
  184     3.18.2 unifontpic SYNOPSIS
  185     3.18.3 unifontpic DESCRIPTION
  186     3.18.4 unifontpic OPTIONS
  187     3.18.5 unifontpic EXAMPLES
  188     3.18.6 unifontpic FILES
  189     3.18.7 unifontpic SEE ALSO
  190     3.18.8 unifontpic AUTHOR
  191     3.18.9 unifontpic LICENSE
  192     3.18.10 unifontpic BUGS
  193   3.19 unigencircles
  194     3.19.1 unigencircles NAME
  195     3.19.2 unigencircles SYNOPSIS
  196     3.19.3 unigencircles DESCRIPTION
  197     3.19.4 unigencircles EXAMPLE
  198     3.19.5 unigencircles FILES
  199     3.19.6 unigencircles SEE ALSO
  200     3.19.7 unigencircles AUTHOR
  201     3.19.8 unigencircles LICENSE
  202     3.19.9 unigencircles BUGS
  203   3.20 unigenwidth
  204     3.20.1 unigenwidth NAME
  205     3.20.2 unigenwidth SYNOPSIS
  206     3.20.3 unigenwidth DESCRIPTION
  207     3.20.4 unigenwidth EXAMPLE
  208     3.20.5 unigenwidth FILES
  209     3.20.6 unigenwidth SEE ALSO
  210     3.20.7 unigenwidth AUTHOR
  211     3.20.8 unigenwidth LICENSE
  212     3.20.9 unigenwidth BUGS
  213   3.21 unihex2bmp
  214     3.21.1 unihex2bmp NAME
  215     3.21.2 unihex2bmp SYNOPSIS
  216     3.21.3 unihex2bmp DESCRIPTION
  217     3.21.4 unihex2bmp OPTIONS
  218     3.21.5 unihex2bmp EXAMPLE
  219     3.21.6 unihex2bmp FILES
  220     3.21.7 unihex2bmp SEE ALSO
  221     3.21.8 unihex2bmp AUTHOR
  222     3.21.9 unihex2bmp LICENSE
  223     3.21.10 unihex2bmp BUGS
  224   3.22 unihex2png
  225     3.22.1 unihex2png NAME
  226     3.22.2 unihex2png SYNOPSIS
  227     3.22.3 unihex2png DESCRIPTION
  228     3.22.4 unihex2png OPTIONS
  229     3.22.5 unihex2png EXAMPLE
  230     3.22.6 unihex2png FILES
  231     3.22.7 unihex2png SEE ALSO
  232     3.22.8 unihex2png AUTHOR
  233     3.22.9 unihex2png LICENSE
  234     3.22.10 unihex2png BUGS
  235   3.23 unihexfill
  236     3.23.1 unihexfill NAME
  237     3.23.2 unihexfill SYNOPSIS
  238     3.23.3 unihexfill DESCRIPTION
  239     3.23.4 unihexfill OPTIONS
  240     3.23.5 unihexfill FILES
  241     3.23.6 unihexfill EXAMPLE
  242     3.23.7 unihexfill SEE ALSO
  243     3.23.8 unihexfill AUTHOR
  244     3.23.9 unihexfill LICENSE
  245     3.23.10 unihexfill BUGS
  246   3.24 unihexgen
  247     3.24.1 unihexgen NAME
  248     3.24.2 unihexgen SYNOPSIS
  249     3.24.3 unihexgen DESCRIPTION
  250     3.24.4 unihexgen OPTIONS
  251     3.24.5 unihexgen FILES
  252     3.24.6 unihexgen EXAMPLE
  253     3.24.7 unihexgen SEE ALSO
  254     3.24.8 unihexgen AUTHOR
  255     3.24.9 unihexgen LICENSE
  256     3.24.10 unihexgen BUGS
  257   3.25 unihexrotate
  258     3.25.1 unihexrotate NAME
  259     3.25.2 unihexrotate SYNOPSIS
  260     3.25.3 unihexrotate DESCRIPTION
  261     3.25.4 unihexrotate OPTIONS
  262     3.25.5 unihexrotate EXAMPLES
  263     3.25.6 unihexrotate FILES
  264     3.25.7 unihexrotate SEE ALSO
  265     3.25.8 unihexrotate AUTHOR
  266     3.25.9 unihexrotate LICENSE
  267     3.25.10 unihexrotate BUGS
  268   3.26 unipagecount
  269     3.26.1 unipagecount NAME
  270     3.26.2 unipagecount SYNOPSIS
  271     3.26.3 unipagecount DESCRIPTION
  272     3.26.4 unipagecount OPTIONS
  273     3.26.5 unipagecount FILES
  274     3.26.6 unipagecount SEE ALSO
  275     3.26.7 unipagecount AUTHOR
  276     3.26.8 unipagecount LICENSE
  277     3.26.9 unipagecount BUGS
  278   3.27 unipng2hex
  279     3.27.1 unipng2hex NAME
  280     3.27.2 unipng2hex SYNOPSIS
  281     3.27.3 unipng2hex DESCRIPTION
  282     3.27.4 unipng2hex OPTIONS
  283     3.27.5 unipng2hex EXAMPLE
  284     3.27.6 unipng2hex FILES
  285     3.27.7 unipng2hex SEE ALSO
  286     3.27.8 unipng2hex AUTHOR
  287     3.27.9 unipng2hex LICENSE
  288     3.27.10 unipng2hex BUGS
  289 
  290 
  291 1 Introduction
  292 **************
  293 
  294 This document describes the process of using the GNU Unifont utilities
  295 to create a font.  The steps described in the "Using Graphical Tools"
  296 section in the "Tutorial" chapter are more or less the steps that I
  297 (Paul Hardy) followed to add thousands of glyphs to GNU Unifont, except
  298 that I didn't have the luxury of just typing `make' to make a new font
  299 while adding those glyphs in the beginning.
  300 
  301 I streamlined the font build process after I was done drawing the
  302 Unicode 5.1 glyphs.
  303 
  304 If you have questions, please email `unifoundry@unifoundry.com'.  You
  305 can check for the latest Unifont news at
  306 `http://savannah.gnu.org/projects/unifont' and `http://unifoundry.com'.
  307 You can also submit a bug report through the
  308 `http://savannah.gnu.org/projects/unifont' page.
  309 
  310 DISCLAIMER: Donald Knuth warned in his Metafont book that if someone
  311 started designing type, they would never again be able to look at a
  312 page of text normally and just read its content.  There is a point of
  313 no return beyond which a serious font designer begins looking at how
  314 individual letters in a font on a page are drawn, and how they might be
  315 improved.  Be warned!
  316 
  317 -- Paul Hardy (`unifoundry@unifoundry.com')  2008, 2013
  318 
  319 2 Tutorial
  320 **********
  321 
  322 This chapter provides a step-by-step tutorial on using the Unifont
  323 utility programs to modify a font in the GNU Unifont format.
  324 
  325 2.1 Unicode
  326 ===========
  327 
  328 Unicode is an international standard to encode all the world's scripts
  329 with one universal scheme.  Unicode is the default encoding for web
  330 pages and is gaining popularity in many other applications.  To learn
  331 more about Unicode, look at code charts, and see the latest
  332 developments, check out
  333 
  334      http://unicode.org
  335 
  336 Unifont follows the Unicode encoding scheme.  Unicode defines the
  337 numeric value of a character, but does not define one particular font.
  338 There can be (and are) many fonts that support a subset of Unicode
  339 characters.
  340 
  341 In 1998, Roman Czyborra observed that there was still no font, free or
  342 commercial, with complete Unicode coverage.  He envisioned a
  343 low-quality bitmapped font as an easy way to produce a font that
  344 covered much of the Unicode standard.
  345 
  346 2.2 Unifont Structure
  347 =====================
  348 
  349 GNU Unifont is a bitmapped pixel font, which is also converted to an
  350 outline TrueType font.  Roman Czyborra began this font in 1998 with a
  351 goal of having one glyph rendered for each visible character in the
  352 Unicode Basic Multilingual Plane (Plane 0, the first 65,536
  353 characters).  His original writing on this is at
  354 `http://czyborra.com/unifont/'.
  355 
  356 (Note that the term "character" is used very loosely here for
  357 simplicity; the Unicode Standard has a stricter definition of what
  358 constitutes a character.)
  359 
  360 The font is dual-width.  Each character is 16 pixels tall, and either 8
  361 or 16 pixels wide.  The characters are stored in a unique .hex file
  362 format invented by Roman Czyborra as a convenient way of giving each
  363 character exactly a one line specification.  Conversion between this
  364 .hex format and BDF font format is trivial.
  365 
  366 Glyphs can actually be 8, 16, 24, or 32 pixels wide, but this extended
  367 capability should be considered experimental.  Prior to the release of
  368 Unicode 10.0.0, hooks were put in place in some of the Unifont
  369 utilities to allow for the possibility of future fonts to represent
  370 complex glyphs such as Cuneiform.  Unicode 10.0.0 created a need for
  371 quadruple-width glyphs (31 pixels wide, encoded as 32 pixels wide) for
  372 some historic Chinese ideographs assigned to the BMP; that currently is
  373 the only place glyphs other than single- or double-width are used.  As
  374 a result, those Unifont utilities that support quadruple-width glyphs
  375 have updated descriptions in the reference section of this document.
  376 
  377 2.3 Hex File Format
  378 ===================
  379 
  380 By convention, files containing the Unifont native font format have the
  381 extension ".hex".  Their format is extremely simple, consisting of two
  382 fields separated with a colon (":") and ending with a newline.
  383 
  384 The first field is the Unicode code point, in hexadecimal.  For all
  385 Plane 0 code points, this is a four digit hexadecimal number.
  386 Hexadecimal digits are (in order) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
  387 C, D, E, and F.  The Unicode Standard uses a hexadecimal number to
  388 assign each character a location.  These locations are called "code
  389 points" and their range is 0 through 10FFFF, inclusive.
  390 
  391 The range 0000 through FFFF, inclusive, is called the Basic Multilingual
  392 Plane (BMP), or Plane 0.  This plane contains glyphs for most of the
  393 world's modern writing scripts.
  394 
  395 Unifont utilities support glyphs across the entire Unicode range.  The
  396 current distribution includes glyphs for Unicode's Plane 0, Plane 1
  397 (the Supplemental Multilingual Plane, or SMP), and others.  Coverage of
  398 the SMP is only partial.
  399 
  400 The first field in a `.hex' file should be either four digits long for
  401 the Basic Multilingual Plane, or six digits long for higher Unicode
  402 planes, following the convention of the Unicode Standard.
  403 
  404 The second field is a string of hexadecimal digits.  There are 32
  405 digits for a character that is 8 pixels wide, and 64 digits for a
  406 character that is 16 pixels wide.
  407 
  408 The good news is you don't have to worry about these long digit
  409 strings.  Roman Czyborra wrote a utility, `hexdraw', to convert .hex
  410 fonts to a form that can be edited with a plain text editor, then
  411 converted back into .hex format.
  412 
  413 Paul Hardy wrote two utilities to do the same thing except with
  414 bitmapped graphics images for editing with a graphics editor:
  415 `unihex2bmp' converts a block of 256 characters into a graphics file,
  416 and `unibmp2hex' converts such a graphics file back into .hex format.
  417 These bitmaps display the 256 characters in a block arranged in a 16 by
  418 16 character grid.  The graphics editor must maintain the image as a
  419 monochrome (black and white) file, with one bit per pixel.  After
  420 conversion from a .bmp file back to a .hex file, the next step is
  421 conversion to a BDF font file.  A BDF file can only encode a pixel
  422 being on or off (i.e., black or white only with no intermediate shades
  423 of gray).
  424 
  425 Andrew Miller later converted `unihex2bmp' and `unibmp2hex' to Perl,
  426 transforming them into `unihex2png' and `unipng2hex', respectively.
  427 These programs convert Unifont .hex files to and from Portable Network
  428 Graphics files.
  429 
  430 The `unihex2png',`unipng2hex', and `hexdraw' programs handle the full
  431 Unicode code point range of 0x000000 through 0x10FFFF.  The
  432 `unihex2bmp' and `unibmp2hex' programs support the full 32-bit unsigned
  433 integer range of 0x00000000 through 0xFFFFFFFF, but have not been
  434 tested extensively beyond the Unicode upper limit of 0x10FFFF.  The
  435 range of the C programs might be truncated in the future to only cover
  436 to 0x10FFFF, the limit of the Unicode code point space.
  437 
  438 2.4 Using Graphical Tools
  439 =========================
  440 
  441 Let's look at an example.  Suppose you want to modify the Coptic letters
  442 in the range U+2C80..U+2CFF ("U+" is Unicode shorthand).  These letters
  443 are in the upper half of the block U+2C00..U+2CFF.  The Unicode
  444 utilities in this package refer to this as "page" 2C.  ("Page" is not a
  445 Unicode term -- it is just a term unique to this package to refer to a
  446 block of 256 code points/characters).
  447 
  448 The steps to follow will be:
  449 
  450   1. Convert .hex version of the page 2C range as a 16 by 16 bitmapped
  451      grid.
  452 
  453   2. Modify the bitmap in any graphics editor, being careful to re-save
  454      it as a Windows Bitmap (.bmp) or Wireless Bitmap file when
  455      finished.
  456 
  457   3. Convert the modified bitmap back into a .hex font file.
  458 
  459   4. Merge the results with the original `unifont.hex' file (or
  460      whatever its name might be).
  461 
  462   5. Run `unidup' on the resulting file to guard against duplicate
  463      character definitions.
  464 
  465   6. Create the new bitmapped version of the font.
  466 
  467   7. Check the compiled font for duplicates.
  468 
  469   8. If there are duplicates, remove them and go back to Step 5.
  470 
  471   9. Create the new TrueType version or other versions of the font.
  472 
  473 
  474 If the script has combining characters (such as accent glyphs), also
  475 add their code points to the proper `*combining.txt' file in the
  476 directory for the corresponding Unicode plane.  That way, when the font
  477 is converted to TrueType those glyphs will have zero space.  For a
  478 script with combining characters, all glyphs that can appear with
  479 combining characters must have the same width so that the combining
  480 characters will be properly positioned.
  481 
  482 *Step 1:* Convert the .hex range into a bitmap grid.  Assuming our font
  483 file is named `unifont.hex', type
  484 
  485      unihex2bmp -p2C < unifont.hex > uni2C.bmp
  486 
  487 *Step 2:* Modify `uni2C.bmp' with your favorite graphics editor.  Note
  488 that whatever graphics editor you use must preserve the file as a black
  489 and white bitmap (monochrome), with one bit per pixel.  During editing,
  490 you can draw guidelines outside the actual 16x16 font pixel area; they
  491 will be ignored when converting back into .hex format.  You can also
  492 erase the grid borders between code points on purpose or by accident,
  493 and it will have no effect on the generated .hex file.  Just don't
  494 erase the code point numbers on the outer edges of the grid.  The
  495 conversion from .bmp back to .hex only looks at the "U+0000" in the
  496 upper left-hand corner of the bitmap graphic and other code point
  497 numbers, and at each code point's 16x16 pixel area inside its 32x32
  498 pixel grid area.  Every other artifact in the final graphics file
  499 outside these areas is ignored.
  500 
  501 If a new version of Unicode adds glyphs to a page that were previously
  502 unassigned, be sure to remove the newly-assigned code points from the
  503 `unassigned.hex' file because the code point is no longer unassigned.
  504 
  505 *Step 3:* Convert the edited .bmp file back into .hex format:
  506 
  507      unibmp2hex < uni2C.bmp > uni2C.hex
  508 
  509 Note that the conversion from a bitmap image to a .hex file can't
  510 distinguish between a legitimate single- or double-width space
  511 character and a code point that does not have an assigned value.
  512 Therefore, space glyphs are separately contained in the `spaces.hex'
  513 file.
  514 
  515 *Step 4:* Merge the results with the original `unifont.hex' file.  This
  516 requires several sub-steps:
  517 
  518    * Edit the original `unifont.hex' file and delete the lines that
  519      begin with "2C".
  520 
  521    * Insert the `uni2C.hex' file into `unifont.hex', either with a text
  522      editor such as `emacs' or `vi', or with a GNU/Linux command such
  523      as:
  524 
  525           sort uni2C.hex unifont.hex > new-unifont.hex
  526 
  527      This second option (using `sort') is preferred, because `unidup'
  528      (in Step 5) might miss duplicate code points if your final result
  529      isn't in proper order.
  530 
  531 
  532 *Step 5:* Make sure there are no duplicates with `unidup':
  533 
  534      unidup < unifont.hex
  535 
  536 or
  537 
  538      unidup < new-unifont.hex
  539 
  540 depending on the name of your final font file.  If there is no output,
  541 your modified font contains no duplicates.
  542 
  543 This editing is best done on an input .hex file, such as
  544 `unifont-base.hex'.
  545 
  546 *Step 6:* Create the new bitmapped version of the font.  In the `font/'
  547 directory, type
  548 
  549      make hex
  550 
  551 *Step 7:* Check the compiled font for duplicates.  Change to the
  552 `font/compiled/' directory and run
  553 
  554      unidup < mynewfontfile.hex
  555 
  556 for whatever font file you created.
  557 
  558 *Step 8:* If there are duplicates, remove them in the `font/' directory
  559 and go back to Step 5.
  560 
  561 *Step 9:* Create the new TrueType version of the font and all other
  562 bitmapped versions.  From the `font/' directory, type
  563 
  564      make distclean && make
  565 
  566 Then be prepared to wait a long time unless you are using a computer
  567 with plenty of RAM and CPU horsepower.  Your computer should have at
  568 least 256 Megabytes of virtual memory (RAM), and at least 250 Megabytes
  569 of free disk space.
  570 
  571 To only create a BDF font, in the `font/' directory just type
  572 
  573      make bdf
  574 
  575 To only create a BDF and PCF font, in the `font/' directory type
  576 
  577      make pcf
  578 
  579 Creating a BDF font is the first step in creating a PCF font (not
  580 counting generating the compiled master ".hex" input file).  BDF fonts
  581 can be created just with the tools in this package.  PCF fonts are
  582 created by running `bdftopcf' on the BDF font.  TrueType fonts require
  583 FontForge.
  584 
  585 The Unifont package also includes two programs for working with
  586 Portable Network Graphics (PNG) files instead of BMP files.  These
  587 utilities are `unihex2png' and `unipng2hex'.  They work in a similar
  588 manner to the corresponding programs `unihex2bmp' and `unibmp2hex',
  589 respectively.
  590 
  591 To use `unihex2png' instead of `unihex2bmp', continuing the example of
  592 the Coptic script in the U+2Cxx range, type:
  593 
  594      unihex2png -p 2C -i unifont.hex -o uni2C.png
  595 
  596 Note that with `unihex2bmp' specifying input and output files is
  597 optional, while with `unihex2png' at least the PNG filename must be
  598 specified explicitly.  More specifically, `unihex2png' will read a .hex
  599 file format input from STDIN if no "-i" argument is specified, but the
  600 name of the binary PNG file must always be specified with the "-o"
  601 option.
  602 
  603 Then edit the resulting PNG file to your heart's content.  When done,
  604 convert the file back into a `unifont.hex' format file.  In this
  605 example, type:
  606 
  607      unipng2hex -i uni2C.png -o uni2C.hex
  608 
  609 Similar to `unihex2png', the binary PNG file must be specified with
  610 "-i" but the .hex format file will be written to STDOUT if the "-o"
  611 option is omitted.
  612 
  613 Finally, merge  your changes in with your main .hex font file as
  614 described previously in this section.
  615 
  616 2.5 Using Hexdraw
  617 =================
  618 
  619 Roman Czyborra's original utility to edit glyphs is the `hexdraw' Perl
  620 script.  Using the same script as in the previous chapter, Coptic, here
  621 are the steps for modifying `unifont.hex' using `hexdraw'.
  622 
  623 First, realize that Unifont has tens of thousands of glyphs
  624 (characters, using the term character loosely).  In this example, out
  625 of the tens of thousands of glyphs, we want to modify the range
  626 U+2C80..U+2CFF (only 128 glyphs).
  627 
  628 The range U+2C80..U+2CFF could be extracted from `unifont.hex' by using
  629 the `egrep' utility to look for lines beginning with "2C8" through
  630 "2CF", or that range could be isolated by copying `unifont.hex' into
  631 another file, and deleting all lines except the desired range.
  632 
  633 The following steps will probably minimize typographical errors, but
  634 they aren't the only way.
  635 
  636   1. "Grep" the desired block of 256 glyphs (using the `grep' utility)
  637      and convert this into a text representation for editing.
  638 
  639   2. Edit the block with a text editor, such as `emacs' or `vi'.
  640 
  641   3. Convert the edited text file back into .hex format.
  642 
  643   4. Delete the edited block range from the original font file.
  644 
  645   5. Merge the two .hex files into one file.
  646 
  647   6. Check for duplicates with `unidup'.
  648 
  649   7. Generate new fonts as described in the "Using Graphical Tools"
  650      section above.
  651 
  652 
  653 *Step 1:* Extract the desired block with `grep':
  654 
  655      grep "^2C" unifont.hex | hexdraw > uni2C.txt
  656 
  657 *Step 2:* Edit `uni2C.txt' with a text editor.
  658 
  659 *Step 3:* Convert the text file back into .hex format:
  660 
  661      hexdraw < uni2C.txt > uni2C.hex
  662 
  663 *Step 4:* Delete the lines in the original `unifont.hex' file that
  664 begin with "2C".
  665 
  666 *Step 5:* Merge the two files:
  667 
  668      sort unifont.hex uni2C.hex > new-unifont.hex
  669 
  670 or use Roman's `hexmerge' utility:
  671 
  672      hexmerge unifont.hex uni2C.hex > new-unifont.hex
  673 
  674 *Step 6:* Check for duplicates:
  675 
  676      unidup < new-unifont.hex
  677 
  678 Of course, remove any reported duplicates.
  679 
  680 *Step 7:* Build the font as in the "Using Graphical Tools" section
  681 above.  This can be as simple as typing
  682 
  683      make
  684 
  685 in the `font/' directory.
  686 
  687 I (Paul Hardy) had only used `hexdraw' in the very beginning of my work
  688 on Unifont.  Once I got my graphics programs working, I ignored it for
  689 months.  Then I wanted to go through all of the Yi Syllables and Yi
  690 Radicals -- over 1000 glyphs -- to fine-tune their horizontal alignment
  691 after I drew them.  `hexdraw' turned out to be the perfect tool for
  692 this.  By printing hyphens ("-") as place holders where a pixel is off,
  693 it allowed me to verify space to the left and right of each character.
  694 I later used `hexdraw' for similar fine-tuning of spacing on Hangul and
  695 other glyphs.  It is ideal for the task.
  696 
  697 2.6 Checking Coverage
  698 =====================
  699 
  700 There should never be duplicates in a .hex file.  If there are, remove
  701 them before the .hex font is turned into a BDF or other font file.  The
  702 recommendations above include making liberal use of `unidup' to avoid
  703 such a situation.
  704 
  705 The `unipagecount' program will print a hexadecimal number of code
  706 points that have coverage within each 256 code point block.  The
  707 hexadecimal number will therefore range from 0 (no coverage) to 100 (=
  708 256 decimal; full coverage).  If a number is ever more than 100
  709 hexadecimal, there's an extra character (glyph) for that page.
  710 
  711 To further look at the coverage within just one 256 code point page
  712 (using page 2C, containing Coptic, as our example) use
  713 
  714      unipagecount -p2C < unifont.hex
  715 
  716 Note that the "page number" can use upper- or lower-case letters:
  717 `-p2C' or `-p2c' will both work.  That will print a 16 x 16 grid of
  718 U+2C00..U+2CFF.  Of course, without placeholder glyphs for the
  719 unassigned code points from `unassigned.hex' in the U+2C00..U+2CFF
  720 range, unipagecount can give a lower number than the true coverage.
  721 
  722 Using the `-l' flag with `unipagecount' will produce an HTML table with
  723 links to corresponding graphics images.  You can get an idea of how
  724 this works in the `font/compiled/' directory after running `make'; the
  725 `index.html' file in that directory will have a table with links to the
  726 256 glyph maps in the `font/compiled/bmp/' subdirectory.
  727 
  728 With `unipagecount', the background color of the cells will range from
  729 red (for 0% complete in that 256 code point block) to orange (a little
  730 coverage) to yellow (more coverage) to green (complete coverage).  If a
  731 cell looks light red or pink, the corresponding code page probably has
  732 duplicate characters.  Verify that with
  733 
  734      sort unifont.hex | unidup
  735 
  736 (substituting the name of your .hex file for `unifont.hex').
  737 
  738 To see the coverage of each Unicode script, copy the file
  739 `font/coverage.dat' into the same directory as the `unifont.hex' file
  740 you're examining.  Then run
  741 
  742      unicoverage < unifont.hex > coverage.out
  743 
  744 This will give you all the scripts within the Unicode Basic
  745 Multilingual Plane, in order, with a percentage (0.0% through 100.0%)
  746 of each script's coverage.  Note that to get the true coverage of
  747 assigned code points, you'll have to merge `unassigned.hex' with the
  748 rest of `unifont.hex' if not done by default in your setup.
  749 
  750 Using the .hex files in `font/plane00/', you can create a font with all
  751 available glyphs with
  752 
  753      sort font/plane00/*.hex >unifont-whole.hex
  754 
  755 and run `unicoverage' using the resulting `unifont-whole.hex' file.
  756 
  757 2.7 Custom Builds
  758 =================
  759 
  760 The font can be built from within the `font/' directory by simply typing
  761 
  762      make
  763 
  764 From the top-level directory (one level above the `font/' directory),
  765 typing
  766 
  767      make BUILDFONT=1
  768 
  769 will also build the font.  The font is not built by default by typing
  770 `make' from the top-level directory, because a pre-built version
  771 already exists in the `font/precompiled/' directory.  Font files are
  772 architecture-independent, so the only reason to build the font is if
  773 you modify its composition.
  774 
  775 By default, source glyphs are read from the `font/plane00/' directory.
  776 Glyphs for unassigned code points are built into the font by default,
  777 but glyphs for Private Use Area code points are not built into the font.
  778 
  779 All of the .hex file names can be replaced selectively on the `make'
  780 command line to override their default values.  Their locations are
  781 relative to the `font/' directory.  The list of component hex file
  782 variables is:
  783 
  784      `UNIFONTBASE'The bulk of Unifont scripts
  785      `CJK'       Most of the CJK Ideographs
  786      `CUSTOM00'  Hand-drawn quadruple-length Plane 0 glyphs
  787      `HANGUL'    Hangul Syllables block
  788      `SPACES'    Space glyphs, single- and double-width
  789      `UNASSIGNED'Glyphs for unassigned code points
  790      `PUA'       Glyphs for the Private Use Area
  791 
  792 So, for example, to build a font that includes four-digit hexadecimal
  793 code point glyphs (as white digits on a black background) for the
  794 Private Use Area, type
  795 
  796      make PUA="plane00/pua.hex"
  797 
  798 because those glyphs reside in the `font/plane00/pua.hex' file.
  799 
  800 To build a font that includes your own special PUA glyphs, type
  801 
  802      make PUA="my-cool-PUA.hex"
  803 
  804 or whatever the name of your PUA glyph .hex file is named.
  805 
  806 To create a build that includes the supplied PUA glyphs but not the
  807 unassigned code point glyphs, type
  808 
  809      make PUA="plane00/pua.hex" UNASSIGNED=""
  810 
  811 If you create a custom font build of your own in one gigantic file, you
  812 can build with just this file by declaring all the ordinary files to be
  813 null:
  814 
  815      make UNIFONTBASE="mycustomfont.hex" \
  816 
  817      CJK="" HANGUL="" UNASSIGNED="" PUA=""
  818 
  819 Note that this command did not include an override for the glyphs for
  820 spaces contained in the `font/plane00/spaces.hex' file; that is, the
  821 variable SPACES was not redefined on the command line.  You could also
  822 pass the argument SPACES="", but just be aware that those spaces glyphs
  823 are in a separate file for a reason.  When graphical (".bmp") glyph
  824 files are converted back into hex string (".hex") format, the
  825 `unibmp2hex' utility doesn't know if a blank glyph area is a space
  826 glyph or not, so it doesn't encode anything.  The
  827 `font/plane00/spaces.hex' file contains glyphs that are strings of 0s,
  828 with length depending on whether the space is nominally a single- or
  829 double-width space.  (Unifont does not distinguish between finer
  830 spacing used in traditional typesetting, such as a thin space, en space,
  831 em space, or quad space; all spaces are either 8 pixels wide or 16
  832 pixels wide.)
  833 
  834 2.8 One Glyph per File
  835 ======================
  836 
  837 The `unifont1per' program will read a Unifont ".hex" file from standard
  838 input and create bitmap output files, one file per Unicode code point
  839 in the ".hex" file.  This can be useful if you want to include single
  840 glyphs as graphic objects for illustration in a document or web page.
  841 Output files have names of the form "U+<codepoint>.bmp", where
  842 "<codepoint>" is the Unicode code point of the glyph.
  843 
  844 Note that if you feed `unifont1per' a huge file of glyph hexadecimal
  845 strings, you will get a directory loaded with individual ".bmp" files,
  846 so use your judgment!
  847 
  848 2.9 Viewing a Unifont File Interactively
  849 ========================================
  850 
  851 The `unifont-viewer' Perl script uses the `wxWidgets' Perl library to
  852 present a dynamic graphical representation of a Unifont hex file.  This
  853 is a convenient way to scan quickly through a complete Unifont hex file.
  854 It is ideal for scanning through a Unifont hex source file after you
  855 have made changes.
  856 
  857 Use `unifont-viewer' to open any Unifont hex file, whether in the Basic
  858 Multilingual Plane up to the maximum Unicode code point of U+10FFFF.
  859 The font is displayed graphically in sections of 16-by-16 glyph grids
  860 (256 glyphs--a "page" in Unifont lingo).  The page numbers (the upper
  861 portion of the hexadecimal code point range) appear in a list along the
  862 left-hand side.  Only page ranges that are present in the Unifont hex
  863 file are listed.
  864 
  865 When `unifont-viewer' loads a hex file, it begins by displaying the
  866 first "page" range in that file.
  867 
  868 2.10 Seeing the Big Picture (Literally!)
  869 ========================================
  870 
  871 The GNU Unifont 6.3 release introduced a new program, `unifontpic'.
  872 This produces a chart of all the Basic Multilingual Plane glyphs in
  873 Unifont.  By default the chart is arranged as a 256-by-256 glyph table.
  874 Specifying the `-l' option produces a chart that is 16 glyphs wide by
  875 4,096 glyphs long.  See unifontpic(1) for more information.
  876 
  877 The "long" version, created with `unifontpic -l', only produces 16
  878 glyphs per row.  This is more useful for scrolling through on a
  879 computer screen.
  880 
  881 GIMP, the GNU Image Manipulation Program, will properly display the
  882 resulting long .bmp file (at least under GNOME), but not all graphics
  883 utilities can.  The output file is over 65,536 pixel rows tall, which
  884 causes problems with some graphics programs.
  885 
  886 To generate a chart with all your glyphs in one giant `unifont.hex'
  887 file, type the command
  888 
  889      unifontpic < unifont.hex > unifont.bmp
  890 
  891 The output is a monochrome Bitmap Graphics Format (.bmp) file.  If you
  892 prefer PNG files, use your favorite graphics program or conversion
  893 program to convert the BMP file to a PNG file.
  894 
  895 This utility is especially useful if you're customizing the font, for
  896 example if adding your own Private Use Area glyphs.
  897 
  898 Single-width and double-width glyphs are reproduced in this bitmap file
  899 at the correct aspect ratio.  Triple-width and quadruple-width glyphs
  900 will be compressed 50% in the horizontal dimension to fit within a
  901 16-by-16 pixel glyph cell.
  902 
  903 The default 256-by-256 code point chart will render satisfactorily on a
  904 sheet of paper approximately 3 feet by 3 feet (1 meter by 1 meter) at
  905 120 dots per inch.  Thus the square format is suitable for printing.
  906 
  907 2.11 Combining Circles
  908 ======================
  909 
  910 The earliest versions of Unifont (before the 5.1 release) used glyphs
  911 that showed dashed circles for combining characters.  This is how the
  912 glyphs appear in The Unicode Standard code charts.  In version 5.1,
  913 Paul Hardy was able to get combining characters to appear superimposed
  914 correctly in the TrueType version of the font.  (There are no plans to
  915 try to get combining characters to work in a BDF or PCF version owing
  916 to the limitations of those bitmapped font formats.)
  917 
  918 With combining characters working in the TrueType font, Paul Hardy
  919 created variations of Unifont with and without combining circles, the
  920 idea being that the version without combining circles would be used to
  921 create the TrueType font.  The variation with combining circles was
  922 kept for reference.
  923 
  924 Unifont Version 6.2 simplified the build to produce only one font
  925 variation, without combining circles.
  926 
  927 Unifont Version 6.3 introduced a new utility, `unigencircles', to
  928 superimpose combining circles over glyphs with code points in a
  929 `combining.txt' file.
  930 
  931 The latest Unifont release contains a parallel set of font files named
  932 `unifont_sample.*'.  These "Unifont Sample" font files contain glyphs
  933 with combining circles where appropriate.  The "Unifont Sample" font is
  934 therefore not intended for general-purpose writing, but only for
  935 illustrating each individual glyph as represented in The Unicode
  936 Standard.
  937 
  938 To run `unigencircles', start with the file `font/ttfsrc/combining.txt'
  939 and type a command of this form:
  940 
  941      unigencircles combining.txt < unifont.hex > unifont-circles.hex
  942 
  943 where `unifont.hex' is a single file containing all the glyphs you wish
  944 to render.  You could create such a file from the `font/' directory
  945 with the command
  946 
  947      sort plane00/*.hex >unifont.hex
  948 
  949 Because the output is another .hex file, you can use all Unifont
  950 utilities with this resulting file just as you would with the .hex files
  951 in `font/plane00/'.
  952 
  953 If you want to build a font from this generated `unifont.hex' file, you
  954 could type
  955 
  956      make UNIFONTBASE="unifont-circles.hex" CJK="" HANGUL="" \
  957 
  958      UNASSIGNED="" PUA=""
  959 
  960 as discussed above.  In this case, if you included
  961 `font/plane00/spaces.hex' in the `unifont.hex' input file, you should
  962 also set SPACES="" on the command line so that you only read in your
  963 final custom `unifont-circles.hex' file.
  964 
  965 2.12 Installing Fonts on GNU/Linux
  966 ==================================
  967 
  968 The original standard font format of Unifont was a BDF font.  The newer
  969 PCF font format loads much faster when a program begins, and so is
  970 preferable for installations using the X Window System and similar
  971 environments.
  972 
  973 Compress PCF fonts using
  974 
  975      gzip -9 fontname.pcf
  976 
  977 Copy the resulting `fontname.pcf.gz' file to
  978 `/usr/share/fonts/X11/misc/' or place in a local font directory if your
  979 windowing software supports that (for example, `~/.fonts/').
  980 
  981 Copy TrueType fonts to `/usr/share/fonts/truetype/' uncompressed or
  982 place in your local font directory.  Note: on some versions of Unix,
  983 such as Solaris, the name of the TrueType directory might be TrueType
  984 and might be under `/usr/share/fonts/X11/' -- examine the system fonts
  985 directories, then modify the font `make install' rule accordingly.
  986 
  987 On most flavors of GNU/Linux with the latest `xset' utility (including
  988 the latest Debian and Red Hat releases), the following command should
  989 allow you to start using the font immediately:
  990 
  991      xset fp rehash
  992 
  993 The safest way to make sure the system knows about the new fonts will
  994 be to restart the X Window System or even reboot.
  995 
  996 2.13 Creating a Brand New Font
  997 ==============================
  998 
  999 The original tools will only produce glyphs that are 16 pixels tall, and
 1000 either 8 or 16 pixels wide.  The utilities `unihex2png', `unipng2hex',
 1001 `hexdraw', and `hex2bdf' now also support glyph heights of 24 and 32
 1002 pixels, and glyph widths of 8, 16, 24, and 32 pixels, but this is not
 1003 fully tested.  PNG glyphs that are 32 pixels wide are only supported if
 1004 the glyphs are also 32 pixels tall.  These dimensions are available for
 1005 experimental use.  See the respective sections for each of these
 1006 programs in the Reference chapter of this document, or their respective
 1007 man pages.
 1008 
 1009 To create a brand new font (or even to add a new script to Unifont in
 1010 the future), plan out the basic dimensions of the characters:
 1011 
 1012    * How far above the lowest pixel will the baseline appear (in other
 1013      words, how many rows are necessary for descenders such as in the
 1014      glyphs for `g', `q', and `y')?
 1015 
 1016    * How many pixels must be empty on top and bottom for accents (in
 1017      other words, what will the height of capital letters be)?
 1018 
 1019    * Must glyphs be centered, left-aligned, or right-aligned?
 1020 
 1021    * For a Latin font, what will the "x-height" be (the height of a
 1022      lower-case "x" and related letters, such as "n" and "r")?
 1023 
 1024 
 1025 Consistent capital heights, x-heights, descender depths, and centering
 1026 will produce a better looking font.  Look over the entire script and
 1027 plan out a template grid that is consistent for the entire script.
 1028 Then use that template for each glyph you draw for the script.
 1029 
 1030 Unifont characters for the most part leave the left-most or right-most
 1031 column of pixels blank if possible (consistent within each script) for
 1032 left-to-right scripts.  Centering is done around the fourth pixel (if a
 1033 glyph is eight pixels wide) or around the eighth pixel (if a glyph is
 1034 16 pixels wide).
 1035 
 1036 Experimenting and (above all) having fun with these utilities is the
 1037 best way to learn.
 1038 
 1039 2.14 Updates to Unicode
 1040 =======================
 1041 
 1042 If a currently unassigned code point is assigned to a character in the
 1043 future, the font can be updated as follows:
 1044 
 1045   1. Delete the code point's entry from `font/plane00/unassigned.hex',
 1046      as that code point will no longer be unassigned.
 1047 
 1048   2. Determine which existing .hex file should contain the newly
 1049      defined character (examine the files to see which one contains
 1050      other glyphs in the script.
 1051 
 1052         * `unifont-base.hex' contains most scripts
 1053 
 1054         * `wqy.hex' contains most CJK ideographs; its name pays homage
 1055           to the Wen Quan Yi font, the source of almost all of its
 1056           glyphs
 1057 
 1058         * `hangul-syllables.hex' contains the Hangul Syllables block
 1059           (U+AC00..U+D7A3); this should never have new code points
 1060           added as it covers the fixed range of the Unicode Hangul
 1061           Syllables block
 1062 
 1063         * `spaces.hex' contains the list of single- and double-width
 1064           spaces
 1065 
 1066 
 1067      If in doubt (for example, if a new script is added to Unicode and
 1068      you're not sure which .hex file to augment), add the new glyphs to
 1069      `unifont-base.hex'.
 1070 
 1071   3. Update the appropriate .hex file.
 1072 
 1073   4. Consider if `font/coverage.dat' has to be updated.  Follow its
 1074      existing format to insert a new script, being sure to change any
 1075      previously unassigned ranges before or after the newly added
 1076      script.
 1077 
 1078   5. Make a new .hex version of the font, and verify that you didn't
 1079      introduce any duplicates.
 1080 
 1081   6. Run `unipagecount' and/or `unicoverage' as described previously to
 1082      verify that you have not mistakenly deleted any existing
 1083      characters.
 1084 
 1085 
 1086 Enjoy!
 1087 
 1088 3 Reference
 1089 ***********
 1090 
 1091 3.1 bdfimplode
 1092 ==============
 1093 
 1094 3.1.1 bdfimplode NAME
 1095 ---------------------
 1096 
 1097 bdfimplode - Convert a BDF font into GNU Unifont .hex format
 1098 
 1099 3.1.2 bdfimplode SYNOPSIS
 1100 -------------------------
 1101 
 1102 bdfimplode < input-font.bdf > output-font.hex
 1103 
 1104 3.1.3 bdfimplode DESCRIPTION
 1105 ----------------------------
 1106 
 1107 bdfimplode reads a BDF font from STDOUT and writes GNU Unifont .hex
 1108 conversion of the font to STDOUT.
 1109 
 1110 3.1.4 bdfimplode FILES
 1111 ----------------------
 1112 
 1113 *.bdf font files
 1114 
 1115 3.1.5 bdfimplode SEE ALSO
 1116 -------------------------
 1117 
 1118 hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1), hexkinya(1),
 1119 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1120 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1121 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1122 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1123 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1124 unipng2hex(1)
 1125 
 1126 3.1.6 bdfimplode AUTHOR
 1127 -----------------------
 1128 
 1129 bdfimplode was written by Roman Czyborra.
 1130 
 1131 3.1.7 bdfimplode LICENSE
 1132 ------------------------
 1133 
 1134 bdfimplode is Copyright (C) 1998 Roman Czyborra.
 1135 
 1136 This program is free software; you can redistribute it and/or modify it
 1137 under the terms of the GNU General Public License as published by the
 1138 Free Software Foundation; either version 2 of the License, or (at your
 1139 option) any later version.
 1140 
 1141 3.1.8 bdfimplode BUGS
 1142 ---------------------
 1143 
 1144 bdfimplode was written to read a BDF file created by the hex2bdf
 1145 script.  It will not properly handle other BDF files with differing
 1146 bounding boxes.
 1147 
 1148 3.2 hex2bdf
 1149 ===========
 1150 
 1151 3.2.1 hex2bdf NAME
 1152 ------------------
 1153 
 1154 hex2bdf - Convert a GNU Unifont .hex file into a BDF font
 1155 
 1156 3.2.2 hex2bdf SYNOPSIS
 1157 ----------------------
 1158 
 1159 hex2bdf [options] < input-font.hex > output-font.bdf
 1160 
 1161 3.2.3 hex2bdf DESCRIPTION
 1162 -------------------------
 1163 
 1164 hex2bdf reads a sorted GNU Unifont .hex file (sorted with the Unix sort
 1165 utility) from STDIN and writes a BDF version of the font to STDOUT.
 1166 
 1167 3.2.4 hex2bdf OPTIONS
 1168 ---------------------
 1169 
 1170 `-f "font-name"'
 1171      Specify the target font name.  If omitted, the default font name
 1172      "Unifont" is assigned.
 1173 
 1174 `-v "font-version"'
 1175      Specify the target font version.  If omitted, the default version
 1176      "1.0" is assigned.
 1177 
 1178 `-c "font-copyright"'
 1179      Specify the target font copyright information.  The default is the
 1180      null string.
 1181 
 1182 `'
 1183      -r pixel-rows Specify how many pixel rows tall a glyph is.  The
 1184      default is the traditional Unifont 16 rows of pixels.  This is an
 1185      addition to support unihex2png(1) and unipng2hex(1), which allow
 1186      designing glyphs that are 16, 24, or 32 pixel rows tall.
 1187 
 1188 
 1189 3.2.5 hex2bdf EXAMPLE
 1190 ---------------------
 1191 
 1192 Sample usage:
 1193 
 1194      hex2bdf -f "Unifont" -c "(C) 2013..." unifont.hex > unifont.bdf
 1195 
 1196 
 1197 3.2.6 hex2bdf FILES
 1198 -------------------
 1199 
 1200 *.hex GNU Unifont font files
 1201 
 1202 3.2.7 hex2bdf SEE ALSO
 1203 ----------------------
 1204 
 1205 bdfimplode(1), hex2sfd(1), hexbraille(1), hexdraw(1), hexkinya(1),
 1206 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1207 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1208 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1209 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1210 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1211 unipng2hex(1)
 1212 
 1213 3.2.8 hex2bdf AUTHOR
 1214 --------------------
 1215 
 1216 hex2bdf was written by Roman Czyborra.
 1217 
 1218 3.2.9 hex2bdf LICENSE
 1219 ---------------------
 1220 
 1221 hex2bdf is Copyright (C) 1998 Roman Czyborra.
 1222 
 1223 This program is free software; you can redistribute it and/or modify it
 1224 under the terms of the GNU General Public License as published by the
 1225 Free Software Foundation; either version 2 of the License, or (at your
 1226 option) any later version.
 1227 
 1228 3.2.10 hex2bdf BUGS
 1229 -------------------
 1230 
 1231 No known bugs exist.  Support for glyph heights other than 16 pixels is
 1232 brand new and has not been extensively tested.
 1233 
 1234 3.3 hex2sfd
 1235 ===========
 1236 
 1237 3.3.1 hex2sfd NAME
 1238 ------------------
 1239 
 1240 hex2sfd - Convert a GNU Unifont .hex file into a FontForge .sfd format
 1241 
 1242 3.3.2 hex2sfd SYNOPSIS
 1243 ----------------------
 1244 
 1245 hex2sfd < input-font.hex > output-font.sfd
 1246 
 1247 3.3.3 hex2sfd DESCRIPTION
 1248 -------------------------
 1249 
 1250 hex2sfd reads a GNU Unifont .hex file from STDIN and writes an outline
 1251 font representation in FontForge Spline Font Database (.sfd) format.
 1252 The resulting .sfd file can then be converted by FontForge into a
 1253 TrueType .ttf font.
 1254 
 1255 3.3.4 hex2sfd FILES
 1256 -------------------
 1257 
 1258 GNU Unifont .hex font files for input, FontForge .sfd font files for
 1259 output
 1260 
 1261 3.3.5 hex2sfd SEE ALSO
 1262 ----------------------
 1263 
 1264 bdfimplode(1), hex2bdf(1), hexbraille(1), hexdraw(1), hexkinya(1),
 1265 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1266 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1267 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1268 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1269 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1270 unipng2hex(1)
 1271 
 1272 3.3.6 hex2sfd AUTHOR
 1273 --------------------
 1274 
 1275 hex2sfd was written by Luis Alejandro Gonzalez Miranda in 2005, with
 1276 modifications by Paul Hardy in 2008.
 1277 
 1278 3.3.7 hex2sfd LICENSE
 1279 ---------------------
 1280 
 1281 hex2sfd is Copyright (C) 2005 Luis Alejandro Gonzalez Miranda, (C) 2008
 1282 Paul Hardy.
 1283 
 1284 This program is free software; you can redistribute it and/or modify it
 1285 under the terms of the GNU General Public License as published by the
 1286 Free Software Foundation; either version 2 of the License, or (at your
 1287 option) any later version.
 1288 
 1289 3.3.8 hex2sfd BUGS
 1290 ------------------
 1291 
 1292 No known bugs exist.
 1293 
 1294 3.4 hexbraille
 1295 ==============
 1296 
 1297 3.4.1 hexbraille NAME
 1298 ---------------------
 1299 
 1300 hexbraille - Algorithmically generate the Unicode Braille range (U+28xx)
 1301 
 1302 3.4.2 hexbraille SYNOPSIS
 1303 -------------------------
 1304 
 1305 hexbraille > output-font.hex
 1306 
 1307 3.4.3 hexbraille DESCRIPTION
 1308 ----------------------------
 1309 
 1310 hexbraille generates a GNU Unifont .hex format file (written on stdout)
 1311 containing the Braille dot patterns in the Unicode range U+2800..U+28FF.
 1312 
 1313 3.4.4 hexbraille FILES
 1314 ----------------------
 1315 
 1316 braille.hex output font files
 1317 
 1318 3.4.5 hexbraille SEE ALSO
 1319 -------------------------
 1320 
 1321 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexdraw(1), hexkinya(1),
 1322 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1323 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1324 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1325 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1326 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1327 unipng2hex(1)
 1328 
 1329 3.4.6 hexbraille AUTHOR
 1330 -----------------------
 1331 
 1332 hexbraille was written by Roman Czyborra, who named this script
 1333 "braille.pl".  In 2003, Roman incorporated a bug fix from Dominique at
 1334 unruh.de.
 1335 
 1336 3.4.7 hexbraille LICENSE
 1337 ------------------------
 1338 
 1339 hexbraille is Copyright (C) 1998 Roman Czyborra.
 1340 
 1341 This program is free software; you can redistribute it and/or modify it
 1342 under the terms of the GNU General Public License as published by the
 1343 Free Software Foundation; either version 2 of the License, or (at your
 1344 option) any later version.
 1345 
 1346 3.4.8 hexbraille BUGS
 1347 ---------------------
 1348 
 1349 No known bugs exist.
 1350 
 1351 3.5 hexdraw
 1352 ===========
 1353 
 1354 3.5.1 hexdraw NAME
 1355 ------------------
 1356 
 1357 hexdraw - Convert a GNU Unifont .hex file to and from an ASCII text file
 1358 
 1359 3.5.2 hexdraw SYNOPSIS
 1360 ----------------------
 1361 
 1362 hexdraw < input-font.hex > output-font.txt
 1363 
 1364 hexdraw < input-font.txt > output-font.hex
 1365 
 1366 3.5.3 hexdraw DESCRIPTION
 1367 -------------------------
 1368 
 1369 hexdraw reads a sorted GNU Unifont .hex file from STDIN and writes a two
 1370 dimensional ASCII art rendering for each glyph to STDOUT.  The output
 1371 file can be edited with any text editor, then converted back into a
 1372 .hex file.  Unifont ASCII hexadecimal glyphs are 16 pixels high and can
 1373 be 8, 16, 24, or 32 pixels wide.
 1374 
 1375 3.5.4 hexdraw FILES
 1376 -------------------
 1377 
 1378 *.hex GNU Unifont font files
 1379 
 1380 3.5.5 hexdraw SEE ALSO
 1381 ----------------------
 1382 
 1383 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexkinya(1),
 1384 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1385 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1386 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1387 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1388 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1389 unipng2hex(1)
 1390 
 1391 3.5.6 hexdraw AUTHOR
 1392 --------------------
 1393 
 1394 hexdraw was written by Roman Czyborra.
 1395 
 1396 3.5.7 hexdraw LICENSE
 1397 ---------------------
 1398 
 1399 hexdraw is Copyright (C) 1998 Roman Czyborra.
 1400 
 1401 This program is free software; you can redistribute it and/or modify it
 1402 under the terms of the GNU General Public License as published by the
 1403 Free Software Foundation; either version 2 of the License, or (at your
 1404 option) any later version.
 1405 
 1406 3.5.8 hexdraw BUGS
 1407 ------------------
 1408 
 1409 No known bugs exist.
 1410 
 1411 3.6 hexkinya
 1412 ============
 1413 
 1414 3.6.1 hexkinya NAME
 1415 -------------------
 1416 
 1417 hexkinya - Create the Private Use Area Kinya syllables
 1418 
 1419 3.6.2 hexkinya SYNOPSIS
 1420 -----------------------
 1421 
 1422 hexkinya > plane15.hex
 1423 
 1424 3.6.3 hexkinya DESCRIPTION
 1425 --------------------------
 1426 
 1427 hexkinya contains pre-defined initial, middle, and final Kinya alphabet
 1428 glyphs to form syllables.  The output is the Kinya Syllables Private
 1429 Use Area block of the ConScript Unicode Registry (CSUR).  The output
 1430 range is U+0F0000 through U+0FDE6F, inclusive.
 1431 
 1432 Note that Plane 15 also contains Pikto glyphs, which follow after Kinya.
 1433 
 1434 3.6.4 hexkinya FILES
 1435 --------------------
 1436 
 1437 None.
 1438 
 1439 3.6.5 hexkinya SEE ALSO
 1440 -----------------------
 1441 
 1442 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1443 hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1444 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1445 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1446 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1447 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1448 unipng2hex(1)
 1449 
 1450 3.6.6 hexkinya AUTHOR
 1451 ---------------------
 1452 
 1453 hexkinya was written by Andrew Miller.
 1454 
 1455 3.6.7 hexkinya LICENSE
 1456 ----------------------
 1457 
 1458 hexkinya is Copyright (C) 2014 by Andrew Miller.
 1459 
 1460 This program is free software; you can redistribute it and/or modify it
 1461 under the terms of the GNU General Public License as published by the
 1462 Free Software Foundation; either version 2 of the License, or (at your
 1463 option) any later version.
 1464 
 1465 3.6.8 hexkinya BUGS
 1466 -------------------
 1467 
 1468 No known bugs exist.
 1469 
 1470 3.7 hexmerge
 1471 ============
 1472 
 1473 3.7.1 hexmerge NAME
 1474 -------------------
 1475 
 1476 hexmerge - Merge two or more GNU Unifont .hex font files into one
 1477 
 1478 3.7.2 hexmerge SYNOPSIS
 1479 -----------------------
 1480 
 1481 hexmerge input-font1.hex input-font2.hex > output-font.hex
 1482 
 1483 3.7.3 hexmerge DESCRIPTION
 1484 --------------------------
 1485 
 1486 hexmerge reads two or more GNU Unifont .hex files, sorts them, and
 1487 writes the combined font to stdout.
 1488 
 1489 3.7.4 hexmerge FILES
 1490 --------------------
 1491 
 1492 *.hex GNU Unifont font files
 1493 
 1494 3.7.5 hexmerge SEE ALSO
 1495 -----------------------
 1496 
 1497 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexkinya(1),
 1498 hexdraw(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1499 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1500 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1501 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1502 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1503 unipng2hex(1)
 1504 
 1505 3.7.6 hexmerge AUTHOR
 1506 ---------------------
 1507 
 1508 hexmerge was written by Roman Czyborra.
 1509 
 1510 3.7.7 hexmerge LICENSE
 1511 ----------------------
 1512 
 1513 hexmerge is Copyright (C) 1998 Roman Czyborra.
 1514 
 1515 This program is free software; you can redistribute it and/or modify it
 1516 under the terms of the GNU General Public License as published by the
 1517 Free Software Foundation; either version 2 of the License, or (at your
 1518 option) any later version.
 1519 
 1520 3.7.8 hexmerge BUGS
 1521 -------------------
 1522 
 1523 No known bugs exist.
 1524 
 1525 3.8 johab2ucs2
 1526 ==============
 1527 
 1528 3.8.1 johab2ucs2 NAME
 1529 ---------------------
 1530 
 1531 johab2ucs2 - Convert a Johab BDF font into GNU Unifont Hangul Syllables
 1532 
 1533 3.8.2 johab2ucs2 SYNOPSIS
 1534 -------------------------
 1535 
 1536 johab2ucs2 < input-font.bdf > output-font.hex
 1537 
 1538 3.8.3 johab2ucs2 DESCRIPTION
 1539 ----------------------------
 1540 
 1541 johab2ucs2 reads a Johab encoded BDF font (as used in Hanterm) from
 1542 STDIN and writes a GNU Unifont .hex file containing the Unicode Hangul
 1543 Syllables to STDOUT.
 1544 
 1545 3.8.4 johab2ucs2 FILES
 1546 ----------------------
 1547 
 1548 *.bdf font files
 1549 
 1550 3.8.5 johab2ucs2 SEE ALSO
 1551 -------------------------
 1552 
 1553 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1554 hexkinya(1), hexmerge(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1),
 1555 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1556 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1557 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1558 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1559 unipng2hex(1)
 1560 
 1561 3.8.6 johab2ucs2 AUTHOR
 1562 -----------------------
 1563 
 1564 johab2ucs2 was written in 1998 by Jungshik Shin and given to Roman
 1565 Czyborra.  Paul Hardy made some modifications and bug fixes in 2008.
 1566 
 1567 3.8.7 johab2ucs2 LICENSE
 1568 ------------------------
 1569 
 1570 johab2ucs2 is Copyright (C) 1998 Jungshik Shin and Roman Czyborra, (C)
 1571 2008 Paul Hardy.
 1572 
 1573 This program is free software; you can redistribute it and/or modify it
 1574 under the terms of the GNU General Public License as published by the
 1575 Free Software Foundation; either version 2 of the License, or (at your
 1576 option) any later version.
 1577 
 1578 3.8.8 johab2ucs2 BUGS
 1579 ---------------------
 1580 
 1581 No known bugs exist.
 1582 
 1583 3.9 unibdf2hex
 1584 ==============
 1585 
 1586 3.9.1 unibdf2hex NAME
 1587 ---------------------
 1588 
 1589 unibdf2hex - Convert BDF font glyphs into Unifont .hex glyphs
 1590 
 1591 3.9.2 unibdf2hex SYNOPSIS
 1592 -------------------------
 1593 
 1594 unibdf2hex < input-font.bdf > output-font.hex
 1595 
 1596 3.9.3 unibdf2hex DESCRIPTION
 1597 ----------------------------
 1598 
 1599 unibdf2hex reads a BDF font file, extracting selected code points and
 1600 printing them on stdout in Unifont .hex format.  This program was used
 1601 to extract CJK ideographs from the 16x16 version of Wen Quan Yi's BDF
 1602 font.  Currently the program is hard-coded to only extract those code
 1603 points that comprise the "wqy.hex" source font file used to build
 1604 "unifont.hex" but this source code could easily be modified.
 1605 
 1606 3.9.4 unibdf2hex FILES
 1607 ----------------------
 1608 
 1609 *.hex GNU Unifont font files
 1610 
 1611 3.9.5 unibdf2hex SEE ALSO
 1612 -------------------------
 1613 
 1614 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1615 hexkinya(1), hexmerge(1), johab2ucs2(1), unibmp2hex(1), unibmpbump(1),
 1616 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1617 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1618 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1619 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1620 unipng2hex(1)
 1621 
 1622 3.9.6 unibdf2hex AUTHOR
 1623 -----------------------
 1624 
 1625 unibdf2hex was written by Paul Hardy.
 1626 
 1627 3.9.7 unibdf2hex LICENSE
 1628 ------------------------
 1629 
 1630 unibdf2hex is Copyright (C) 2008 Paul Hardy.
 1631 
 1632 This program is free software; you can redistribute it and/or modify it
 1633 under the terms of the GNU General Public License as published by the
 1634 Free Software Foundation; either version 2 of the License, or (at your
 1635 option) any later version.
 1636 
 1637 3.9.8 unibdf2hex BUGS
 1638 ---------------------
 1639 
 1640 No known bugs exist.
 1641 
 1642 3.10 unibmp2hex
 1643 ===============
 1644 
 1645 3.10.1 unibmp2hex NAME
 1646 ----------------------
 1647 
 1648 unibmp2hex - Bitmap graphics file to GNU Unifont .hex file converter
 1649 
 1650 3.10.2 unibmp2hex SYNOPSIS
 1651 --------------------------
 1652 
 1653 unibmp2hex [-phexpage] [-iinput_file.bmp] [-ooutput_file.hex] [-w]
 1654 
 1655 3.10.3 unibmp2hex DESCRIPTION
 1656 -----------------------------
 1657 
 1658 unibmp2hex reads a bitmap produced by unihex2bmp before or after
 1659 editing, and converts it back into a Unifont .hex format file.  The
 1660 graphics file contains a block of 256 Unicode code points arranged in a
 1661 16 by 16 grid.  Each code point appears in a 32 by 32 pixel grid.
 1662 Characters are 16 rows high, and 8, 16, or 31 (treated as 32) columns
 1663 wide.
 1664 
 1665 3.10.4 unibmp2hex OPTIONS
 1666 -------------------------
 1667 
 1668 `-p'
 1669      Specify that the code points will be assigned to the 256 block
 1670      space pagenum in the .hex file.  If not specified, unibmp2hex will
 1671      determine the appropriate block by reading the row and column
 1672      headers.  Note that "page" is not a standard Unicode term.  It
 1673      refers to an output bitmap graphics page of 16 by 16 code points.
 1674      If pagenum is greater than FF, the block resides above the Unicode
 1675      Basic Multilingual Plane. In that event, the .hex file will contain
 1676      eight digit hexadecimal code points rather than the Unifont
 1677      standard of four hexadecimal code points.
 1678 
 1679 `-i'
 1680      Specify the input file. The default is STDIN.
 1681 
 1682 `-o'
 1683      Specify the output file. The default is STDOUT.
 1684 
 1685 `-w'
 1686      Force all output .hex glyphs to be 16 pixels wide rather than dual
 1687      width (8 or 16 pixels).
 1688 
 1689 
 1690 3.10.5 unibmp2hex EXAMPLE
 1691 -------------------------
 1692 
 1693 Sample usage:
 1694 
 1695      unibmp2hex -imy_input_file.bmp -omy_output_file.hex
 1696 
 1697 
 1698 3.10.6 unibmp2hex FILES
 1699 -----------------------
 1700 
 1701 *.bmp or *.wbmp graphics files
 1702 
 1703 3.10.7 unibmp2hex SEE ALSO
 1704 --------------------------
 1705 
 1706 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1707 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmpbump(1),
 1708 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1709 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1710 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1711 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1712 unipng2hex(1)
 1713 
 1714 3.10.8 unibmp2hex AUTHOR
 1715 ------------------------
 1716 
 1717 unibmp2hex was written by Paul Hardy.
 1718 
 1719 3.10.9 unibmp2hex LICENSE
 1720 -------------------------
 1721 
 1722 unibmp2hex is Copyright (C) 2007, 2008 Paul Hardy.
 1723 
 1724 This program is free software; you can redistribute it and/or modify it
 1725 under the terms of the GNU General Public License as published by the
 1726 Free Software Foundation; either version 2 of the License, or (at your
 1727 option) any later version.
 1728 
 1729 3.10.10 unibmp2hex BUGS
 1730 -----------------------
 1731 
 1732 No known real bugs exist, except that this software does not perform
 1733 extensive error checking on its input files.  If they're not in the
 1734 format of the original bitmapped output from unihex2bmp, all bets are
 1735 off.
 1736 
 1737 If the output file is for a "page" containing space code points and the
 1738 bitmap file squares for those code points are not empty, unibmp2hex
 1739 preserves the graphics as they are drawn.
 1740 
 1741 3.11 unibmpbump
 1742 ===============
 1743 
 1744 3.11.1 unibmpbump NAME
 1745 ----------------------
 1746 
 1747 unibmpbump - adjust a .bmp image for unibmp2hex processing
 1748 
 1749 3.11.2 unibmpbump SYNOPSIS
 1750 --------------------------
 1751 
 1752 unibmpbump [-iinput-file.bmp] [-ooutput-file.bmp] [-v|--verbose]
 1753 [-V|--version]
 1754 
 1755 3.11.3 unibmpbump DESCRIPTION
 1756 -----------------------------
 1757 
 1758 unibmpbump reads a Microsoft Bitmap Graphics (".bmp") graphics image
 1759 file and, if it appears to be in a known format, converts it for
 1760 processing by unibmp2hex(1).
 1761 
 1762 unibmpbump supports the following Device Independent Bitmap (DIB) header
 1763 byte lengths for input image files:
 1764 
 1765     `12'
 1766           The BITMAPCOREHEADER format.  This was the original Microsoft
 1767           Windows header format.  It has not been encoutered, and was
 1768           added only as a subset of the formats that appear below.
 1769 
 1770     `40'
 1771           The BITMAPINFOHEADER format.  This is the format that most
 1772           graphics creation programs support, and is the header format
 1773           that unibmp2hex expects.
 1774 
 1775     `108'
 1776           The BITMAPV4HEADER format.  This is the format that the Image
 1777           Magick convert program creates when converting a PNG image to
 1778           a BMP image using the "-monochrome" option.
 1779 
 1780     `124'
 1781           The BITMAPV5HEADER format.  This is the format that the Image
 1782           Magick convert program creates when converting a PNG image to
 1783           a BMP image without the "-monochrome" option; convert will
 1784           encode the image as a "grayscale" image, but with only two
 1785           colors: black and white.
 1786 
 1787 
 1788 
 1789 unibmpbump is able to read files created by unihex2png that were
 1790 subsequently saved as BMP files, for example by the convert(1) program,
 1791 which is part of the Image Magick package.  Images created by
 1792 unihex2png(1) are 544 rows high by 560 columns wide.  Images created by
 1793 unihex2bmp(1) are 544 rows high by 576 columns wide.  Thus, if the
 1794 input Bitmap Graphics file is 544 by 560 pixels, unibmpbump assumes
 1795 that the file was originally a Portable Network Graphics (".png") file
 1796 created by unihex2png and realigns the glyphs so they are positioned as
 1797 unibmp2hex expects.
 1798 
 1799 3.11.4 unibmpbump OPTIONS
 1800 -------------------------
 1801 
 1802 `-i'
 1803      Specify an input Bitmaps Graphics (".bmp") file.  If no input file
 1804      is specified, input is taken from stdin.  The input file must be
 1805      either 544 rows by 560 columns (for a file created by unihex2png
 1806      originally) or 544 rows by 576 columns (for a file created by
 1807      unihex2bmp originally).
 1808 
 1809 `-o'
 1810      Specify an output Bitmaps Graphics (".bmp") file.  If no output
 1811      file is specified, output is sent to stdout.  The output file will
 1812      be 544 rows high by 576 columns wide with a 40 byte Device
 1813      Independent Bitmap (DIB) header, which is the format that
 1814      unibmp2hex expects.
 1815 
 1816 `-v, --verbose'
 1817      Verbose output.  Print information about the input file on stderr.
 1818 
 1819 `-V, --version'
 1820      Print the version of unibmpbump and exit.
 1821 
 1822 
 1823 3.11.5 unibmpbump FILES
 1824 -----------------------
 1825 
 1826 Bitmap Graphics (".bmp") input and output files.
 1827 
 1828 3.11.6 unibmpbump SEE ALSO
 1829 --------------------------
 1830 
 1831 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1832 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 1833 unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 1834 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1835 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1836 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1837 unipng2hex(1)
 1838 
 1839 3.11.7 unibmpbump AUTHOR
 1840 ------------------------
 1841 
 1842 unibmpbump was written by Paul Hardy.
 1843 
 1844 3.11.8 unibmpbump LICENSE
 1845 -------------------------
 1846 
 1847 unibmpbump is Copyright (C) 2019 Paul Hardy.
 1848 
 1849 This program is free software; you can redistribute it and/or modify it
 1850 under the terms of the GNU General Public License as published by the
 1851 Free Software Foundation; either version 2 of the License, or (at your
 1852 option) any later version.
 1853 
 1854 3.11.9 unibmpbump BUGS
 1855 ----------------------
 1856 
 1857 No known bugs exist.
 1858 
 1859 3.12 unicoverage
 1860 ================
 1861 
 1862 3.12.1 unicoverage NAME
 1863 -----------------------
 1864 
 1865 unicoverage - Print coverage of each Unicode Script
 1866 
 1867 3.12.2 unicoverage SYNOPSIS
 1868 ---------------------------
 1869 
 1870 unicoverage [-iinput-file] [-ooutput-file]
 1871 
 1872 3.12.3 unicoverage DESCRIPTION
 1873 ------------------------------
 1874 
 1875 unicoverage reads a GNU Unifont .hex font and uses data in coverage.dat
 1876 (which must reside in the current directory).  The output is the
 1877 percent coverage of each script listed in the coverage.dat file.  The
 1878 Unicode code points in the input .hex file must be in ascending order.
 1879 
 1880 3.12.4 unicoverage OPTIONS
 1881 --------------------------
 1882 
 1883 `-i'
 1884      Specify the input file. The default is STDIN.
 1885 
 1886 `-o'
 1887      Specify the output file. The default is STDOUT.
 1888 
 1889 
 1890 3.12.5 unicoverage EXAMPLE
 1891 --------------------------
 1892 
 1893 Sample usage:
 1894 
 1895      unicoverage < unifont.hex >coverage.txt
 1896 
 1897 
 1898 3.12.6 unicoverage FILES
 1899 ------------------------
 1900 
 1901 coverage.dat, *.hex GNU Unifont files.
 1902 
 1903 3.12.7 unicoverage SEE ALSO
 1904 ---------------------------
 1905 
 1906 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1907 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 1908 unibmpbump(1), unidup(1), unifont(5), unifont-viewer(1), unifont1per(1),
 1909 unifontchojung(1), unifontksx(1), unifontpic(1), unigencircles(1),
 1910 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 1911 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 1912 
 1913 3.12.8 unicoverage AUTHOR
 1914 -------------------------
 1915 
 1916 unicoverage was written by Paul Hardy.
 1917 
 1918 3.12.9 unicoverage LICENSE
 1919 --------------------------
 1920 
 1921 unicoverage is Copyright (C) 2007, 2008 Paul Hardy.
 1922 
 1923 This program is free software; you can redistribute it and/or modify it
 1924 under the terms of the GNU General Public License as published by the
 1925 Free Software Foundation; either version 2 of the License, or (at your
 1926 option) any later version.
 1927 
 1928 3.12.10 unicoverage BUGS
 1929 ------------------------
 1930 
 1931 No known real bugs exist, except that this software does not perform
 1932 extensive error checking on its input files.
 1933 
 1934 3.13 unidup
 1935 ===========
 1936 
 1937 3.13.1 unidup NAME
 1938 ------------------
 1939 
 1940 unidup - Scan through a sorted .hex file and report duplicate code
 1941 points
 1942 
 1943 3.13.2 unidup SYNOPSIS
 1944 ----------------------
 1945 
 1946 unidup [input-font.hex]
 1947 
 1948 3.13.3 unidup DESCRIPTION
 1949 -------------------------
 1950 
 1951 unidup reads a sorted GNU Unifont .hex file (sorted with the Unix sort
 1952 utility) and prints notification of any duplicate code points on stdout.
 1953 The input file can be specified on the command line.  If no file is
 1954 specified, input will be read from STDIN until end of file.
 1955 
 1956 3.13.4 unidup FILES
 1957 -------------------
 1958 
 1959 *.hex GNU Unifont font files
 1960 
 1961 3.13.5 unidup SEE ALSO
 1962 ----------------------
 1963 
 1964 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 1965 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 1966 unibmpbump(1), unicoverage(1), unifont(5), unifont-viewer(1),
 1967 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 1968 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 1969 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1),
 1970 unipng2hex(1)
 1971 
 1972 3.13.6 unidup AUTHOR
 1973 --------------------
 1974 
 1975 unidup was written by Paul Hardy.
 1976 
 1977 3.13.7 unidup LICENSE
 1978 ---------------------
 1979 
 1980 unidup is Copyright (C) 2007, 2013 Paul Hardy.
 1981 
 1982 This program is free software; you can redistribute it and/or modify it
 1983 under the terms of the GNU General Public License as published by the
 1984 Free Software Foundation; either version 2 of the License, or (at your
 1985 option) any later version.
 1986 
 1987 3.13.8 unidup BUGS
 1988 ------------------
 1989 
 1990 No known bugs exist.
 1991 
 1992 3.14 unifont-viewer
 1993 ===================
 1994 
 1995 3.14.1 unifont-viewer NAME
 1996 --------------------------
 1997 
 1998 unifont-viewer - View a .hex font file with a graphical user interface
 1999 
 2000 3.14.2 unifont-viewer SYNOPSIS
 2001 ------------------------------
 2002 
 2003 unifont-viewer &
 2004 
 2005 3.14.3 unifont-viewer DESCRIPTION
 2006 ---------------------------------
 2007 
 2008 unifont-viewer reads a GNU Unifont .hex file and displays glyphs in
 2009 blocks of 16 by 16, 256 glyphs per screen with a graphical user
 2010 interface.  The .hex file is selected by opening it with the File > Open
 2011 menu item or by typing Control-O.  After loading a file, a list of
 2012 "pages" of 256 glyphs will appear in the left-hand column of the
 2013 window.  The first such page of glyphs in the file will appear in the
 2014 main window.
 2015 
 2016 unifont-viewer supports glyph heights of 16, 24, and 32 pixels.  The
 2017 height of a .hex font file is selected under the File menu.  The
 2018 default selection is Glyph Height 16.
 2019 
 2020 Exit unifont-viewer by selecting File > Exit or by typing Control-X.
 2021 
 2022 3.14.4 unifont-viewer FILES
 2023 ---------------------------
 2024 
 2025 *.hex GNU Unifont font files
 2026 
 2027 3.14.5 unifont-viewer SEE ALSO
 2028 ------------------------------
 2029 
 2030 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2031 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2032 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont1per(1),
 2033 unifontchojung(1), unifontksx(1), unifontpic(1), unigencircles(1),
 2034 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2035 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2036 
 2037 3.14.6 unifont-viewer AUTHOR
 2038 ----------------------------
 2039 
 2040 unifont-viewer was written by Andrew Miller.
 2041 
 2042 3.14.7 unifont-viewer LICENSE
 2043 -----------------------------
 2044 
 2045 unifont-viewer is Copyright (C) 2014 Andrew Miller.
 2046 
 2047 This program is free software; you can redistribute it and/or modify it
 2048 under the terms of the GNU General Public License as published by the
 2049 Free Software Foundation; either version 2 of the License, or (at your
 2050 option) any later version.
 2051 
 2052 3.14.8 unifont-viewer BUGS
 2053 --------------------------
 2054 
 2055 No known bugs exist.
 2056 
 2057 3.15 unifont1per
 2058 ================
 2059 
 2060 3.15.1 unifont1per NAME
 2061 -----------------------
 2062 
 2063 unifont1per - Create BMP glyph files from GNU Unifont .hex file
 2064 
 2065 3.15.2 unifont1per SYNOPSIS
 2066 ---------------------------
 2067 
 2068 unifont1per < input_file.hex
 2069 
 2070 3.15.3 unifont1per DESCRIPTION
 2071 ------------------------------
 2072 
 2073 unifont1per reads a GNU Unifont .hex file and for each code point in
 2074 the file, creates an output Bitmapped Graphics (".bmp") file in the
 2075 current directory.  The filename for each output file is
 2076 "U+codepoint.bmp", where codepoint is the Unicode codepoint for the
 2077 glyph.
 2078 
 2079 Each glyph entry in a Unifont .hex file is expected to be 16 rows tall,
 2080 and can be 8, 16, 24, or 32 pixels wide.  The glyph sizes in output
 2081 files are determined on a glyph-by-glyph basis.
 2082 
 2083 This program can be of use in extracting individual glyphs to display
 2084 in a document or on a web page.
 2085 
 2086 WARNING!  This program generates one output file per code point that
 2087 appears in the input stream.  If you feed this program a file with 1000
 2088 code points, it will generate 1000 files in your current directory.
 2089 
 2090 3.15.4 unifont1per OPTIONS
 2091 --------------------------
 2092 
 2093 None.
 2094 
 2095 3.15.5 unifont1per FILES
 2096 ------------------------
 2097 
 2098 *.hex GNU Unifont font files, read from standard input
 2099 
 2100 3.15.6 unifont1per SEE ALSO
 2101 ---------------------------
 2102 
 2103 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2104 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2105 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2106 unifontchojung(1), unifontksx(1), unifontpic(1), unigencircles(1),
 2107 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2108 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2109 
 2110 3.15.7 unifont1per AUTHOR
 2111 -------------------------
 2112 
 2113 unifont1per was written by Paul Hardy.
 2114 
 2115 3.15.8 unifont1per LICENSE
 2116 --------------------------
 2117 
 2118 unifont1per is Copyright (C) 2017 Paul Hardy.
 2119 
 2120 This program is free software; you can redistribute it and/or modify it
 2121 under the terms of the GNU General Public License as published by the
 2122 Free Software Foundation; either version 2 of the License, or (at your
 2123 option) any later version.
 2124 
 2125 3.15.9 unifont1per BUGS
 2126 -----------------------
 2127 
 2128 No known real bugs exist, except that this software does not perform
 2129 extensive error checking on its input files.  If they're not in the
 2130 format of the original GNU Unifont .hex file, all bets are off.  Lines
 2131 can be terminated either with line feed, or carriage return plus line
 2132 feed.
 2133 
 2134 3.16 unifontchojung
 2135 ===================
 2136 
 2137 3.16.1 unifontchojung NAME
 2138 --------------------------
 2139 
 2140 unifontchojung - Extract Hangul syllables that have no final consonant
 2141 
 2142 3.16.2 unifontchojung SYNOPSIS
 2143 ------------------------------
 2144 
 2145 unifontchojung < input-font.hex > output-font.hex
 2146 
 2147 3.16.3 unifontchojung DESCRIPTION
 2148 ---------------------------------
 2149 
 2150 unifontchojung reads a Unifont-format .hex font file from STDIN and
 2151 writes a Unifont .hex file containing a subset to STDOUT.  The subset
 2152 that is output only contains syllables that contain an initial
 2153 consonant (chojung) plus middle vowel (jungseong), with no final
 2154 consonant (jongseong).  This lets a font designer focus on this subset
 2155 during font creation.
 2156 
 2157 3.16.4 unifontchojung FILES
 2158 ---------------------------
 2159 
 2160 *.bdf font files
 2161 
 2162 3.16.5 unifontchojung SEE ALSO
 2163 ------------------------------
 2164 
 2165 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2166 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2167 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2168 unifont1per(1), unifontksx(1), unifontpic(1), unigencircles(1),
 2169 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2170 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2171 
 2172 3.16.6 unifontchojung AUTHOR
 2173 ----------------------------
 2174 
 2175 unifontchojung was written by Paul Hardy.
 2176 
 2177 3.16.7 unifontchojung LICENSE
 2178 -----------------------------
 2179 
 2180 unifontchojung is Copyright (C) 2012 Paul Hardy.
 2181 
 2182 This program is free software; you can redistribute it and/or modify it
 2183 under the terms of the GNU General Public License as published by the
 2184 Free Software Foundation; either version 2 of the License, or (at your
 2185 option) any later version.
 2186 
 2187 3.16.8 unifontchojung BUGS
 2188 --------------------------
 2189 
 2190 No known bugs exist.
 2191 
 2192 3.17 unifontksx
 2193 ===============
 2194 
 2195 3.17.1 unifontksx NAME
 2196 ----------------------
 2197 
 2198 unifontksx - Extract Hangul syllables that comprise KS X 1001:1992
 2199 
 2200 3.17.2 unifontksx SYNOPSIS
 2201 --------------------------
 2202 
 2203 unifontksx < input-font.hex > output-font.hex
 2204 
 2205 3.17.3 unifontksx DESCRIPTION
 2206 -----------------------------
 2207 
 2208 unifontksx reads a Unifont-format .hex font file from STDIN and writes
 2209 a Unifont .hex file containing a subset to STDOUT.  The subset that is
 2210 output only contains the 2,350 syllables that comprise Korean Standard
 2211 KS X 1001:1992.  These are extracted from the Unicode Hangul Syllables
 2212 block, U+AC00..U+D7A3.  This lets a font designer focus on those
 2213 syllables that are most common in modern Hangul usage during font
 2214 development.
 2215 
 2216 3.17.4 unifontksx FILES
 2217 -----------------------
 2218 
 2219 *.bdf font files
 2220 
 2221 3.17.5 unifontksx SEE ALSO
 2222 --------------------------
 2223 
 2224 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2225 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2226 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2227 unifont1per(1), unifontchojung(1), unifontpic(1), unigencircles(1),
 2228 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2229 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2230 
 2231 3.17.6 unifontksx AUTHOR
 2232 ------------------------
 2233 
 2234 unifontksx was written by Paul Hardy.
 2235 
 2236 3.17.7 unifontksx LICENSE
 2237 -------------------------
 2238 
 2239 unifontksx is Copyright (C) 2012 Paul Hardy.
 2240 
 2241 This program is free software; you can redistribute it and/or modify it
 2242 under the terms of the GNU General Public License as published by the
 2243 Free Software Foundation; either version 2 of the License, or (at your
 2244 option) any later version.
 2245 
 2246 3.17.8 unifontksx BUGS
 2247 ----------------------
 2248 
 2249 No known bugs exist.
 2250 
 2251 3.18 unifontpic
 2252 ===============
 2253 
 2254 3.18.1 unifontpic NAME
 2255 ----------------------
 2256 
 2257 unifontpic - Convert GNU Unifont .hex input to a bitmap image of the
 2258 whole font
 2259 
 2260 3.18.2 unifontpic SYNOPSIS
 2261 --------------------------
 2262 
 2263 unifontpic [-dnnn] [-l] [-t] [-Pplane] < input-font.hex >
 2264 output-font.bmp
 2265 
 2266 3.18.3 unifontpic DESCRIPTION
 2267 -----------------------------
 2268 
 2269 unifontpic reads a GNU Unifont .hex file from STDIN and writes a two
 2270 dimensional rendering for each glyph to STDOUT.  The output displays an
 2271 entire Unicode plane of 65,536 glyphs as one large graphic image,
 2272 showing a grid of 256 glyphs by 256 glyphs as the default, or (at your
 2273 option) a long version of 16 glyphs across by 4,096 glyphs down.
 2274 
 2275 Input can be one or more files in Unifont .hex format.  They don't have
 2276 to be sorted, as unifontpic will populate the entire glyph array of
 2277 65,536 code points before writing its output.  The input glyph code
 2278 points should all be unique, as feeding in duplicate code points will
 2279 produce unpredictable results.  Use unidup (1) on a sorted input of
 2280 .hex files to guarantee no code point duplication.
 2281 
 2282 3.18.4 unifontpic OPTIONS
 2283 -------------------------
 2284 
 2285 `-d'
 2286      Specify a Dots per Inch (DPI) resolution of nnn.  For example,
 2287      specifying -d120 will encode the bitmap graphics file output as
 2288      having a resolution of 120 DPI.
 2289 
 2290 `-l'
 2291      Produce a long chart, 16 glyphs wide by 4,096 glyphs tall.  The
 2292      default is a wide chart, 256 glyphs wide by 256 glyphs tall.
 2293 
 2294 `-t'
 2295      Use tiny numbers for the row and column code point labels.  Tiny
 2296      numbers are on a 4 by 5 pixel grid.  Only tiny code point labels
 2297      appear on the long chart variant; this option only has effect for
 2298      wide charts (the default, of 256 by 256 glyphs).  If this option
 2299      is not specified for the default 256-by-256 grid, row and column
 2300      code point labels are taken from Unifont's glyphs for `0' to `9'
 2301      and `A' to `F'.
 2302 
 2303 `-P'
 2304      Print a chart for Unicode plane number plane.  The default is
 2305      Plane 0, the Unicode Basic Multilingual Plane (BMP).  The range of
 2306      Unicode plane range is 0 through 17, inclusive.  The plane number
 2307      is printed on the chart title line.
 2308 
 2309 
 2310 3.18.5 unifontpic EXAMPLES
 2311 --------------------------
 2312 
 2313 Sample usage:
 2314 
 2315      cat *.hex | unifontpic -d120 > unifontpic.bmp
 2316 
 2317 
 2318 To generate a bitmap that shows combining circles, from the font/
 2319 subdirectory:
 2320 
 2321      sort plane00/*.hex | unigencircles ttfsrc/combining.txt |
 2322      unifontpic -d120 >unifontpic.bmp
 2323 
 2324 
 2325 3.18.6 unifontpic FILES
 2326 -----------------------
 2327 
 2328 *.hex GNU Unifont font files
 2329 
 2330 3.18.7 unifontpic SEE ALSO
 2331 --------------------------
 2332 
 2333 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2334 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2335 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2336 unifont1per(1), unifontchojung(1), unifontksx(1), unigencircles(1),
 2337 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2338 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2339 
 2340 3.18.8 unifontpic AUTHOR
 2341 ------------------------
 2342 
 2343 unifontpic was written by Paul Hardy.
 2344 
 2345 3.18.9 unifontpic LICENSE
 2346 -------------------------
 2347 
 2348 unifontpic is Copyright (C) 2013 Paul Hardy.
 2349 
 2350 This program is free software; you can redistribute it and/or modify it
 2351 under the terms of the GNU General Public License as published by the
 2352 Free Software Foundation; either version 2 of the License, or (at your
 2353 option) any later version.
 2354 
 2355 3.18.10 unifontpic BUGS
 2356 -----------------------
 2357 
 2358 No known bugs exist.
 2359 
 2360 3.19 unigencircles
 2361 ==================
 2362 
 2363 3.19.1 unigencircles NAME
 2364 -------------------------
 2365 
 2366 unigencircles - Add dashed combining circles to a unifont.hex file
 2367 
 2368 3.19.2 unigencircles SYNOPSIS
 2369 -----------------------------
 2370 
 2371 unigencircles combining.txt nonprinting.hex < unifont.hex >
 2372 unifont-circles.hex
 2373 
 2374 3.19.3 unigencircles DESCRIPTION
 2375 --------------------------------
 2376 
 2377 unigencircles reads a unifont.hex file from STDIN, adds dashed combining
 2378 circles to the hex strings for code points listed in "combining.txt"
 2379 but not listed in "nonprinting.hex", and writes the revised set of
 2380 glyphs in unifont.hex format to STDOUT.  The resulting combining
 2381 character glyphs show the dashed combining circles that appear in The
 2382 Unicode Standard code charts.
 2383 
 2384 For each code point listed in the "combining.txt" file but not listed
 2385 in the "nonprinting.hex" file, unigencircles will superimpose a
 2386 single-width dashed circle in glyphs that are single-width (i.e., their
 2387 hex glyph strings are 32 characters long) and will superimpose a
 2388 double-width dashed circle in glyphs that are double-width (i.e., their
 2389 hex glyph strings are 64 characters long).
 2390 
 2391 3.19.4 unigencircles EXAMPLE
 2392 ----------------------------
 2393 
 2394      unigencircles combining.txt nonprinting.hex < unifont.hex >
 2395      unifont-circles.hex
 2396 
 2397 
 2398 3.19.5 unigencircles FILES
 2399 --------------------------
 2400 
 2401 *.hex files for Unifont glyph data
 2402 
 2403 font/ttfsrc/combining.txt for combining code points
 2404 
 2405 font/plane00/nonprinting.hex for non-printing code points
 2406 
 2407 3.19.6 unigencircles SEE ALSO
 2408 -----------------------------
 2409 
 2410 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2411 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2412 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2413 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2414 unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2415 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2416 
 2417 3.19.7 unigencircles AUTHOR
 2418 ---------------------------
 2419 
 2420 unigencircles was written by Paul Hardy.
 2421 
 2422 3.19.8 unigencircles LICENSE
 2423 ----------------------------
 2424 
 2425 unigencircles is Copyright (C) 2013 Paul Hardy.
 2426 
 2427 This program is free software; you can redistribute it and/or modify it
 2428 under the terms of the GNU General Public License as published by the
 2429 Free Software Foundation; either version 2 of the License, or (at your
 2430 option) any later version.
 2431 
 2432 3.19.9 unigencircles BUGS
 2433 -------------------------
 2434 
 2435 No known real bugs exist, except that this software does not perform
 2436 extensive error checking on its input files.
 2437 
 2438 3.20 unigenwidth
 2439 ================
 2440 
 2441 3.20.1 unigenwidth NAME
 2442 -----------------------
 2443 
 2444 unigenwidth - Generate C code for POSIX wcwidth and wcswidth functions
 2445 
 2446 3.20.2 unigenwidth SYNOPSIS
 2447 ---------------------------
 2448 
 2449 unigenwidth unifont.hex combining.txt > wccode.c
 2450 
 2451 3.20.3 unigenwidth DESCRIPTION
 2452 ------------------------------
 2453 
 2454 unigenwidth reads a collection of glyphs in Unifont's .hex format, then
 2455 reads a list of combining characters as a hexadecimal list.  From these
 2456 two files, it produces C code to implement the POSIX wcwidth(3) and
 2457 wcswidth(3) functions.  The format of these definitions is based upon
 2458 POSIX 1003.1-2008 System Interfaces, pages 2251 and 2241, respectively.
 2459 
 2460 3.20.4 unigenwidth EXAMPLE
 2461 --------------------------
 2462 
 2463 Sample usage:
 2464 
 2465      unigenwidth unifont.hex combining.txt > wccode.c
 2466 
 2467 
 2468 3.20.5 unigenwidth FILES
 2469 ------------------------
 2470 
 2471 *.hex files for Unifont glyph data; combining.txt for combining code
 2472 points.
 2473 
 2474 3.20.6 unigenwidth SEE ALSO
 2475 ---------------------------
 2476 
 2477 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2478 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2479 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2480 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2481 unigencircles(1), unihex2bmp(1), unihex2png(1), unihexfill(1),
 2482 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2483 
 2484 3.20.7 unigenwidth AUTHOR
 2485 -------------------------
 2486 
 2487 unigenwidth was written by Paul Hardy.
 2488 
 2489 3.20.8 unigenwidth LICENSE
 2490 --------------------------
 2491 
 2492 unigenwidth is Copyright (C) 2013 Paul Hardy.
 2493 
 2494 This program is free software; you can redistribute it and/or modify it
 2495 under the terms of the GNU General Public License as published by the
 2496 Free Software Foundation; either version 2 of the License, or (at your
 2497 option) any later version.
 2498 
 2499 3.20.9 unigenwidth BUGS
 2500 -----------------------
 2501 
 2502 No known real bugs exist, except that this software does not perform
 2503 extensive error checking on its input files.
 2504 
 2505 3.21 unihex2bmp
 2506 ===============
 2507 
 2508 3.21.1 unihex2bmp NAME
 2509 ----------------------
 2510 
 2511 unihex2bmp - GNU Unifont .hex file to bitmap graphics file converter
 2512 
 2513 3.21.2 unihex2bmp SYNOPSIS
 2514 --------------------------
 2515 
 2516 unihex2bmp [-phexpage] [-iinput_file.hex] [-ooutput_file.bmp] [-f] [-w]
 2517 
 2518 3.21.3 unihex2bmp DESCRIPTION
 2519 -----------------------------
 2520 
 2521 unihex2bmp reads a GNU Unifont .hex file Unicode page of 256 code points
 2522 and converts the page into a Microsoft Windows Bitmap (.bmp) or
 2523 Wireless Bitmap (.wbmp) file.  The bitmap file displays the glyphs of a
 2524 Unicode block of 256 code points in a 32 by 32 pixel grid.  The glyphs
 2525 themselves must be 16 rows high, and 8, 16, 24, or 31 (encoded as 32)
 2526 columns wide. The default page is 0; that is, the range U+0000 through
 2527 U+00FF.
 2528 
 2529 The bitmap can be printed.  It can also be edited with a bitmap editor.
 2530 An edited bitmap can then be re-converted into a GNU Unifont .hex file
 2531 with the unibmp2hex command.
 2532 
 2533 3.21.4 unihex2bmp OPTIONS
 2534 -------------------------
 2535 
 2536 `-p'
 2537      Extract page hexpage from the .hex file.  The default is Page 0
 2538      (Unicode range U+0000 through U+00FF).  Note that "page" is not a
 2539      standard Unicode term.  It refers to an output bitmap graphics
 2540      page of 16 by 16 code points.
 2541 
 2542 `-i'
 2543      Specify the input file. The default is STDIN.
 2544 
 2545 `-o'
 2546      Specify the output file. The default is STDOUT.
 2547 
 2548 `-f'
 2549      "Flip" (transpose) the grid, swapping rows and columns from the
 2550      Unicode standard orientation.
 2551 
 2552 `-w'
 2553      Produce a Wireless Bitmap format file instead of a Microsoft
 2554      Windows Bitmap file.
 2555 
 2556 
 2557 3.21.5 unihex2bmp EXAMPLE
 2558 -------------------------
 2559 
 2560 Sample usage:
 2561 
 2562      unihex2bmp -imy_input_file.hex -omy_output_file.bmp
 2563 
 2564 
 2565 3.21.6 unihex2bmp FILES
 2566 -----------------------
 2567 
 2568 *.hex GNU Unifont font files
 2569 
 2570 3.21.7 unihex2bmp SEE ALSO
 2571 --------------------------
 2572 
 2573 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2574 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2575 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2576 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2577 unigencircles(1), unigenwidth(1), unihex2png(1), unihexfill(1),
 2578 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2579 
 2580 3.21.8 unihex2bmp AUTHOR
 2581 ------------------------
 2582 
 2583 unihex2bmp was written by Paul Hardy.
 2584 
 2585 3.21.9 unihex2bmp LICENSE
 2586 -------------------------
 2587 
 2588 unihex2bmp is Copyright (C) 2007 Paul Hardy.
 2589 
 2590 This program is free software; you can redistribute it and/or modify it
 2591 under the terms of the GNU General Public License as published by the
 2592 Free Software Foundation; either version 2 of the License, or (at your
 2593 option) any later version.
 2594 
 2595 3.21.10 unihex2bmp BUGS
 2596 -----------------------
 2597 
 2598 No known real bugs exist, except that this software does not perform
 2599 extensive error checking on its input files.  If they're not in the
 2600 format of the original GNU Unifont .hex file, all bets are off.  Lines
 2601 can be terminated either with line feed, or carriage return plus line
 2602 feed.
 2603 
 2604 3.22 unihex2png
 2605 ===============
 2606 
 2607 3.22.1 unihex2png NAME
 2608 ----------------------
 2609 
 2610 unihex2png - GNU Unifont .hex file to Portable Network Graphics
 2611 converter
 2612 
 2613 3.22.2 unihex2png SYNOPSIS
 2614 --------------------------
 2615 
 2616 unihex2png [-i input_file.hex] -o output_file.png [-p pagenum] [-r rows]
 2617 
 2618 3.22.3 unihex2png DESCRIPTION
 2619 -----------------------------
 2620 
 2621 unihex2png reads a page of 256 Unicode code points from a GNU Unifont
 2622 .hex file and converts the page into a Portable Network Graphics (PNG)
 2623 file.  The graphics file displays the glyphs of a Unicode block of 256
 2624 code points in a 32 by 32 pixel grid, or in a 40 by 40 pixel grid if
 2625 "-r 32" is specified.  The glyphs themselves can be either 16, 24, or
 2626 32 pixels tall depending on the "-r" parameter.  They can be 8, 16, 24,
 2627 or 32 pixels wide (widths of 32 are only supported if "-r 32" is
 2628 specified).  The default page is 0; that is, the range U+0000 through
 2629 U+00FF, inclusive.
 2630 
 2631 The PNG file can be printed.  It can also be edited with a graphics
 2632 editor.  An edited PNG file can then be re-converted into a GNU Unifont
 2633 .hex file with the unipng2hex command.
 2634 
 2635 3.22.4 unihex2png OPTIONS
 2636 -------------------------
 2637 
 2638 `-i'
 2639      Specify the input file.  If not omitted, a Unifont .hex file is
 2640      read from STDIN.
 2641 
 2642 `-o'
 2643      Specify the output file.
 2644 
 2645 `-p'
 2646      Extract page pagenum from the .hex file.  The default is Page 0
 2647      (Unicode range U+0000 through U+00FF).  Note that "page" is not a
 2648      standard Unicode term.  It refers to an output bitmap graphics
 2649      page of 16 by 16 code points.
 2650 
 2651 `-r'
 2652      Specify the rows of pixels in the output glyphs.  Valid values are
 2653      16, 24, and 32.  The default is 16 pixel rows tall.
 2654 
 2655 `-h'
 2656      Print a help message of options and exit.
 2657 
 2658 
 2659 3.22.5 unihex2png EXAMPLE
 2660 -------------------------
 2661 
 2662 Sample usage:
 2663 
 2664      unihex2png -i my_input_file.hex -o my_output_file.png
 2665 
 2666 
 2667 3.22.6 unihex2png FILES
 2668 -----------------------
 2669 
 2670 *.hex GNU Unifont font files
 2671 
 2672 3.22.7 unihex2png SEE ALSO
 2673 --------------------------
 2674 
 2675 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2676 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2677 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2678 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2679 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihexfill(1),
 2680 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2681 
 2682 3.22.8 unihex2png AUTHOR
 2683 ------------------------
 2684 
 2685 unihex2png was written by Andrew Miller, starting by converting Paul
 2686 Hardy's unihex2bmp C program to Perl.
 2687 
 2688 3.22.9 unihex2png LICENSE
 2689 -------------------------
 2690 
 2691 unihex2png is Copyright (C) 2007 Paul Hardy, (C) 2013 Andrew Miller.
 2692 
 2693 This program is free software; you can redistribute it and/or modify it
 2694 under the terms of the GNU General Public License as published by the
 2695 Free Software Foundation; either version 2 of the License, or (at your
 2696 option) any later version.
 2697 
 2698 3.22.10 unihex2png BUGS
 2699 -----------------------
 2700 
 2701 No known real bugs exist, but the optional pixel rows parameter is not
 2702 yet supported by all other Unifont utilities.  Use of glyphs taller than
 2703 the default of 16 pixels is considered experimental.  Currently
 2704 unihex2png, unipng2hex, hexdraw, and hex2bdf tentatively support glyphs
 2705 that are 16, 24, and 32 pixels tall.
 2706 
 2707 Also, there is no extensive error checking on input files.  If they're
 2708 not in the format of the original GNU Unifont .hex file, all bets are
 2709 off.  Lines can be terminated either with line feed, or carriage return
 2710 plus line feed.
 2711 
 2712 3.23 unihexfill
 2713 ===============
 2714 
 2715 3.23.1 unihexfill NAME
 2716 ----------------------
 2717 
 2718 unihexfill - Generate range of Unifont 4- or 6-digit hexadecimal glyphs
 2719 
 2720 3.23.2 unihexfill SYNOPSIS
 2721 --------------------------
 2722 
 2723 unihexfill < unassigned-ranges.txt > filler-glyphs.hex
 2724 
 2725 3.23.3 unihexfill DESCRIPTION
 2726 -----------------------------
 2727 
 2728 unihexfill is a shell script that reads a list of code point ranges
 2729 from STDIN and produces filler glyphs of 4- or 6-digit code points on
 2730 STDOUT.  The format of the input file is a combination of comment lines,
 2731 single code points on a line, and start/stop pairs of code points on a
 2732 line separated by a space.  Comment lines start with a semicolon (';')
 2733 by convention.  Start and stop code points are strings of hexadecimal
 2734 digits, by convention either four or six digits.  unihexfill invokes
 2735 unihexgen for each non-comment line in its input file.  If a codepoint
 2736 is less than or equal to "FFFF" (i.e., 0xFFFF), a four-digit
 2737 hexadecimal number is encoded within the corresponding Unifont glyph as
 2738 two digits on each of two rows.  Otherwise, a six-digit hexadecimal
 2739 number is encoded as three digits on each of two rows.
 2740 
 2741 3.23.4 unihexfill OPTIONS
 2742 -------------------------
 2743 
 2744 There are no options.
 2745 
 2746 3.23.5 unihexfill FILES
 2747 -----------------------
 2748 
 2749 *.txt as input; *.hex as output.
 2750 
 2751 3.23.6 unihexfill EXAMPLE
 2752 -------------------------
 2753 
 2754 In the Unifont source package, the file font/plane01/Makefile generates
 2755 Unicode Plane 1 hexadecimal filler glyphs of unassigned code points
 2756 within assigned scripts with this single-line command:
 2757 
 2758      ../../bin/unihexfill < unassigned-ranges.txt > unassigned.hex
 2759 
 2760 
 2761 3.23.7 unihexfill SEE ALSO
 2762 --------------------------
 2763 
 2764 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2765 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2766 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2767 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2768 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 2769 unihexgen(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2770 
 2771 3.23.8 unihexfill AUTHOR
 2772 ------------------------
 2773 
 2774 unihexfill was written by Paul Hardy.
 2775 
 2776 3.23.9 unihexfill LICENSE
 2777 -------------------------
 2778 
 2779 unihexfill is Copyright (C) 2014 Paul Hardy.
 2780 
 2781 This program is free software; you can redistribute it and/or modify it
 2782 under the terms of the GNU General Public License as published by the
 2783 Free Software Foundation; either version 2 of the License, or (at your
 2784 option) any later version.
 2785 
 2786 3.23.10 unihexfill BUGS
 2787 -----------------------
 2788 
 2789 No known real bugs exist, except that this software does not perform
 2790 extensive error checking on its input file.  Any line that appears to
 2791 begin with a hexadecimal digit is fed to unihexgen.
 2792 
 2793 3.24 unihexgen
 2794 ==============
 2795 
 2796 3.24.1 unihexgen NAME
 2797 ---------------------
 2798 
 2799 unihexgen - Generate Unifont 4- or 6-digit hexadecimal glyphs
 2800 
 2801 3.24.2 unihexgen SYNOPSIS
 2802 -------------------------
 2803 
 2804 unihexgen startpoint endpoint
 2805 
 2806 3.24.3 unihexgen DESCRIPTION
 2807 ----------------------------
 2808 
 2809 unihexgen produces unifont.hex entries in the Unicode code point range
 2810 startpoint to endpoint (specified as the two command-line arguments).
 2811 Output is to STDOUT.  If a codepoint is less than or equal to "FFFF"
 2812 (i.e., 0xFFFF), a four-digit hexadecimal number is encoded within the
 2813 corresponding Unifont glyph as two digits on each of two rows.
 2814 Otherwise, a six-digit hexadecimal number is encoded as three digits on
 2815 each of two rows.
 2816 
 2817 3.24.4 unihexgen OPTIONS
 2818 ------------------------
 2819 
 2820 There are no options.
 2821 
 2822 3.24.5 unihexgen FILES
 2823 ----------------------
 2824 
 2825 *.hex as output.
 2826 
 2827 3.24.6 unihexgen EXAMPLE
 2828 ------------------------
 2829 
 2830 To generate the Private Use Area glyphs in the Unicode range
 2831 U+E000..U+F8FF, invoke unihexgen with these arguments:
 2832 
 2833      unihexgen e000 f8ff
 2834 
 2835 
 2836 3.24.7 unihexgen SEE ALSO
 2837 -------------------------
 2838 
 2839 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2840 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2841 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2842 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2843 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 2844 unihexfill(1), unihexrotate(1), unipagecount(1), unipng2hex(1)
 2845 
 2846 3.24.8 unihexgen AUTHOR
 2847 -----------------------
 2848 
 2849 unihexgen was written by Paul Hardy.
 2850 
 2851 3.24.9 unihexgen LICENSE
 2852 ------------------------
 2853 
 2854 unihexgen is Copyright (C) 2013 Paul Hardy.
 2855 
 2856 This program is free software; you can redistribute it and/or modify it
 2857 under the terms of the GNU General Public License as published by the
 2858 Free Software Foundation; either version 2 of the License, or (at your
 2859 option) any later version.
 2860 
 2861 3.24.10 unihexgen BUGS
 2862 ----------------------
 2863 
 2864 No known real bugs exist, except that this software does not perform
 2865 extensive error checking on its command-line arguments.  If they're not
 2866 in the format of the original bitmapped output from unihexgen, all bets
 2867 are off.
 2868 
 2869 3.25 unihexrotate
 2870 =================
 2871 
 2872 3.25.1 unihexrotate NAME
 2873 ------------------------
 2874 
 2875 unihexrotate - rotate Unifont hex glyphs in quarter turn increments
 2876 
 2877 3.25.2 unihexrotate SYNOPSIS
 2878 ----------------------------
 2879 
 2880 unihexrotate [-n quarter-turns] [input-font.hex] > output-font.hex
 2881 
 2882 3.25.3 unihexrotate DESCRIPTION
 2883 -------------------------------
 2884 
 2885 unihexrotate reads a GNU Unifont .hex format file named on the command
 2886 line, or from stdin if no filename is given.  If a number of quarter
 2887 turns is specified, it rotates each glyph clockwise by that number of
 2888 quarter turns, or counterclockwise if the number is negative.  The
 2889 resulting modified .hex file is written to stdout.  The format of a
 2890 .hex file is described in the unifont(5) man page.
 2891 
 2892 If the number of quarter turns is not specified, unihexrotate will
 2893 rotate each glyph by a default value of one quarter turn (i.e., 90
 2894 degrees) clockwise.
 2895 
 2896 unihexrotate only supports Unifont .hex files with glyphs that are 8
 2897 columns and 16 columns wide.  If an 8-column glyph is rotated, it is
 2898 first centered within a 16-column glyph so the rotation will be
 2899 performed on a 16-by-16 pixel glyph.  One additional use of this
 2900 program is that a glyph can be converted from 8\~columns wide to
 2901 16\~columns wide by specifying a rotation of 0\~quarter turns.
 2902 
 2903 3.25.4 unihexrotate OPTIONS
 2904 ---------------------------
 2905 
 2906 `-n'
 2907      Specify an integer number of quarter turn clockwise rotations to
 2908      perform, typically as "-n\~0" through "-n\~3" (alternatively as
 2909      "-n=0" through "-n=3") for rotations of 0, 90, 180, or 270
 2910      degrees, respectively.  Negative values will perform
 2911      counterclockwise rotations by the specified number of quarter
 2912      turns.
 2913 
 2914 
 2915 3.25.5 unihexrotate EXAMPLES
 2916 ----------------------------
 2917 
 2918 This example extracts the Mongolian glyphs in the "unifont-base.hex"
 2919 file (located in the "font/plane00" directory) and pipes them to
 2920 unihexrotate to rotate by the default amount of one quarter turn
 2921 clockwise (i.e., by 90 degrees).  The basic Mongolian glyphs are in the
 2922 Unicode range U+1800 through U+18AF.  The original glyphs in
 2923 "unifont-base.hex" are drawn for horizontal rendering (as per the
 2924 Unicode Standard).  The output rotated glyphs are suitable for
 2925 rendering Mongolian in its traditional vertical form.  Because no
 2926 filename is specified to unihexrotate in this example, its input is
 2927 taken from stdin.
 2928 
 2929      grep "^18[0-A]" unifont-base.hex | unihexrotate > vertical.hex
 2930 
 2931 
 2932 The next example reverses the rotation performed above, by one quarter
 2933 turn counterclockwise.  In this example, the input filename
 2934 "vertical.hex" is specified.
 2935 
 2936      unihexrotate -n -1 vertical.hex > horizontal.hex
 2937 
 2938 
 2939 3.25.6 unihexrotate FILES
 2940 -------------------------
 2941 
 2942 Unifont .hex format input and output files.
 2943 
 2944 3.25.7 unihexrotate SEE ALSO
 2945 ----------------------------
 2946 
 2947 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 2948 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 2949 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 2950 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 2951 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 2952 unihexfill(1), unihexgen(1), unipagecount(1), unipng2hex(1)
 2953 
 2954 3.25.8 unihexrotate AUTHOR
 2955 --------------------------
 2956 
 2957 unihexrotate was written by David Corbett.
 2958 
 2959 3.25.9 unihexrotate LICENSE
 2960 ---------------------------
 2961 
 2962 unihexrotate is Copyright (C) 2019 David Corbett.
 2963 
 2964 This program is free software; you can redistribute it and/or modify it
 2965 under the terms of the GNU General Public License as published by the
 2966 Free Software Foundation; either version 2 of the License, or (at your
 2967 option) any later version.
 2968 
 2969 3.25.10 unihexrotate BUGS
 2970 -------------------------
 2971 
 2972 No known bugs exist.
 2973 
 2974 3.26 unipagecount
 2975 =================
 2976 
 2977 3.26.1 unipagecount NAME
 2978 ------------------------
 2979 
 2980 unipagecount - Count the assigned code points in a GNU Unifont .hex file
 2981 
 2982 3.26.2 unipagecount SYNOPSIS
 2983 ----------------------------
 2984 
 2985 unipagecount [-Pplane] [-ppagenum] [-h|-l]
 2986 
 2987 3.26.3 unipagecount DESCRIPTION
 2988 -------------------------------
 2989 
 2990 unipagecount reads a GNU Unifont .hex file from STDIN and prints a 16
 2991 by 16 grid of the number of defined code points in each 256 character
 2992 block within a Unicode plane to STDOUT.  Code points proceed from left
 2993 to right, then top to bottom.  In all planes, code points U+*FFFE and
 2994 U+*FFFF are not expected in the input hex file; they are reserved and
 2995 always counted as being present in a plane.
 2996 
 2997 3.26.4 unipagecount OPTIONS
 2998 ---------------------------
 2999 
 3000 `-P'
 3001      Select a Unicode plane, from 0 through 16, inclusive.  If not
 3002      specified, unipagecount defaults to Plane 0 (the Basic
 3003      Multilingual Plane).
 3004 
 3005 `-p'
 3006      Just print information on one 256 code point "page" rather than
 3007      the entire Basic Multilingual Plane.  This prints a 16 by 16 table
 3008      with an asterisk in every code point that has an assigned glyph.
 3009 
 3010 `-h'
 3011      Print an HTML table with color-coded cell background colors
 3012      instead of a plain text table.
 3013 
 3014 `-l'
 3015      [The letter "l"]: Print hyperlinks to font bitmaps in the HTML
 3016      table.  To create the bitmaps themselves, use the unihex2bmp
 3017      program.  The bitmaps are assumed to be in the directory "bmp/".
 3018 
 3019 
 3020 3.26.5 unipagecount FILES
 3021 -------------------------
 3022 
 3023 *.hex GNU Unifont font files
 3024 
 3025 3.26.6 unipagecount SEE ALSO
 3026 ----------------------------
 3027 
 3028 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 3029 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 3030 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 3031 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 3032 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 3033 unihexfill(1), unihexgen(1), unihexrotate(1), unipng2hex(1)
 3034 
 3035 3.26.7 unipagecount AUTHOR
 3036 --------------------------
 3037 
 3038 unipagecount was written by Paul Hardy.
 3039 
 3040 3.26.8 unipagecount LICENSE
 3041 ---------------------------
 3042 
 3043 unipagecount is Copyright (C) 2007, 2014 Paul Hardy.
 3044 
 3045 This program is free software; you can redistribute it and/or modify it
 3046 under the terms of the GNU General Public License as published by the
 3047 Free Software Foundation; either version 2 of the License, or (at your
 3048 option) any later version.
 3049 
 3050 3.26.9 unipagecount BUGS
 3051 ------------------------
 3052 
 3053 No known real bugs exist, except that this software does not perform
 3054 extensive error checking on its input files.  If they're not in the
 3055 format of the original GNU Unifont .hex file, all bets are off.
 3056 
 3057 3.27 unipng2hex
 3058 ===============
 3059 
 3060 3.27.1 unipng2hex NAME
 3061 ----------------------
 3062 
 3063 unipng2hex - Portable Network Graphics to GNU Unifont .hex file
 3064 converter
 3065 
 3066 3.27.2 unipng2hex SYNOPSIS
 3067 --------------------------
 3068 
 3069 unipng2hex -i input_file.png [-o output_file.hex] [-w width]
 3070 
 3071 3.27.3 unipng2hex DESCRIPTION
 3072 -----------------------------
 3073 
 3074 unipng2hex reads a PNG file produced by unihex2png before or after
 3075 editing, and converts it back into a Unifont .hex format file.  The PNG
 3076 file contains a block of 256 Unicode code points arranged in a 16 by 16
 3077 grid.  Each code point appears in a 32 by 32 or a 40 by 40 pixel grid.
 3078 Characters are either 16, 24 or 32 pixel rows high, depending on the
 3079 "-r" parameter specified by unihex2png.  They can be 8, 16, 24, or 32
 3080 pixel columns wide (widths of 32 are only supported for 32 pixel row
 3081 tall characters).
 3082 
 3083 3.27.4 unipng2hex OPTIONS
 3084 -------------------------
 3085 
 3086 `-i'
 3087      Specify the input file.
 3088 
 3089 `-o'
 3090      Specify the output file.  If omitted, a file in the Unifont .hex
 3091      format is written to STDOUT.
 3092 
 3093 `-w'
 3094      Specify the minimum width of the output glyphs.  Valid values are
 3095      16, 24,  and 32.  The default is no minimum width.
 3096 
 3097 `-h'
 3098      Print a help message of options and exit.
 3099 
 3100 
 3101 3.27.5 unipng2hex EXAMPLE
 3102 -------------------------
 3103 
 3104 Sample usage:
 3105 
 3106      unipng2hex -i my_input_file.png -o my_output_file.hex
 3107 
 3108 
 3109 3.27.6 unipng2hex FILES
 3110 -----------------------
 3111 
 3112 *.png graphics files
 3113 
 3114 3.27.7 unipng2hex SEE ALSO
 3115 --------------------------
 3116 
 3117 bdfimplode(1), hex2bdf(1), hex2sfd(1), hexbraille(1), hexdraw(1),
 3118 hexkinya(1), hexmerge(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1),
 3119 unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1),
 3120 unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1),
 3121 unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1),
 3122 unihexfill(1), unihexgen(1), unihexrotate(1), unipagecount(1)
 3123 
 3124 3.27.8 unipng2hex AUTHOR
 3125 ------------------------
 3126 
 3127 unipng2hex was written by Andrew Miller, starting by converting Paul
 3128 Hardy's unibmp2hex C program to Perl.
 3129 
 3130 3.27.9 unipng2hex LICENSE
 3131 -------------------------
 3132 
 3133 unipng2hex is Copyright (C) 2007, 2008 Paul Hardy, (C) 2013 Andrew
 3134 Miller.
 3135 
 3136 This program is free software; you can redistribute it and/or modify it
 3137 under the terms of the GNU General Public License as published by the
 3138 Free Software Foundation; either version 2 of the License, or (at your
 3139 option) any later version.
 3140 
 3141 3.27.10 unipng2hex BUGS
 3142 -----------------------
 3143 
 3144 No known real bugs exist, but the optional pixel rows parameter is not
 3145 yet supported by all other Unifont utilities.  Use of glyphs taller than
 3146 the default of 16 pixels is considered experimental.  Currently
 3147 unihex2png, unipng2hex, hexdraw, and hex2bdf tentatively support glyphs
 3148 that are 16, 24, and 32 pixels tall.
 3149 
 3150 Also, this software does not perform extensive error checking on its
 3151 input files.  If they're not in the format of the original PNG output
 3152 from unihex2png, all bets are off.
 3153 
 3154 If the output file is for a "page" containing space code points and the
 3155 PNG file squares for those code points are not empty, unipng2hex
 3156 preserves the graphics as they are drawn.
 3157 
 3158 unipng2hex is designed to work with black and white pixels; do not use
 3159 other colors.
 3160