Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
 
2
Unicode versions of the X11 "misc-fixed-*" fonts
3
------------------------------------------------
4
 
5
Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> -- 2003-01-17
6
 
7
 
8
This package contains the X Window System bitmap fonts
9
 
10
   -Misc-Fixed-*-*-*--*-*-*-*-C-*-ISO10646-1
11
 
12
These are Unicode (ISO 10646-1) extensions of the classic ISO 8859-1
13
X11 terminal fonts that are widely used with many X11 applications
14
such as xterm, emacs, etc.
15
 
16
COVERAGE
17
--------
18
 
19
None of these fonts covers Unicode completely. Complete coverage
20
simply would not make much sense here. Unicode 3.0 contains over 49000
21
characters, and the large majority of them are Chinese/Japanese/Korean
22
Han ideographs (~28000) and Korean Hangul Syllables (~11000) that
23
cannot adequately be displayed in the small pixel sizes of the fixed
24
fonts. Similarly, Arabic characters are difficult to fit nicely
25
together with European characters into the fixed character cells and
26
X11 lacks the ligature substitution mechanisms required for using
27
Indic scripts.
28
 
29
Therefore these fonts primarily attempt to cover Unicode subsets that
30
fit together with European scripts. This includes the Latin, Greek,
31
Cyrillic, Armenian, Georgian, and Hebrew scripts, plus a lot of
32
linguistic, technical and mathematical symbols. Some of the fixed
33
fonts now also cover Arabic, Thai, Ethiopian, halfwidth Katakana, and
34
some other non-European scripts.
35
 
36
We have defined 3 different target character repertoires (ISO 10646-1
37
subsets) that the various fonts were checked against for minimal
38
guaranteed coverage:
39
 
40
  TARGET1    616 characters
41
             Covers all characters of ISO 8859 part 1-5,7-10,13-16,
42
             CEN MES-1, ISO 6937, Microsoft CP1251/CP1252, DEC VT100
43
             graphics symbols, and the replacement and default
44
             character. It is intended for small bold, italic, and
45
             proportional fonts, for which adding block graphics
46
             characters would make little sense. This repertoire
47
             covers the following ISO 10646-1:2000 collections
48
             completely: 1-3, 8, 12.
49
 
50
  TARGET2    885 characters
51
             Adds to TARGET1 the characters of the Adobe/Microsoft
52
             Windows Glyph List 4 (WGL4), plus a selected set of
53
             mathematical characters (covering most of ISO 31-11
54
             high-school level math symbols) and some combining
55
             characters. It is intended to be covered by all normal
56
             "fixed" fonts and covers all European IBM, Microsoft, and
57
             Macintosh character sets. This repertoire covers the
58
             following ISO 10646-1:2000 (including Amd 1:2002)
59
             collections completely: 1-3, 8, 12, 33, 45.
60
 
61
  TARGET3    3228 characters
62
 
63
             Adds to TARGET2 all characters of all European scripts
64
             (Latin, Greek, Cyrillic, Armenian, Georgian), all
65
             phonetic alphabet symbols, many mathematical symbols
66
             (including all those available in LaTeX), all typographic
67
             punctuation, all box-drawing characters, control code
68
             pictures, graphical shapes and some more that you would
69
             expect in a very comprehensive Unicode 3.2 font for
70
             European users. It is intended for some of the more
71
             useful and more widely used normal "fixed" fonts. This
72
             repertoire is a superset of all graphical characters in
73
             CEN MES-3A and covers the following ISO 10646-1:2000
74
             (including Amd 1:2002) collections completely: 1-12, 27,
75
             30-31, 32 (only graphical characters), 33-42, 44-47, 63,
76
             65, 70 (only graphical characters).
77
 
78
CURRENT STATUS:
79
 
80
   6x13.bdf 8x13.bdf 9x15.bdf 9x18.bdf 10x20.bdf:
81
 
82
     Complete (TARGET3 reached and checked)
83
 
84
   5x7.bdf 5x8.bdf 6x9.bdf 6x10.bdf 6x12.bdf 7x13.bdf 7x14.bdf clR6x12.bdf:
85
 
86
     Complete (TARGET2 reached and checked)
87
 
88
   6x13B.bdf 7x13B.bdf 7x14B.bdf 8x13B.bdf 9x15B.bdf 9x18B.bdf:
89
 
90
     Complete (TARGET1 reached and checked)
91
 
92
   6x13O.bdf 7x13O.bdf 8x13O.bdf
93
 
94
     Complete (TARGET1 minus Hebrew and block graphics)
95
 
96
The supplement package
97
 
98
  http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz
99
 
100
contains the following additional square fonts with Han characters for
101
East Asian users:
102
 
103
   12x13ja.bdf:
104
 
105
     Covers TARGET2, JIS X 0208, Hangul, and a few more. This font is
