CTAN Comprehensive TeX Archive Network

Directory fonts/poorman


This is the usual in-the-absence-of-real-documentation
readme file for Poor Man's Chinese and Japanese.

pmC and pmJ are less than ideal implementations of Chinese
and Japanese for TeX.  Less than ideal because they use fonts
based on 24x24 dot-matrix fonts, and don't do vertical format
typesetting and so forth.  However, they (seem to) work, are
free, and work with a standard TeX of version 3 with no known

pmJ/pmC has two components:
    a) a font maker
    b) macros enabling TeX to recognize the character
       set encoding used.
    a) the fontmaker is a METAFONT code generator written in C
    which reads a JIS or CCLIB 24x24 bitmapped font, and writes
    METAFONT instructions to emulate the font.  (This is the same
    technique adapted by F. Jalbert for JEMTEX;  JEMTEX is in part
    based on an earlier version of this fontmaker).  The fonts are
    organized to reflect the character set encodings which pmC/pmJ
    b)  pmC and pmJ support the GB and Shift-JIS encodings respectively.
    These schemes use two-byte codes for indicating single characters.
    [These encodings incorporate the standard one-byte ASCII as a subset, 
    thus allowing English TeX to proceed with no changes required]
    So far as pmC and pmJ are concerned, the first byte selects a font, 
    the second byte selects a character in the font.  pmC and pmJ accomplish
    this by making all characters in the range 160 to 254 \active; they
    are then defined as single-character macros . . . (and the details
    may be read in the respective pmJ.tex and pmC.tex macro files).
    Commands \beginJapanese . . . \endJapanese [ \beginChinese . . .
    \endChinese] define a local environment within which Japanese
    [or Chinese] text is expected.  Unless another language using
    a character set encoding in conflict with GB/Shift-JIS is also
    used, one may just say \beginJapanese [\beginChinese] at the beginning
    and leave it at that.

    The Poor Mans's systems use A LOT of fonts; see the remarks on the
    subject in pm?intro.tex included in the package.  To partially
    alleviate the problem, pmfonts are made with a magstep2 magnification
    built into the base size font.  Whether the magnified or normal
    size of a character is printed depends on the state of an \ifbigJ
    or \ifbigC flag.  I.e., to put a section head in larger type, you
    might say
        \centerline{{\bigJtrue ^^b8^^a9^^d4^^f2^^c4^^a1}}
    where the \bigJtrue would tell pmJ to use the larger size.

    During the month of December 1990, early test versions of pmC and
    pmJ will be available for anonymous ftp on
              blackbox.hacc.washington.edu  (
    in directory pub/poorman.  We expect rapid evolution in the Poor Man's
    group, so those taking copies of pmC or pmJ should send me e-mail
    notifying me that you are testing so that I may maintain a list
    for future notifications.  When ftp'ing first get the file MANIFEST
    for a current list of what to get, and how [text/binary].  MANIFEST
    itself is a text file.
     Portions of pmC and pmJ are copyrighted free software.  See the file 
     license for details.  The TeX portions are public domain.
     Take everything from the poorman directory; all files are text
     except the font files jis24, cclib.24 and cclibf.24 are binary.
     Some of the text files include 8-bit text; be advised that they will
     likely ftp o.k., but may be damaged by passing through e-mail.
     Compile pmfont.c, and --- if you wish --- to_sjis.c [to_sjis
     is optional, converting some forms of encoding for Japanese to 
     the encoding used by pmJ].  Prepare a MakeFont program for your
     system; MakeFont is a system-dependent script which runs METAFONT
     at the behest of pmfont: preparing MakeFont is the principal point
     in the installation where you will need to know what's going on.
     A sample MakeFont for a Unix system is included in the test package.
     pmfont is invoked with two options: input-font-file and output-tag.
     The input-font-file is something like JIS24 or CCLIB.24; the output-tag
     will become the first part of the fontname METAFONT will work with.
     The expected output tags are `wjis' for Japanese, `wcct' for traditional
     Chinese, and `wccs' for simplified Chinese.  The font files which will
     be produced will be wjisa1, wjisa2, wjisa3 . . ./wccta1, wccta2, wccta3 
     . . ./wccsa1, wccsa2, wccsa3 . . .  [There is an optional third
     parameter, skipcount, for bypassing the early stages of a run;
     if you had a previous run, for example, which ran successfully until
     font wjisb9, and was then interrupted, you could restart without
     wasted effort by saying `pmfont jis24 wjis b9'].
        Here's the scheme: pmfont reads in the bitmap font and starts
        writing METAFONT code for one font, then pauses and issues a
        system call to MakeFont, expecting that MakeFont will tell
        METAFONT to make the font (in an appropriate mode, etc.),
        copy the output files to wherever they should go, and remove
        no-longer-needed files, including the METAFONT source code).
        pmfont then resumes reading the input bitmap font and writing
        METAFONT code, until it is time for another system call to
        MakeFont.  Depending on which set of fonts we are working on,
        we go thru this 80 some odd, or 90 some odd times. I haven't
        tried it on a PC; MakeFont would probably need to just dump the 
        METAFONT source code (compressed) to a floppy for later processing
        since most PC METAFONTs will not want to run in whatever
        memory space is left when pmfont runs a system call [but I
        could be wrong, surprise me!].
      Ordinarily you will not keep the METAFONT code pmfont generates
      since it is purely a mechanical production and can be regenerated
      whenever you wish [It will also require somewhere around 20Mbytes
      of storage space if you keep it].  BY ADVISED THAT YOU WILL HAVE
      A LONG RUN IN PROCESSING THE FONTS: the method for emulating dot-
      matrix in a device-independent way uses a LARGE NUMBER of arithmetic
      calculations.  My most recent run to produce ONE set of the JIS fonts 
      took over 39 hours on a NeXT; :) fortunately you only have to make
      the fonts once.
      Once the fonts are made, put the pmJ.tex, pmC.tex and pmCs.tex files
      in places where TeX can find them.  Attempt to print the pmjintro/
      pmcintro/pmsintro files, and see what happens.
