xref: /plan9/lib/font/bit/fixed/README.ORIG (revision 5d9682fa0dc2f40e491cf38125560c16406d4f83)
1
2Unicode versions of the X11 "misc-fixed-*" fonts
3------------------------------------------------
4
5Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> -- 2003-01-17
6
7
8This package contains the X Window System bitmap fonts
9
10   -Misc-Fixed-*-*-*--*-*-*-*-C-*-ISO10646-1
11
12These are Unicode (ISO 10646-1) extensions of the classic ISO 8859-1
13X11 terminal fonts that are widely used with many X11 applications
14such as xterm, emacs, etc.
15
16COVERAGE
17--------
18
19None of these fonts covers Unicode completely. Complete coverage
20simply would not make much sense here. Unicode 3.0 contains over 49000
21characters, and the large majority of them are Chinese/Japanese/Korean
22Han ideographs (~28000) and Korean Hangul Syllables (~11000) that
23cannot adequately be displayed in the small pixel sizes of the fixed
24fonts. Similarly, Arabic characters are difficult to fit nicely
25together with European characters into the fixed character cells and
26X11 lacks the ligature substitution mechanisms required for using
27Indic scripts.
28
29Therefore these fonts primarily attempt to cover Unicode subsets that
30fit together with European scripts. This includes the Latin, Greek,
31Cyrillic, Armenian, Georgian, and Hebrew scripts, plus a lot of
32linguistic, technical and mathematical symbols. Some of the fixed
33fonts now also cover Arabic, Thai, Ethiopian, halfwidth Katakana, and
34some other non-European scripts.
35
36We have defined 3 different target character repertoires (ISO 10646-1
37subsets) that the various fonts were checked against for minimal
38guaranteed 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
78CURRENT 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
96The supplement package
97
98  http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz
99
100contains the following additional square fonts with Han characters for
101East 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
128The 9x18 and 6x12 fonts are recommended for use with overstriking
129combining characters.
130
131Bug reports, suggestions for improvement, and especially contributed
132extensions are very welcome!
133
134INSTALLATION
135------------
136
137You install the fonts under Unix roughly like this (details depending
138on your system of course):
139
140System-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
150Alternative: 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
160Now 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
164If you want to have short names for the Unicode fonts, you can also
165append the fonts.alias file to that in the directory where you install
166the fonts, call "mkfontdir" and "xset fp rehash" again, and then you
167can also write
168
169  xfd -fn 6x13U
170
171Note: If you use an old version of xfontsel, you might notice that it
172treats every font that contains characters >0x00ff as a Japanese JIS
173font and therefore selects inappropriate sample characters for display
174of ISO 10646-1 fonts. An updated xfontsel version with this bug fixed
175comes with XFree86 4.0 or newer.
176
177If you use the Exceed X server on Microsoft Windows, then you will
178have to convert the BDF files into Microsoft FON files using the
179"Compile Fonts" function of Exceed xconfig. See the file exceed.txt
180for more information.
181
182There is one significant efficiency problem that X11R6 has with the
183sparsely populated ISO10646-1 fonts. X11 transmits and allocates 12
184bytes with the XFontStruct data structure for the difference between
185the lowest and the highest code value found in a font, no matter
186whether the code positions in between are used for characters or not.
187Even a tiny font that contains only two glyphs at positions 0x0000 and
1880xfffd causes 12 bytes * 65534 codes = 786 kbytes to be requested and
189stored by the client. Since all the ISO10646-1 BDF files provided in
190this package contain characters in the U+00xx (ASCII) and U+ffxx
191(ligatures, etc.) range, all of them would result in 786 kbyte large
192XCharStruct arrays in the per_char array of the corresponding
193XFontStruct (even for CharCell fonts!) when loaded by an X client.
194Until this problem is fixed by extending the X11 font protocol and
195implementation, non-CJK ISO10646-1 fonts that lack the (anyway not
196very interesting) characters above U+31FF seem to be the best
197compromise. The bdftruncate.pl program in this package can be used to
198deactivate any glyphs above a threshold code value in BDF files. This
199way, we get relatively memory-economic ISO10646-1 fonts that cause
200"only" 150 kbyte large XCharStruct arrays to be allocated. The
201deactivated glyphs are still present in the BDF files, but with an
202encoding value of -1 that causes them to be ignored.
203
204The ISO10646-1 fonts can not only be used directly by Unicode aware
205software, they can also be used to create any 8-bit font. The
206ucs2any.pl Perl script converts a ISO10646-1 BDF font into a BDF font
207file with some different encoding. For instance the command
208
209  perl ucs2any.pl 6x13.bdf MAPPINGS/8859-7.TXT ISO8859-7
210
211will generate the file 6x13-ISO8859-7.bdf according to the 8859-7.TXT
212Latin/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
215many *.bdf and *.pcf.gz 8-bit versions of all the
216-misc-fixed-*-iso10646-1 fonts.]
217
218When you do a "make" in the submission/ subdirectory as suggested in
219the installation instructions above, this will generate exactly the
220set of fonts that have been submitted to the XFree86 project for
221inclusion into XFree86 4.0. These consists of all the ISO10646-1 fonts
222processed with "bdftruncate.pl U+3200" plus a selected set of derived
2238-bit fonts generated with ucs2any.pl.
224
225I recommend to play around with the UTF-8 editor Yudit. To use for
226example the 6x13 font with Yudit 1.5, you just have to select the
227settings
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
237in the Font menu or in the ~/.yuditrc config file. Yudit is a nice
238text 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
243You can also use these fonts with Emacs 20.6 or higher. For more
244information, see
245
246  http://www.cs.ust.hk/faculty/otfried/Mule/
247
248Every font comes with a *.repertoire-utf8 file that lists all the
249characters in this font.
250
251
252CONTRIBUTING
253------------
254
255If you want to help me in extending or improving the fonts, or if you
256want to start your own ISO 10646-1 font project, you will have to edit
257BDF font files. This is most comfortably done with the xmbdfed font
258editor (version 4.3 or higher), which is available from
259
260    ftp://crl.nmsu.edu/CLR/multiling/General/
261
262Once you are familiar with xmbdfed, you will notice that it is no
263problem to design up to 100 nice characters per hour (even more if
264only placing accents is involved).
265
266Information about other X11 font tools and Unicode fonts for X11 in
267general can be found on
268
269    http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
270
271The latest version of this package is available from
272
273    http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
274
275If you want to contribute, then get the very latest version of this
276package, check which glyphs are still missing or inappropriate for
277your needs, and send me whatever you had the time to add and fix. Just
278email me the extended BDF-files back, or even better, send me a patch
279file 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
284which ensures that the patch file preserves information about which
285exact version you worked on and what character each "hunk" changes.
286
287I will try to update this packet on a daily basis. By sending me
288extensions to these fonts, you agree that the resulting improved font
289files will remain in the public domain for everyone's free use. Always
290make sure to load the very latest version of the package immediately
291before your start, and send me your results as soon as you are done,
292in order to avoid revision overlaps with other contributors.
293
294Please 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
333You 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
341and/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
348All these fonts are from time to time resubmitted to the XFree86
349project (they have been in there since XFree86 4.0), X.Org, Sun, and
350to other X server developers for inclusion into their normal X11
351distributions.
352
353Starting with XFree86 4.0, xterm has included UTF-8 support. This
354version is also available from
355
356  http://dickey.his.com/xterm/xterm.html
357
358Please make the developer of your favourite software aware of the
359UTF-8 definition in RFC 2279 and of the existence of this font
360collection. 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
365where you will also find information on joining the
366linux-utf8@nl.linux.org mailing list.
367
368A number of UTF-8 example text files can be found in the examples/
369subdirectory or on
370
371  http://www.cl.cam.ac.uk/~mgk25/ucs/examples/
372
373CONTRIBUTORS
374
375Robert Brady <rwb197@ecs.soton.ac.uk> and Birger Langkjer
376<birger.langkjer@image.dk> contributed thousands of glyphs and made
377very substantial contributions and improvements on almost all fonts.
378Constantine Stathopoulos <cstath@irismedia.gr> contributed all the
379Greek characters. Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> did most 6x13
380glyphs and the italic fonts and provided many more glyphs,
381coordination, and quality assurance for the other fonts. Mark Leisher
382<mleisher@crl.nmsu.edu> contributed to 6x13 Armenian, Georgian, the
383first version of Latin Extended Block A and some Cyrillic. Serge V.
384Vakulenko <vak@crox.net.kiae.su> donated the original Cyrillic glyphs
385from his 6x13 ISO 8859-5 font. Nozomi Ytow <nozomi@biol.tsukuba.ac.jp>
386contributed 6x13 halfwidth Katakana. Henning Brunzel
387<hbrunzel@meta-systems.de> contributed glyphs to 10x20.bdf. Theppitak
388Karoonboonyanan <thep@linux.thai.net> contributed Thai for 7x13,
3897x13B, 7x13O, 7x14, 7x14B, 8x13, 8x13B, 8x13O, 9x15, 9x15B, and 10x20.
390Karl Koehler <koehler@or.uni-bonn.de> contributed Arabic to 9x15,
3919x15B, and 10x20 and Roozbeh Pournader <roozbeh@sharif.ac.ir> and
392Behdad 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.
396Janne 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
399contributed additions to the UTF-8 example texts and to Bruno Haible
400<haible@ilog.fr> for valuable comments.
401
402The creation of these fonts would certainly not have been possible
403without Mark Leisher's wonderful xmbdfed software.
404
405Markus
406
407--
408Markus G. Kuhn, Computer Laboratory, University of Cambridge, England
409