UNIVERSITY OF PENNSYLVANIA - AFRICAN STUDIES CENTER
African Fonts for TeX

African Fonts for TeX

FC-FONTS FOR AFRICAN LANGUAGES ________________________________________________________________________ ________________________________________________________________________

fc.rme version 1.0d of 8-MAY-1993 (c) Copyright 1992,1993 by Jorg Knappen knappen@vkpmzd.kph.uni-mainz.de

This is the documentation of the fc-Fonts for African languages

Contents:

I) Introduction

II) About the FC-Scheme a) The language base b) Technical points c) Copiing conditions

III) How to generate the fonts with METAFONT

IV) How to use the FC-Fonts with LaTeX

V) Availability

VI) Acknowledgements

Appendix A) The FC encoding scheme (codes 128 -- 255) Appendix B) Removed -- see file fc.bug Appendix C) Shortcomings and known bugs of the first release

I. Introduction

TeX is a typesetting system for high quality typesetting. It is available free due to the generosity of its developper, Prof D. E. Knuth. It is available for many different platforms, from microcomputers (PC, Atatri, Mac) to mainframes and even supercomputers. TeX files can be interchanged between different systems and will produce identical output. TeX is well documented in D. E. Knuth, Computers and typesetting, Vol. A -- The Texbook.

The release of TeX Version 3 stimulated lots of work in the area of adapting TeX to the needs of other languages than english. One outstanding project was the creation of a font encoding scheme with 256 characters for international use. It soon turned out, that with 256 code points only the needs of european languages could be satisfied (the EC scheme proceeds this way), and there had to be other fonts for non- european languages. The FC (aFrican Computer) scheme fits the needs of african languages with latin writing. This scheme comes together with an implementation of the fonts in METAFONT. The fonts created by METAFONT can also be used by other system than TeX.

II. About the FC-Scheme

a) The language base

There is a great diversity of languages spoken in africa, and it was impossible to check all of them for their alphabets. This work is based on the examination of the critical languages'' according to a definition of the US department of education in 1985. They include all those languages with more than 1 mio speakers.

Only orthographical writing is considered. Transscription systems devolopped by linguists are outside the scope of this work. Obsolete orthographies are also not included (for example the obsolete uppercase form of hooktop B in Xhosa and Zulu or the obsolete (catholic) orthography of \d{I}gb\d{o}).

Even these constraints showed the lack of code space. Therefore some accented letters did not enter the fc scheme. Generally, accented letters were omitted, if the accent denotes a tonal mark. This is in consistency with the current trend in orthography to suppress tonal marks, except if ambiguities occur. Also omitted are consonants with tilde to denote nasalisation. The mentioned letters can be created in TeX by the use of macros (e.g. \~y).

The following languages are supported:

Akan, Bamileke, Basa (Kru), Bemba, Ciokwe, Dinka, Dholuo (Luo), Efik, Ewe-Fon, Fulani (Fulful), G\~a, Gbaya, Hausa, Igbo, Kanuri, Kikuyu, Kikongo, Kpelle, Krio, Luba, Mandekan (Bambara), Mende, More, Ngala, Nyanja, Oromo, Rundi, Kinya Rwanda, Sango, Serer, Shona, Somali, Songhai, Sotho (two different writing systems), Suaheli, Tiv, Yao, Yoruba, Xhosa and Zulu.

I decided to support two european languages, which are not covered by the EC-scheme, namely Maltese and Sami.

b) Technical points

The fc encoding scheme will not be changed anymore. Every font, which begins with the two characters fc should be encoded according to the fc scheme.

The fonts named fcr etc. contain what you expect from TeX naming conventions. They are currently maintained by the author.

The code points are choosen from scratch, according to the following rules:

* The lower 128 codes are identical to the Cork (ec) scheme

* A glyph also occurring in the Cork scheme is placed on the same code point as in the Cork scheme

* Each letter from TeX's original cm-fonts is saved. Thus, you can print polish L, skandinavian crossed O and some other letters with the fc fonts.

* The difference between uppercase and corresponding lowercase letter is a constant.

c) Copiing conditions

The fc fonts are copyrighted but free according to the conditions of the GNU licence, version 1.0. You should receive a copy of the file licence.gnu containing this licence. If not, complain to the person from which you received these fonts. Read the licence carefully.

III) How to generate the fonts with METAFONT

Besides the files of the fc package, you need the following:

* plain.mf (or a METAFONT with plain preloaded) * cmbase.mf (or a METAFONT with cmbase preloaded) * The files romand.mf, itald.mf, and olddig.mf (the original digits from the cm fonts) * The Sauter tools. These are a bunch of files, named like c-cmr.mf and so on.