WARNING WARNING WARNING  The Poor Man's Japanese and Chinese systems are
      working, but by no means finished, systems.  It will not be a trivial
      task to install them and get them to work.  You really should not
      expect to be able to do it if you have minimal TeX experience, and
      it would be very helpful if you had run METAFONT before.  You may not
      want to try this at home.

      TeX3.0 based on web2c, including UNIX TeX 3.0, needs to be fixed for
      pmJ or pmC to run.  Either declare NONASCII, in the Makefile, or
      modify file extra.c, commenting out one section which unfortunately
      obliterates characters with the high bit set:

		boolean zinputln(f)
		FILE *f;
		    register int i;
		    last = first;
		#ifdef	BSD
		    if (f == stdin) clearerr(stdin);
		    while ( last < bufsize && ((i = getc(f)) != EOF) && i != '\n') {
/* series of changes here, we seem to have forgotten about the 8-bit part */
/* #ifdef	NONASCII */
	buffer[last++] = i;
/* #else */
/*	buffer[last++] = (i > 127 || i < 0)?' ':i; */
/* oops! everything with high-bit set just turned into a space */
/* #endif */
       Thanks, by the way, to the authors of web2c, for a nice pathway
       to TeX.  Versions of UNIX TeX 3.1 (and presumably onward) do not 
       need any fixing.

       Please sends reports/ bug reports/ bug fixes, improvements,
       interesting examples, and so forth related to Poor Man's language
       versions to
           Thomas Ridgeway, Director
           Humanities and Arts Computing Center, DR-10
           University of Washington,
           Seattle WA 98195 USA
           telephone (206)-543-4218

Tom Ridgeway

Download the contents of this package in one zip archive (897.2k).

poorman – Raster Chinese and Japanese fonts

The poorman's fonts, pmC and pmJ, are less than ideal implementations of Chinese and Japanese for . They are less than ideal because they use fonts based on 24x24 dot-matrix fonts, and don't do vertical format typesetting and so forth.

The poorman's bundle provides a code generator, which reads a dot matrix font, and emits code to represent it. Also provided are macros that permit use of the fonts in a document.

LicensesFree license not otherwise listed
Copyright1990 Humanities and Arts Computing Center, University of Washington
MaintainerThomas Ridgeway
TopicsFont development
Guest Book Sitemap Contact Contact Author