106
     primarily intended to provide Japanese full-width Hiragana,
107
     Katakana, and Kanji for applications that take the remaining
108
     ("halfwidth") characters from 6x13.bdf. The Greek lowercase
109
     characters in it are still a bit ugly and will need some work.
110
 
111
  18x18ja.bdf:
112
 
113
     Covers all JIS X 0208, JIS X 0212, GB 2312-80, KS X 1001:1992,
114
     ISO 8859-1,2,3,4,5,7,9,10,15, CP437, CP850 and CP1252 characters,
115
     plus a few more, where priority was given to Japanese han style
116
     variants. This font should have everything needed to cover the
117
     full ISO-2022-JP-2 (RFC 1554) repertoire. This font is primarily
118
     intended to provide Japanese full-width Hiragana, Katakana, and
119
     Kanji for applications that take the remaining ("halfwidth")
120
     characters from 9x18.bdf.
121
 
122
  18x18ko.bdf:
123
 
124
     Covers the same repertoire as 18x18ja plus full coverage of all
125
     Hangul syllables and priority was given to Hanja glyphs in the
126
     unified CJK area as they are used for writing Korean.
127
 
128
The 9x18 and 6x12 fonts are recommended for use with overstriking
129
combining characters.
130
 
131
Bug reports, suggestions for improvement, and especially contributed
132
extensions are very welcome!
133
 
134
INSTALLATION
135
------------
136
 
137
You install the fonts under Unix roughly like this (details depending
138
on your system of course):
139
 
140
System-wide installation (root access required):
141
 
142
  cd submission/
143
  make
144
  su
145
  mv -b *.pcf.gz /usr/lib/X11/fonts/misc/
146
  cd /usr/lib/X11/fonts/misc/
147
  mkfontdir
148
  xset fp rehash
149
 
150
Alternative: Installation in your private user directory:
151
 
152
  cd submission/
153
  make
154
  mkdir -p ~/local/lib/X11/fonts/
155
  mv *.pcf.gz ~/local/lib/X11/fonts/
156
  cd ~/local/lib/X11/fonts/
157
  mkfontdir
158
  xset +fp ~/local/lib/X11/fonts   (put this last line also in ~/.xinitrc)
159
 
160
Now you can have a look at say the 6x13 font with the command
161
 
162
  xfd -fn '-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1'
163
 
164
If you want to have short names for the Unicode fonts, you can also
165
append the fonts.alias file to that in the directory where you install
166
the fonts, call "mkfontdir" and "xset fp rehash" again, and then you
167
can also write
168
 
169
  xfd -fn 6x13U
170
 
171
Note: If you use an old version of xfontsel, you might notice that it
172
treats every font that contains characters >0x00ff as a Japanese JIS
173
font and therefore selects inappropriate sample characters for display
174
of ISO 10646-1 fonts. An updated xfontsel version with this bug fixed
175
comes with XFree86 4.0 or newer.
176
 
177
If you use the Exceed X server on Microsoft Windows, then you will
178
have to convert the BDF files into Microsoft FON files using the
179
"Compile Fonts" function of Exceed xconfig. See the file exceed.txt
180
for more information.
181
 
182
There is one significant efficiency problem that X11R6 has with the
183
sparsely populated ISO10646-1 fonts. X11 transmits and allocates 12
184
bytes with the XFontStruct data structure for the difference between
185
the lowest and the highest code value found in a font, no matter
186
whether the code positions in between are used for characters or not.
187
Even a tiny font that contains only two glyphs at positions 0x0000 and
188
0xfffd causes 12 bytes * 65534 codes = 786 kbytes to be requested and
189
stored by the client. Since all the ISO10646-1 BDF files provided in
190
this package contain characters in the U+00xx (ASCII) and U+ffxx
191
(ligatures, etc.) range, all of them would result in 786 kbyte large
192
XCharStruct arrays in the per_char array of the corresponding
193
XFontStruct (even for CharCell fonts!) when loaded by an X client.
194
Until this problem is fixed by extending the X11 font protocol and
195
implementation, non-CJK ISO10646-1 fonts that lack the (anyway not
196
very interesting) characters above U+31FF seem to be the best
197
compromise. The bdftruncate.pl program in this package can be used to
198
deactivate any glyphs above a threshold code value in BDF files. This
199
way, we get relatively memory-economic ISO10646-1 fonts that cause
200
"only" 150 kbyte large XCharStruct arrays to be allocated. The
201
deactivated glyphs are still present in the BDF files, but with an
202
encoding value of -1 that causes them to be ignored.
203
 
204
The ISO10646-1 fonts can not only be used directly by Unicode aware
205
software, they can also be used to create any 8-bit font. The
206
ucs2any.pl Perl script converts a ISO10646-1 BDF font into a BDF font
207
file with some different encoding. For instance the command
208
 