They are available from several servers, e.g. ftp.uni-stuttgart.de ymir.claremont.edu

Make sure, that all files are in appropriate directories, where METAFONT finds them.

Now you are ready to create the fc fonts at any size you want, for example to create the font fcr10 do the following:

mf "\mode=localfont; design_size:=10; input b-fcr" gftopk b-fcr.300gf fcr10.pk rename b-fcr.tfm fcr10.tfm

and move the .pk and .tfm-files to their directories. The exact form of the calls depends a little on your operating system.

You might find it helpful to make yourself little mf-files of the type

% fcr10.mf design_size:=10; input b-fcr; endinput; % end of fcr10.mf

These files are especially usefull, if you have an automagic procedure invoking METAFONT. Note, that for the sizes 11pt and >12pt, the design_size is not identical to the last digits of the fontname. It is

fcr11 design_size:=10.95; fcr14 design_size:=14.4; fcr17 design_size:=17.28; fcr20 design_size:=20.736; fcr24 design_size:=24.8832;

Note that there is only one fc italic font, called fci. It is not planned to add fc math fonts to the distribution. Use the cm math fonts (or the not yet released ec math fonts).

IV) How to use the FC-Fonts with LaTeX

WARNING: This part of the work is still preliminary. The LaTeX implemention of several features might change.

In this release, you find three files for the use of the fc-fonts with LaTeX. They are:

fclfont.sty, fontdef.fc and fcuse.sty.

The first two are to create a format file under LaTeX with the new font selection scheme by R. Sch"opf and F. Mittelbach. To do this, rename lfonts.tex to lfonts.old. Run initex lplain and input lfonts.new, when you are asked for another input file name. After this, input fontdef.fc, preload.min, and fclfont.sty. \dump.

The file fcuse.sty is not meant for inclusion in a format file. It is a document style option. Its use is only recomended, if you want to use the complete fc character set. Usually you only want to typeset text in one or two languages, and a language specific style option will be more appropriate. Look into existing language dependent style options (e.g. german.sty) or into the babel system by J. Braams to figure out how to create a new one.

V) Availability

The fc package is available per anonymous ftp or e-mail from the DANTE- server at Stuttgart, which is the primary site of its distribution. Since the main TeX archives cooperate, it will be available from other sites, too.

If you are running an ftp-server and do not get update notices from Stuttgart, please let me know. I'll inform you, when I place updates at Stuttgart. The address of the DANTE-Server is:

(ftp:) ftp.uni-stuttgart.de (e-mail:) mailserver@rusinfo.rus.uni-stuttgart.de

VI) Acknowledgements

Without the work of other authors on META-fonts, these fonts would surely never have come out. I took deliberately from all available free metafont sources ideas, macros, and even whole characters. All bugs and mistakes in this code are mine, noone of the acknowledged authors should be blamed for them.

The first acknoledgement goes to Donald E. Knuth, the author of the TeX and METAFONT programs and also of the computer modern (cm) family of fonts. His work is the base of this one.

I also want to acknowledge the following persons: Julian Bradfield, who made the cmoe old english font. Malcolm Clark, editor of the newsletter TeXline. Nana Glonti and Aleksander Samarin, who made the cmcyr cyrillic fonts. Yannis Haralambous, who created of the 128-char greek fonts (and many others) Emma Pease, who made the cmph phonetic fonts (Her work is used in the Hausa--English dictionary by Rosanna Ma Newman) J"orgen Pind, who made icelandic TeX and fonts for it. Tom Ridgeway of the University of Washington, who made the wncyr cyrillic fonts and experiments with a new ipa font. Norbert Schwarz, who made the dc-fonts, a first implementation of the ec- (Cork-) scheme. Janene Winter, who made the wsuipa international phonetic fonts, from which I learned much.

For help in the africanist part of the work, I want to thank Prof. Norbert Cypher, Institut f"ur Ethnologie und Afrikastudien Mainz, for pointing me to the critical languages and help in finding references. I thank Prof. Fiona McLaughlin,University of Kansas, Lawrence, Kansas, for good references on Serer and Prof Michael MacMahon, University of Glasgow for sending samples of african letters.

Appendix A: The fc encoding scheme (octal 200 -- 377)

octal code description

200 uppercase hooktop B 201 uppercase hooktop D 202 uppercase open E (\varepsilon-like) 203 uppercase reversed E (like \exists) 204 uppercase long F 205 uppercase E with ha\v{c}ek 206 uppercase ipa Gamma 207 uppercase double barred H

210 uppercase hooktop K 211 uppercase Enj 212 uppercase open O (revesed C) 213 uppercase N with acute 214 uppercase Esh 215 uppercase Eng 216 uppercase variant U (\upsilon-like) 217 uppercase hooktop Y

