| |
| Unicode versions of the X11 "misc-fixed-*" fonts |
| ------------------------------------------------ |
| |
| Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> -- 2003-01-17 |
| |
| |
| This package contains the X Window System bitmap fonts |
| |
| -Misc-Fixed-*-*-*--*-*-*-*-C-*-ISO10646-1 |
| |
| These are Unicode (ISO 10646-1) extensions of the classic ISO 8859-1 |
| X11 terminal fonts that are widely used with many X11 applications |
| such as xterm, emacs, etc. |
| |
| COVERAGE |
| -------- |
| |
| None of these fonts covers Unicode completely. Complete coverage |
| simply would not make much sense here. Unicode 3.0 contains over 49000 |
| characters, and the large majority of them are Chinese/Japanese/Korean |
| Han ideographs (~28000) and Korean Hangul Syllables (~11000) that |
| cannot adequately be displayed in the small pixel sizes of the fixed |
| fonts. Similarly, Arabic characters are difficult to fit nicely |
| together with European characters into the fixed character cells and |
| X11 lacks the ligature substitution mechanisms required for using |
| Indic scripts. |
| |
| Therefore these fonts primarily attempt to cover Unicode subsets that |
| fit together with European scripts. This includes the Latin, Greek, |
| Cyrillic, Armenian, Georgian, and Hebrew scripts, plus a lot of |
| linguistic, technical and mathematical symbols. Some of the fixed |
| fonts now also cover Arabic, Thai, Ethiopian, halfwidth Katakana, and |
| some other non-European scripts. |
| |
| We have defined 3 different target character repertoires (ISO 10646-1 |
| subsets) that the various fonts were checked against for minimal |
| guaranteed coverage: |
| |
| TARGET1 616 characters |
| Covers all characters of ISO 8859 part 1-5,7-10,13-16, |
| CEN MES-1, ISO 6937, Microsoft CP1251/CP1252, DEC VT100 |
| graphics symbols, and the replacement and default |
| character. It is intended for small bold, italic, and |
| proportional fonts, for which adding block graphics |
| characters would make little sense. This repertoire |
| covers the following ISO 10646-1:2000 collections |
| completely: 1-3, 8, 12. |
| |
| TARGET2 885 characters |
| Adds to TARGET1 the characters of the Adobe/Microsoft |
| Windows Glyph List 4 (WGL4), plus a selected set of |
| mathematical characters (covering most of ISO 31-11 |
| high-school level math symbols) and some combining |
| characters. It is intended to be covered by all normal |
| "fixed" fonts and covers all European IBM, Microsoft, and |
| Macintosh character sets. This repertoire covers the |
| following ISO 10646-1:2000 (including Amd 1:2002) |
| collections completely: 1-3, 8, 12, 33, 45. |
| |
| TARGET3 3228 characters |
| |
| Adds to TARGET2 all characters of all European scripts |
| (Latin, Greek, Cyrillic, Armenian, Georgian), all |
| phonetic alphabet symbols, many mathematical symbols |
| (including all those available in LaTeX), all typographic |
| punctuation, all box-drawing characters, control code |
| pictures, graphical shapes and some more that you would |
| expect in a very comprehensive Unicode 3.2 font for |
| European users. It is intended for some of the more |
| useful and more widely used normal "fixed" fonts. This |
| repertoire is a superset of all graphical characters in |
| CEN MES-3A and covers the following ISO 10646-1:2000 |
| (including Amd 1:2002) collections completely: 1-12, 27, |
| 30-31, 32 (only graphical characters), 33-42, 44-47, 63, |
| 65, 70 (only graphical characters). |
| |
| CURRENT STATUS: |
| |
| 6x13.bdf 8x13.bdf 9x15.bdf 9x18.bdf 10x20.bdf: |
| |
| Complete (TARGET3 reached and checked) |
| |
| 5x7.bdf 5x8.bdf 6x9.bdf 6x10.bdf 6x12.bdf 7x13.bdf 7x14.bdf clR6x12.bdf: |
| |
| Complete (TARGET2 reached and checked) |
| |
| 6x13B.bdf 7x13B.bdf 7x14B.bdf 8x13B.bdf 9x15B.bdf 9x18B.bdf: |
| |
| Complete (TARGET1 reached and checked) |
| |
| 6x13O.bdf 7x13O.bdf 8x13O.bdf |
| |
| Complete (TARGET1 minus Hebrew and block graphics) |
| |
| The supplement package |
| |
| http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz |
| |
| contains the following additional square fonts with Han characters for |
| East Asian users: |
| |
| 12x13ja.bdf: |
| |
| Covers TARGET2, JIS X 0208, Hangul, and a few more. This font is |
| primarily intended to provide Japanese full-width Hiragana, |
| Katakana, and Kanji for applications that take the remaining |
| ("halfwidth") characters from 6x13.bdf. The Greek lowercase |
| characters in it are still a bit ugly and will need some work. |
| |
| 18x18ja.bdf: |
| |
| Covers all JIS X 0208, JIS X 0212, GB 2312-80, KS X 1001:1992, |
| ISO 8859-1,2,3,4,5,7,9,10,15, CP437, CP850 and CP1252 characters, |
| plus a few more, where priority was given to Japanese han style |
| variants. This font should have everything needed to cover the |
| full ISO-2022-JP-2 (RFC 1554) repertoire. This font is primarily |
| intended to provide Japanese full-width Hiragana, Katakana, and |
| Kanji for applications that take the remaining ("halfwidth") |
| characters from 9x18.bdf. |
| |
| 18x18ko.bdf: |
| |
| Covers the same repertoire as 18x18ja plus full coverage of all |
| Hangul syllables and priority was given to Hanja glyphs in the |
| unified CJK area as they are used for writing Korean. |
| |
| The 9x18 and 6x12 fonts are recommended for use with overstriking |
| combining characters. |
| |
| Bug reports, suggestions for improvement, and especially contributed |
| extensions are very welcome! |
| |
| INSTALLATION |
| ------------ |
| |
| You install the fonts under Unix roughly like this (details depending |
| on your system of course): |
| |
| System-wide installation (root access required): |
| |
| cd submission/ |
| make |
| su |
| mv -b *.pcf.gz /usr/lib/X11/fonts/misc/ |
| cd /usr/lib/X11/fonts/misc/ |
| mkfontdir |
| xset fp rehash |
| |
| Alternative: Installation in your private user directory: |
| |
| cd submission/ |
| make |
| mkdir -p ~/local/lib/X11/fonts/ |
| mv *.pcf.gz ~/local/lib/X11/fonts/ |
| cd ~/local/lib/X11/fonts/ |
| mkfontdir |
| xset +fp ~/local/lib/X11/fonts (put this last line also in ~/.xinitrc) |
| |
| Now you can have a look at say the 6x13 font with the command |
| |
| xfd -fn '-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1' |
| |
| If you want to have short names for the Unicode fonts, you can also |
| append the fonts.alias file to that in the directory where you install |
| the fonts, call "mkfontdir" and "xset fp rehash" again, and then you |
| can also write |
| |
| xfd -fn 6x13U |
| |
| Note: If you use an old version of xfontsel, you might notice that it |
| treats every font that contains characters >0x00ff as a Japanese JIS |
| font and therefore selects inappropriate sample characters for display |
| of ISO 10646-1 fonts. An updated xfontsel version with this bug fixed |
| comes with XFree86 4.0 or newer. |
| |
| If you use the Exceed X server on Microsoft Windows, then you will |
| have to convert the BDF files into Microsoft FON files using the |
| "Compile Fonts" function of Exceed xconfig. See the file exceed.txt |
| for more information. |
| |
| There is one significant efficiency problem that X11R6 has with the |
| sparsely populated ISO10646-1 fonts. X11 transmits and allocates 12 |
| bytes with the XFontStruct data structure for the difference between |
| the lowest and the highest code value found in a font, no matter |
| whether the code positions in between are used for characters or not. |
| Even a tiny font that contains only two glyphs at positions 0x0000 and |
| 0xfffd causes 12 bytes * 65534 codes = 786 kbytes to be requested and |
| stored by the client. Since all the ISO10646-1 BDF files provided in |
| this package contain characters in the U+00xx (ASCII) and U+ffxx |
| (ligatures, etc.) range, all of them would result in 786 kbyte large |
| XCharStruct arrays in the per_char array of the corresponding |
| XFontStruct (even for CharCell fonts!) when loaded by an X client. |
| Until this problem is fixed by extending the X11 font protocol and |
| implementation, non-CJK ISO10646-1 fonts that lack the (anyway not |
| very interesting) characters above U+31FF seem to be the best |
| compromise. The bdftruncate.pl program in this package can be used to |
| deactivate any glyphs above a threshold code value in BDF files. This |
| way, we get relatively memory-economic ISO10646-1 fonts that cause |
| "only" 150 kbyte large XCharStruct arrays to be allocated. The |
| deactivated glyphs are still present in the BDF files, but with an |
| encoding value of -1 that causes them to be ignored. |
| |
| The ISO10646-1 fonts can not only be used directly by Unicode aware |
| software, they can also be used to create any 8-bit font. The |
| ucs2any.pl Perl script converts a ISO10646-1 BDF font into a BDF font |
| file with some different encoding. For instance the command |
| |
| perl ucs2any.pl 6x13.bdf MAPPINGS/8859-7.TXT ISO8859-7 |
| |
| will generate the file 6x13-ISO8859-7.bdf according to the 8859-7.TXT |
| Latin/Greek mapping table, which available from |
| <ftp://ftp.unicode.org/Public/MAPPINGS/>. [The shell script |
| ./map_fonts automatically generates a subdirectory derived-fonts/ with |
| many *.bdf and *.pcf.gz 8-bit versions of all the |
| -misc-fixed-*-iso10646-1 fonts.] |
| |
| When you do a "make" in the submission/ subdirectory as suggested in |
| the installation instructions above, this will generate exactly the |
| set of fonts that have been submitted to the XFree86 project for |
| inclusion into XFree86 4.0. These consists of all the ISO10646-1 fonts |
| processed with "bdftruncate.pl U+3200" plus a selected set of derived |
| 8-bit fonts generated with ucs2any.pl. |
| |
| I recommend to play around with the UTF-8 editor Yudit. To use for |
| example the 6x13 font with Yudit 1.5, you just have to select the |
| settings |
| |
| Font=Misc Unicode |
| Size=13 |
| Slant=Roman |
| Spacing=CharCell |
| Weight=Medium |
| Add.Style=Any |
| Avg.Width=60 |
| |
| in the Font menu or in the ~/.yuditrc config file. Yudit is a nice |
| text file editor with UTF-8 support, available from |
| |
| http://www.yudit.org/ |
| ftp://sunsite.unc.edu/pub/Linux/apps/editors/X/yudit-1.5.tar.gz |
| |
| You can also use these fonts with Emacs 20.6 or higher. For more |
| information, see |
| |
| http://www.cs.ust.hk/faculty/otfried/Mule/ |
| |
| Every font comes with a *.repertoire-utf8 file that lists all the |
| characters in this font. |
| |
| |
| CONTRIBUTING |
| ------------ |
| |
| If you want to help me in extending or improving the fonts, or if you |
| want to start your own ISO 10646-1 font project, you will have to edit |
| BDF font files. This is most comfortably done with the xmbdfed font |
| editor (version 4.3 or higher), which is available from |
| |
| ftp://crl.nmsu.edu/CLR/multiling/General/ |
| |
| Once you are familiar with xmbdfed, you will notice that it is no |
| problem to design up to 100 nice characters per hour (even more if |
| only placing accents is involved). |
| |
| Information about other X11 font tools and Unicode fonts for X11 in |
| general can be found on |
| |
| http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html |
| |
| The latest version of this package is available from |
| |
| http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz |
| |
| If you want to contribute, then get the very latest version of this |
| package, check which glyphs are still missing or inappropriate for |
| your needs, and send me whatever you had the time to add and fix. Just |
| email me the extended BDF-files back, or even better, send me a patch |
| file of what you changed. The best way of preparing a patch file is |
| |
| ./touch_id newfile.bdf |
| diff -d -u -F STARTCHAR oldfile.bdf newfile.bdf >file.diff |
| |
| which ensures that the patch file preserves information about which |
| exact version you worked on and what character each "hunk" changes. |
| |
| I will try to update this packet on a daily basis. By sending me |
| extensions to these fonts, you agree that the resulting improved font |
| files will remain in the public domain for everyone's free use. Always |
| make sure to load the very latest version of the package immediately |
| before your start, and send me your results as soon as you are done, |
| in order to avoid revision overlaps with other contributors. |
| |
| Please try to be careful with the glyphs you generate: |
| |
| - Always look first at existing similar characters in order to |
| preserve a consistent look and feel for the entire font and |
| within the font family. For block graphics characters and geometric |
| symbols, take care of correct alignment. |
| |
| - Read issues.txt, which contains some design hints for certain |
| characters. |
| |
| - All characters of CharCell (C) fonts must strictly fit into |
| the pixel matrix and absolutely no out-of-box ink is allowed. |
| |
| - The character cells will be displayed directly next to each other, |
| without any additional pixels in between. Therefore, always make |
| sure that at least the rightmost pixel column remains white, as |
| otherwise letters will stick together, except of course for |
| characters -- like Arabic or block graphics -- that are supposed to |
| stick together. |
| |
| - Place accents as low as possible on the Latin characters. |
| |
| - Try to keep the shape of accents consistent among each other and |
| with the combining characters in the U+03xx range. |
| |
| - Use xmbdfed only to edit the BDF file directly and do not import |
| the font that you want to edit from the X server. Use xmbdfed 4.3 |
| or higher. |
| |
| - The glyph names should be the Adobe names for Unicode characters |
| <http://partners.adobe.com/asn/developer/typeforum/unicodegn.html>, |
| as xmbdfed can set them automatically if it is configured |
| with the location of the Adobe "glyphlist.txt" file in |
| "adobe_name_file" in "~/.xmbdfed". For xmbdfed 4.5 and older, use |
| <http://partners.adobe.com/asn/developer/type/glyphlist-old.txt>. |
| |
| - Be careful to not change the FONTBOUNDINGBOX box accidentally in |
| a patch. |
| |
| You should have a copy of the ISO 10646 standard |
| |
| ISO/IEC 10646-1:2000, Information technology -- Universal |
| Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture |
| and Basic Multilingual Plane, International Organization for |
| Standardization, Geneva, 2000. |
| http://www.iso.ch/cate/d29819.html |
| |
| and/or the Unicode 3.0 book: |
| |
| The Unicode Consortium: The Unicode Standard, Version 3.0, |
| Reading, MA, Addison-Wesley Developers Press, 2000, |
| ISBN 0-201-61633-5. |
| http://www.amazon.com/exec/obidos/ASIN/0201616335/mgk25 |
| |
| All these fonts are from time to time resubmitted to the XFree86 |
| project (they have been in there since XFree86 4.0), X.Org, Sun, and |
| to other X server developers for inclusion into their normal X11 |
| distributions. |
| |
| Starting with XFree86 4.0, xterm has included UTF-8 support. This |
| version is also available from |
| |
| http://dickey.his.com/xterm/xterm.html |
| |
| Please make the developer of your favourite software aware of the |
| UTF-8 definition in RFC 2279 and of the existence of this font |
| collection. For more information on how to use UTF-8, please check out |
| |
| http://www.cl.cam.ac.uk/~mgk25/unicode.html |
| ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html |
| |
| where you will also find information on joining the |
| linux-utf8@nl.linux.org mailing list. |
| |
| A number of UTF-8 example text files can be found in the examples/ |
| subdirectory or on |
| |
| http://www.cl.cam.ac.uk/~mgk25/ucs/examples/ |
| |
| CONTRIBUTORS |
| |
| Robert Brady <rwb197@ecs.soton.ac.uk> and Birger Langkjer |
| <birger.langkjer@image.dk> contributed thousands of glyphs and made |
| very substantial contributions and improvements on almost all fonts. |
| Constantine Stathopoulos <cstath@irismedia.gr> contributed all the |
| Greek characters. Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> did most 6x13 |
| glyphs and the italic fonts and provided many more glyphs, |
| coordination, and quality assurance for the other fonts. Mark Leisher |
| <mleisher@crl.nmsu.edu> contributed to 6x13 Armenian, Georgian, the |
| first version of Latin Extended Block A and some Cyrillic. Serge V. |
| Vakulenko <vak@crox.net.kiae.su> donated the original Cyrillic glyphs |
| from his 6x13 ISO 8859-5 font. Nozomi Ytow <nozomi@biol.tsukuba.ac.jp> |
| contributed 6x13 halfwidth Katakana. Henning Brunzel |
| <hbrunzel@meta-systems.de> contributed glyphs to 10x20.bdf. Theppitak |
| Karoonboonyanan <thep@linux.thai.net> contributed Thai for 7x13, |
| 7x13B, 7x13O, 7x14, 7x14B, 8x13, 8x13B, 8x13O, 9x15, 9x15B, and 10x20. |
| Karl Koehler <koehler@or.uni-bonn.de> contributed Arabic to 9x15, |
| 9x15B, and 10x20 and Roozbeh Pournader <roozbeh@sharif.ac.ir> and |
| Behdad Esfahbod revised and extended Arabic in 10x20. Raphael Finkel |
| <raphael@cs.uky.edu> revised Hebrew/Yiddish in 10x20. Jungshik Shin |
| <jshin@pantheon.yale.edu> prepared 18x18ko.bdf. Won-kyu Park |
| <wkpark@chem.skku.ac.kr> prepared the Hangul glyphs used in 12x13ja. |
| Janne V. Kujala <jvk@iki.fi> contributed 4x6. Daniel Yacob |
| <perl@geez.org> revised some Ethiopic glyphs. Ted Zlatanov |
| <tzz@lifelogs.com> did some 7x14. Thanks also to everyone who |
| contributed additions to the UTF-8 example texts and to Bruno Haible |
| <haible@ilog.fr> for valuable comments. |
| |
| The creation of these fonts would certainly not have been possible |
| without Mark Leisher's wonderful xmbdfed software. |
| |
| Markus |
| |
| -- |
| Markus G. Kuhn, Computer Laboratory, University of Cambridge, England |