209
  perl ucs2any.pl 6x13.bdf MAPPINGS/8859-7.TXT ISO8859-7
210
 
211
will generate the file 6x13-ISO8859-7.bdf according to the 8859-7.TXT
212
Latin/Greek mapping table, which available from
213
<ftp://ftp.unicode.org/Public/MAPPINGS/>. [The shell script
214
./map_fonts automatically generates a subdirectory derived-fonts/ with
215
many *.bdf and *.pcf.gz 8-bit versions of all the
216
-misc-fixed-*-iso10646-1 fonts.]
217
 
218
When you do a "make" in the submission/ subdirectory as suggested in
219
the installation instructions above, this will generate exactly the
220
set of fonts that have been submitted to the XFree86 project for
221
inclusion into XFree86 4.0. These consists of all the ISO10646-1 fonts
222
processed with "bdftruncate.pl U+3200" plus a selected set of derived
223
8-bit fonts generated with ucs2any.pl.
224
 
225
I recommend to play around with the UTF-8 editor Yudit. To use for
226
example the 6x13 font with Yudit 1.5, you just have to select the
227
settings
228
 
229
  Font=Misc Unicode
230
  Size=13
231
  Slant=Roman
232
  Spacing=CharCell
233
  Weight=Medium
234
  Add.Style=Any
235
  Avg.Width=60
236
 
237
in the Font menu or in the ~/.yuditrc config file. Yudit is a nice
238
text file editor with UTF-8 support, available from
239
 
240
  http://www.yudit.org/
241
  ftp://sunsite.unc.edu/pub/Linux/apps/editors/X/yudit-1.5.tar.gz
242
 
243
You can also use these fonts with Emacs 20.6 or higher. For more
244
information, see
245
 
246
  http://www.cs.ust.hk/faculty/otfried/Mule/
247
 
248
Every font comes with a *.repertoire-utf8 file that lists all the
249
characters in this font.
250
 
251
 
252
CONTRIBUTING
253
------------
254
 
255
If you want to help me in extending or improving the fonts, or if you
256
want to start your own ISO 10646-1 font project, you will have to edit
257
BDF font files. This is most comfortably done with the xmbdfed font
258
editor (version 4.3 or higher), which is available from
259
 
260
    ftp://crl.nmsu.edu/CLR/multiling/General/
261
 
262
Once you are familiar with xmbdfed, you will notice that it is no
263
problem to design up to 100 nice characters per hour (even more if
264
only placing accents is involved).
265
 
266
Information about other X11 font tools and Unicode fonts for X11 in
267
general can be found on
268
 
269
    http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
270
 
271
The latest version of this package is available from
272
 
273
    http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
274
 
275
If you want to contribute, then get the very latest version of this
276
package, check which glyphs are still missing or inappropriate for
277
your needs, and send me whatever you had the time to add and fix. Just
278
email me the extended BDF-files back, or even better, send me a patch
279
file of what you changed. The best way of preparing a patch file is
280
 
281
  ./touch_id newfile.bdf
282
  diff -d -u -F STARTCHAR oldfile.bdf newfile.bdf >file.diff
283
 
284
which ensures that the patch file preserves information about which
285
exact version you worked on and what character each "hunk" changes.
286
 
287
I will try to update this packet on a daily basis. By sending me
288
extensions to these fonts, you agree that the resulting improved font
289
files will remain in the public domain for everyone's free use. Always
290
make sure to load the very latest version of the package immediately
291
before your start, and send me your results as soon as you are done,
292
in order to avoid revision overlaps with other contributors.
293
 
294
Please try to be careful with the glyphs you generate:
295
 
296
  - Always look first at existing similar characters in order to
297
    preserve a consistent look and feel for the entire font and
298
    within the font family. For block graphics characters and geometric
299
    symbols, take care of correct alignment.
300
 
301
  - Read issues.txt, which contains some design hints for certain
302
    characters.
303
 
304
  - All characters of CharCell (C) fonts must strictly fit into
305
    the pixel matrix and absolutely no out-of-box ink is allowed.
306
 
307
  - The character cells will be displayed directly next to each other,
308
    without any additional pixels in between. Therefore, always make
309
    sure that at least the rightmost pixel column remains white, as
310
    otherwise letters will stick together, except of course for
311
    characters -- like Arabic or block graphics -- that are supposed to
312
    stick together.
313
 
314
  - Place accents as low as possible on the Latin characters.
315
 
316
  - Try to keep the shape of accents consistent among each other and
317
    with the combining characters in the U+03xx range.
318
 
319
  - Use xmbdfed only to edit the BDF file directly and do not import
320
    the font that you want to edit from the X server. Use xmbdfed 4.3
321
    or higher.
322
 