220 uppercase hooktop C 221 uppercase hooktop P 222 uppercase S with ha\v{c}ek 223 uppercase N with dot above 224 uppercase N with line below 225 uppercase S with dot below 226 uppercase Ezh 227 uppercase crossed T

230 uppercase E with dot above 231 uppercase E with dot below 232 uppercase hooktop T 233 uppercase T with tail 234 ligature t-esh 235 ligature fj 236 lowercase crossed d 237 double grave accent

240 lowercase hooktop b 241 lowercase hooktop d 242 lowercase open e 243 lowercase inverted e 244 lowercase long f 245 lowercase e with ha\v{c]ek 246 lowercase ipa gamma 247 lowercase crossed h

250 lowercase hooktop k 251 lowercase enj 252 lowercase open O 253 lowercase n with acute 254 lowercase esh 255 lowercase eng 256 lowercase variant u 257 lowercase hooktop y

260 lowercase hooktop c 261 lowercase hooktop p 262 lowercase s with ha\v{c}ek 263 lowercase n with dot above 264 lowercase n with line below 265 lowercase s with dot below 266 lowercase ezh 267 lowercase crossed t

270 lowercase e with dot above 271 lowercase e with dot below 272 lowercase hooktop t 273 lowercase t with tail 274 double universal accent 275 inverted exclamation mark 276 inverted question mark 277 unversal accent

300 uppercase latin Iota 301 uppercase I with dot below 302 uppercase open E with tilde 303 uppercase A with tilde 304 uppercase M with acute 305 uppercase Open O with tilde 306 uppercase ligature AE 307 uppercase C with cedilla

310 uppercase E with grave 311 uppercase E with acute 312 uppercase E with circumflex 313 uppercase E with diaresis 314 uppercase E with line below 315 uppercase E with macron 316 uppercase E with tilde 317 uppercase I with tilde

320 uppercase crossed D (uppercase d with tail, Edh) 321 uppercase N with tilde 322 uppercase O with grave 323 uppercase O with dot above 324 uppercase O with circumflex 325 uppercase O with tilde 326 uppercase O with diaresis 327 uppercase ligature OE

330 uppercase crossed O (skandinavian) 331 uppercase O with dot below 332 uppercase O with line below 333 uppercase O with macron 334 uppercase O with ha\v{c}ek 335 uppercase U with dot below 336 uppercase U with tilde 337 cross piece for polish L and l

340 lowercase latin iota 341 lowercase i with dot below 342 lowercase open e with tilde 343 lowercase a with tilde 344 lowercase m with acute 345 lowercase open o with tilde 346 lowercase ligature ae 347 lowercase c with cedilla

350 lowercase e with grave 351 lowercase e with acute 352 lowercase e with circumflex 353 lowercase e with diaresis 354 lowercase e with line below 355 lowercase e with macron 356 lowercase e with tilde 357 lowercase i with tilde

360 lowercase d with tail (note: not edh!) 361 lowercase n with tilde 362 lowercase o with grave 363 lowercase o with dot above 364 lowercase o with circumflex 365 lowercase o with tilde 366 lowercase o with diaresis 367 lowercase ligature oe

370 lowercase crossed o (skandinavian) 371 lowercase o with dot below 372 lowercase o with line below 373 lowercase o with macron 374 lowercase o with ha\v{c}ek 375 lowercase u with dot below 376 lowercase u with tilde 377 lowercase scharfes s

Appendix B: List of files

Please find the list of files together with the current version number and date in fc.bug.

Appendix C: Shortcomings and bugs of the first release

Since this is the first release, one has to expect bugs (sigh!) in several of the characters. So consider yourself a beta tester...

The fonts are tested up to now only on a 300dpi write white device, and probably even a bit optimised to it. Some times strange path- error messages occured, but they did not seem to cause visible harm. There might be visible erros, too, which I did not discover.

If you find an bug or mistake, send it to me, including the following information:

Which parameters caused the error/bug? (e.g. design_size=6; b-fctt)

Which mode did you use? (Please don't say localfont', this tells nothing to me... e.g. lowres from cmbase, ricoh from Karl Berry's modes.mf)

Which character contains the bug? (e.g. [162] open_e)

Is the damage visible in the printout? What does it look like? (e.g. Nothing at all is printed, or some part of the letter is missing)

Send bug reports to: J"org Knappen Institut f"ur Kernphysik Postfach 39 80 D-W 6500 Mainz R.F.A. e-mail knappen@vkpmzd.kph.uni-mainz.de.

P.S if you know a fix, it is greatly appreciated...

Editor: Ali B. Ali-Dinar