1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
README
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
system dependencies. SEE THE END OF THIS FILE FOR A NOTE ABOUT
VERSION 3.0 OF TeX.
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
support.
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.
NOTES ON USE
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.
HOW TO GET IT
During the month of December 1990, early test versions of pmC and
pmJ will be available for anonymous ftp on
blackbox.hacc.washington.edu (128.95.200.1)
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.
LEGALITIES
Portions of pmC and pmJ are copyrighted free software. See the file
license for details. The TeX portions are public domain.
INSTALLATION
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.
TeX 3.0 VERSIONS -- IMPLEMENTATION BUG AFFECTING pmJ and pmC
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);
#endif
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.
TEST REPORTS
Please sends reports/ bug reports/ bug fixes, improvements,
interesting examples, and so forth related to Poor Man's language
versions to
ridgeway@blackbox.hacc.washington.edu
or
Thomas Ridgeway, Director
Humanities and Arts Computing Center, DR-10
University of Washington,
Seattle WA 98195 USA
telephone (206)-543-4218
12/3/90
Tom Ridgeway
Seattle
|