323
  - The glyph names should be the Adobe names for Unicode characters
324
    <http://partners.adobe.com/asn/developer/typeforum/unicodegn.html>,
325
    as xmbdfed can set them automatically if it is configured
326
    with the location of the Adobe "glyphlist.txt" file in
327
    "adobe_name_file" in "~/.xmbdfed". For xmbdfed 4.5 and older, use
328
    <http://partners.adobe.com/asn/developer/type/glyphlist-old.txt>.
329
 
330
  - Be careful to not change the FONTBOUNDINGBOX box accidentally in
331
    a patch.
332
 
333
You should have a copy of the ISO 10646 standard
334
 
335
  ISO/IEC 10646-1:2000, Information technology -- Universal
336
  Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture
337
  and Basic Multilingual Plane, International Organization for
338
  Standardization, Geneva, 2000.
339
  http://www.iso.ch/cate/d29819.html
340
 
341
and/or the Unicode 3.0 book:
342
 
343
  The Unicode Consortium: The Unicode Standard, Version 3.0,
344
  Reading, MA, Addison-Wesley Developers Press, 2000,
345
  ISBN 0-201-61633-5. 
346
  http://www.amazon.com/exec/obidos/ASIN/0201616335/mgk25
347
 
348
All these fonts are from time to time resubmitted to the XFree86
349
project (they have been in there since XFree86 4.0), X.Org, Sun, and
350
to other X server developers for inclusion into their normal X11
351
distributions.
352
 
353
Starting with XFree86 4.0, xterm has included UTF-8 support. This
354
version is also available from
355
 
356
  http://dickey.his.com/xterm/xterm.html
357
 
358
Please make the developer of your favourite software aware of the
359
UTF-8 definition in RFC 2279 and of the existence of this font
360
collection. For more information on how to use UTF-8, please check out
361
 
362
  http://www.cl.cam.ac.uk/~mgk25/unicode.html
363
  ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html
364
 
365
where you will also find information on joining the
366
linux-utf8@nl.linux.org mailing list.
367
 
368
A number of UTF-8 example text files can be found in the examples/
369
subdirectory or on 
370
 
371
  http://www.cl.cam.ac.uk/~mgk25/ucs/examples/
372
 
373
CONTRIBUTORS
374
 
375
Robert Brady <rwb197@ecs.soton.ac.uk> and Birger Langkjer
376
<birger.langkjer@image.dk> contributed thousands of glyphs and made
377
very substantial contributions and improvements on almost all fonts.
378
Constantine Stathopoulos <cstath@irismedia.gr> contributed all the
379
Greek characters. Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> did most 6x13
380
glyphs and the italic fonts and provided many more glyphs,
381
coordination, and quality assurance for the other fonts. Mark Leisher
382
<mleisher@crl.nmsu.edu> contributed to 6x13 Armenian, Georgian, the
383
first version of Latin Extended Block A and some Cyrillic. Serge V.
384
Vakulenko <vak@crox.net.kiae.su> donated the original Cyrillic glyphs
385
from his 6x13 ISO 8859-5 font. Nozomi Ytow <nozomi@biol.tsukuba.ac.jp>
386
contributed 6x13 halfwidth Katakana. Henning Brunzel
387
<hbrunzel@meta-systems.de> contributed glyphs to 10x20.bdf. Theppitak
388
Karoonboonyanan <thep@linux.thai.net> contributed Thai for 7x13,
389
7x13B, 7x13O, 7x14, 7x14B, 8x13, 8x13B, 8x13O, 9x15, 9x15B, and 10x20.
390
Karl Koehler <koehler@or.uni-bonn.de> contributed Arabic to 9x15,
391
9x15B, and 10x20 and Roozbeh Pournader <roozbeh@sharif.ac.ir> and
392
Behdad Esfahbod revised and extended Arabic in 10x20. Raphael Finkel
393
<raphael@cs.uky.edu> revised Hebrew/Yiddish in 10x20. Jungshik Shin
394
<jshin@pantheon.yale.edu> prepared 18x18ko.bdf. Won-kyu Park
395
<wkpark@chem.skku.ac.kr> prepared the Hangul glyphs used in 12x13ja.
396
Janne V. Kujala <jvk@iki.fi> contributed 4x6. Daniel Yacob
397
<perl@geez.org> revised some Ethiopic glyphs. Ted Zlatanov
398
<tzz@lifelogs.com> did some 7x14. Thanks also to everyone who
399
contributed additions to the UTF-8 example texts and to Bruno Haible
400
<haible@ilog.fr> for valuable comments.
401
 
402
The creation of these fonts would certainly not have been possible
403
without Mark Leisher's wonderful xmbdfed software.
404
 
405
Markus
406
 
407
-- 
408
Markus G. Kuhn, Computer Laboratory, University of Cambridge, England