Fonts: Difference between revisions

From OLPC
Jump to navigation Jump to search
(→‎Font Projects: confirm FontConfig)
Line 7: Line 7:


=== What fonts are already installed ===
=== What fonts are already installed ===
A quick way to see some of the fonts available is to start the [[Write]] activity and from its text menu click the arrow for the pop-up font menu.
A quick way to see some of the fonts available is to start the [[Write]] activity and from its Text menu click the arrow for the pop-up font menu.


In a [[Terminal Activity]], enter the command
In a [[Terminal Activity]], enter the command

Revision as of 11:03, 27 November 2008

To discuss the content of this page, visit Talk:Fonts (it's the link labeled Discussion above).

Introduction

Because the OLPC will be used in many different countries with different writing systems and scripts, it needs to have fairly broad font support. In addition, the OLPC is targetted at regions where there are currently very few computers in use. This means that existing fonts may not support the full set of glyphs required. The OLPC relies on the Unicode support in GTK+/Pango, Python, and Linux in order to input, manipulate and display text. There are many Unicode fonts available but in order to be used on the OLPC, we either need an open-source font (preferable) or a license to use the font.

Installing fonts

What fonts are already installed

A quick way to see some of the fonts available is to start the Write activity and from its Text menu click the arrow for the pop-up font menu.

In a Terminal Activity, enter the command

fc-list

for a more detailed list of fonts including variants such as bold and oblique.

Many of the fonts installed on the XO provide glyphs in other languages and so their letter forms for Western alphabets are not very interesting.

Using yum

For fonts in the yum repository that the XO is set up to use, just become root in the Terminal Activity, and enter

yum search fonts-

which will list available font packages. To install one of these packages, enter

yum install fonts-font_name

(you can leave out the .noarch extension). For example,

yum install fonts-hebrew

Note: In other repositories (such as for SuSE) font RPMs are named with a "ttf-" prefix:

yum install ttf-font_name

By copying .ttf files

If you have a .ttf font, you may be able to copy it to the XO depending on the license agreement you have for the font.

Detailed instructions to do this using a USB flash drive are at http://mathcasts.org/mtwiki/XOLaptop/Fonts

To sum up, as root in a Terminal Activity, create a directory truetype in /usr/share/fonts, and copy the .ttf file to this directory.

Note that many guides to fonts for the X Window System suggest you can install fonts in a .fonts directory in the user's home directory. This does not seem to work for the default "olpc" user on the XO, possibly because the Rainbow security framework isolates each activity.

Unicode Fonts

In order to help us out, please review the fonts on these pages (and elsewhere). For fonts not on the pages linked below, list the names of the fonts, the type of license (Free/Open Source or commercial) along with a URL pointing to the open source licence or contact information for the font owner. Please, if it is a commercial font, do not just list a company name such as Microsoft or Bitstream. We need an actual contact within the commercial organization that can issue a licence.

There is extensive information on Open Source fonts at this site. And there is an open source text editor called Yudit that can be used to write multiple scripts/languages including bidirectional support.

There is no problem with finding Unicode fonts for Western and Eastern Europe, Russian and other languages written in the Cyrillic alphabet, Greek, and Hebrew.

Arabic Alphabet

African Fonts

Ethiopic

Used to write Amharic, Bilen, Oromo, Tigré, Tigrinya, and other languages. It evolved from the script for classical Ge'ez, which is now strictly a liturgical language.

Pan-Nigerian

This uses the Latin-Extended ranges supported by Gentium, Charis SIL, Doulos SIL and DejaVu fonts. See PanAfriL10n: Unicode Fonts.

Indic Fonts

There are ten official writing systems in India, including Latin for English. Here are links for the other nine.

Bengali

Supported by Alphabetum, a commercial font which can be licensed from the author.

Devanagari

Gujarati

Gurmukhi

Gurmukhi is the alphabet used to write Punjabi.

Kannada

Malayalam

Oriya

Tamil

Telugu

Northeast Asian

Chinese

The Chinese culture has deep influence in eastern Asian world. Chinese characters are used by various countries, including China, Japan, Korean, Vietnam, etc. The Unicode group unified the characters as CJKV unihan area in the Unicode code map. Though it's not perfect and non-complete, it is currently the best solution for information exchange with Chinese characters.

Because of some historical reasons, two major systems, traditional Chinese and simplified Chinese, are used in the Chinese world. The former one is of the original Chinese characters and the later one is of partly simplified characters to ease the teaching and learning efforts.

Due to the nature of the complicated strokes for most Chinese characters, embedded bitmap fonts are widely used to optimized in low resolution or small sized display. However, with the high resolution of XO panel, stripping off this part may save ~3MB space for each type faces.

The current available free fonts are supporting both character systems. Details see Traditional_Chinese.

  • Arphic PL Font: used to included in major Linux distros.
  • Firefly Sung: Now called "ODO Font", providing both proportional and mono space fonts.
  • CJKUnifonts: derived from the aboves and now included in major Linux distros. A next generation, Unifonts-ng, is under developing to provide ~70 thousand glyphs.
  • Wen-Quan-Yi Zen-hei: wiki based development. Now in beta which provides ~36 thousand glyphs. (~12K merged from Unfont)

Japanese

  • Kochi fonts: used to be included in major Linux distros.
  • Sazanami fonts: replacement for Kochi fonts.

Korean

  • Un series Korean TrueType fonts

Southeast Asian

Burmese (Myanmar)

Khmer (Cambodia, Kampuchea)

Lao

Sinhala (Sri Lanka)

Tagalog (Baybayin)

unicode block U=1700 The Ancient script is discussed(historically) in Philippine school system but seldom used and currently no open source fonts are available in this Unicode block.

Thai

Vietnamese

Central Asian

Tibetan

Supported by Tibetan Machine Uni which is available under the GNU General Public License. The Tibetan script and language is a particulary complex one. This article gives some background and guides you step by step through writing the word drup which is not nearly as simple as it seems.

More resources for the Tibetan script; Getting Started with Unicode Tibetan, Tibetan support in Pango has been available since Dec. 2004. If you use GTK+ 2.0 applications, Tibetan should work with the appropriate fonts. User:Simosx 11:10, 18 June 2006 (EDT)

Mongolian

Mongolian has been written in Cyrillic in Soviet-dominated Outer Mongolia, and in traditional Mongol script in the Chinese province once known as Inner Mongolia. Traditional Mongolian is the last of the modern scripts still remaining to be implemented in rendering engines and browsers.

Liturgical Scripts

In the cultures which use special liturgical scripts, religious instruction is an important part of the child's education. To fully support this, beyond the use of scanned books compressed into DJVU format, the OLPC would need to contain fonts for the appropriate liturgical scripts.

Coptic

The Coptic script is used by Coptic (Egyptian) Christians for religious purposes.

Syriac

The Syriac script is used to write the Aramaic language used in the Syriac Orthodox Christian Church, Chaldean Catholic Church, and the Assyrian Church of the East. Native speakers number between four hundred thousand and two million throughout the world. The members of the above churches can be found predominantly in the Middle East particularly in Iraq, Syria. Jordan, Turkey, and Lebanon while others can be found in the diaspora.

You can find high quality, professionally developed Syriac fonts at the Beth Mardutho: The Syriac Institute and are under the Bigelow & Holmes Inc and URW++ GmbH Luxi font license.

These fonts are called the Meltho OpenType™ Syriac Fonts.

Old Church Slavonic

This script is commonly used in the Russian Orthodox church and related Orthodox churches to write the Old Church Slavonic language. Church services are spoken/sung in this language and many people read the bible in this language. Due to the fact that the Russian language has been heavily influenced by Old Church Slavonic over the centuries, most children are able to learn the language in religious studies classes without language-specific instruction.

Other Writing Systems

Armenian

Georgian

Thaana

Cherokee

Canadian Aboriginal Syllabics

Braille Patterns

International Phonetic Alphabet (IPA)

Scripts in Pilot Countries

The OLPC XO was originally intended to be distributed to about half a dozen countries as part of a Pilot program. In this section we list the generic language/script requirements for this list of countries. See Ethnologue's country lists for details.

Rwanda

  • Latin (English, French, Kinyarwanda)

Argentina

  • Latin (Spanish)

Uruguay

  • Latin (Spanish)

Libya

Brazil

  • Latin (Portuguese)

Nigeria

"Ship.2" (the 2007 Give One, Get One release) added these countries and languages with special font requirements.


General list of Scripts

List of Scripts can be found at unicode website [[1]] most of them are not available in the Projects listed below.

Table of scripts, languages, countries [[2]]

A year ago, that was true. Now, nearly all of the essential scripts (writing systems used for official national languages) are supported with Free fonts, keyboard layouts or IMEs, and rendering. The native Mongolian alphabet is the principal exception. The writing systems listed at the site mentioned above for which we do not have adequate support in Linux are:
  • Batak
  • Buginese
  • Buhid
  • Chakma
  • Cham
  • Cherokee
  • Deseret
  • Shavian
  • Hanunoo
  • Hmong (not in use - Hmong is mostly written with Latin alphabet)
  • Javanese
  • Lepcha
  • Lisu
  • Meetai Mayek
  • Naxi
  • Ranjana
  • Parachalit
  • Samaritan
  • Ol Semet
  • Syloti Nagri
  • Tagbanwa
  • Tifinagh
  • Chu Nom
  • Yi.

Some are entirely obsolete, the entire community of speakers having switched to some other writing system (Chu Nom to Latin, in the case of Vietnamese, and so on). Deseret and Shavian are historical relics that never came into actual use. The rest are for minority languages, where the language communities are relatively small and generally bilingual or trilingual.

I would never argue that we shouldn't support these languages and writing systems. But the situation is nowhere near as bad as suggested. I count 30 supported writing systems, encoded in Unicode, with fonts and keyboards/IMEs. (Latin, Greek, Cyrillic, Hebrew, Arabic, Armenian, Georgian, Ethiopic, Thaana, the nine Indic writing systems, Sinhala, Burmese, Thai, Khmer, Lao, Tibetan, Chinese, Korean, Japanese, Canadian Aboriginal Syllabics, Syriac, Zhuyin)
These cover every official language of every country, except for the use of Mongol script in China, which Soyombo is working on. The list of scripts not fully supported looks nearly as large. I counted 24 above. But only a few of them have significant populations who cannot be reached in other, supported, languages. Most are in Unicode, and have fonts available. Keyboard layouts for most of these languages exist, but have to be put into the xkb format for use with Linux. Some of us are working on that. --Mokurai 22:40, 3 November 2006 (EST)

Font projects

It is not clear yet whether the OLPC will be using fontconfig to manage the fonts. In case it does, then, for Latin/Greek/Cyrillic-based languages there might be a need for a triplet of font faces: sans, serif and monospace. For other scripts, these three faces do not apply, therefore only one font is required.

The current main font used in most Linux distributions (Fedora, Ubuntu, SuSE, Debian, etc) is Bitstream Vera. Bitstream Vera supports Basic Latin/Latin-1 and a small proportion of Latin Extended.

The lack of coverage of Latin Extended, Greek, Cyrillic created several derivative font projects.

One of those derivatives is DejaVu, which at version 2.6 supports Basic Latin/Latin-1/Latin Extended/Cyrillic/Greek/Greek Polytonic and other Unicode ranges. DejaVu also supports Unicode symbols (dingbats (PDF), arrows (PDF), etc) which may make it more appealing to kids as they can easily add them to their documents. also Braille Patterns (U+2800-U+28FF) were added in version 2.18.

DejaVu is also the default font in Ubuntu 6.06 which was released on 1st June 2006. It is one of the first distributions that has good font support by default for Latin, Cyrillic and Greek at the same time.

See PDF samples of the DejaVu fonts.

Yes, OLPC uses fontconfig. In release 8.2.0 the default font in Write is DejaVu Serif, DejaVu LGC Sans and DejaVu LGC Sans Mono are also available.

Open fonts catalogs

To find more quality free/libre/open smart fonts with wide Unicode coverage see Fonts under the Open Font License and Unicode Font Guide For Free/Libre Open Source Operating Systems.

Debian Linux fonts

The following Free non-Latin TrueType/Opentype font packages are included in Debian Linux Testing as of November 2006. There are many other kinds of fonts available with Linux, including bitmap console font packages, bitmap X font packages (xfonts-*), PostScript/GhostScript fonts, TeX fonts, and others.

Package Description Fonts
ttf-alee free Hangul truetype fonts made by A Lee. Bandal, Bangwool, Guseul, Eunjin, and EunjinNakseo
ttf-arabeyes Arabeyes GPL TrueType Arabic fonts 39 fonts
ttf-Arhangai Sans Serif font that supports the Mongolian Cyrillic alphabet Arhangai
ttf-arphic-bkai00mp Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL KaitiM Big5
ttf-arphic-bsmi00lp Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL Mingti2L Big5
ttf-arphic-gbsn00lp Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL SungtiL GB
ttf-arphic-gkai00mp Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL KaitiM GB
ttf-arphic-ukai Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL ZenKai Uni
ttf-arphic-uming Arphic Technology Chinese TrueType font, "Arphic Public License". AR PL ShanHeiSun Uni
ttf-baekmuk Korean fonts Batang, Dotum, Gulim, Hline
ttf-bengali-fonts GPL Bengali fonts 7 fonts
ttf-bitstream-vera Western European languages (ISO-8859-1, ISO-8859-15) and Turkish (ISO-8859-9) Vera, Vera Sans, Vera Mono
ttf-bgp-georgian-fonts Georgian fonts provided by BPG-InfoTech Chveulebrivi, Courier, Elite, Glaho, Rioni, Unicode
ttf-dejavu Vera font family extended to fully cover Latin Ext-A, Latin Ext-B, Cyrillic and Greek ranges and also parts of Arabic, Hebrew and some other ranges. Mono, Sans, Serif
ttf-devanagari-fonts TrueType and OpenType fonts under GPL for Hindi, Marathi, Nepali, and Sanskrit Gargi, Chandas, Kalimati, Lohit, Samanata
ttf-dzongkha Fonts for language of Bhutan Dzongkha, Jomolhari
ttf-farsiweb Unicode Persian fonts Titr, Nazli, Nazli Bold, and Homa
ttf-freefont Unicode fonts, covering Latin extensions, Greek, Cyrillic, Hebrew, Arabic, IPA, Thaana, Devanagari, Bengali, Gurmukhi, Tamil, Telugu, Malayalam, Sinhala, Thai, Georgian, Ethiopic, Kana FreeMono, FreeSans, FreeSerif
ttf-gentium Extended Latin, IPA, Ancient and Modern Greek, Cyrillic Gentium
ttf-gujarati-fonts TrueType and OpenType fonts released under the GNU General Public License for the Gujarati Language Rekha, Aakar, Lohit-Gu, Padmaa
ttf-indic-fonts A package that depends on all the Indic font packages. Provides an easy way to install them all at once.
ttf-isabella based on the calligraphic hand used in the Isabella Breviary, made around 1497, in Holland, for Isabella of Castille, the first queen of united Spain. It covers all European languages written in the Latin script (with the exception of Sami) and covers all ISO-8859 with the exception of the non-Latin character sets. Isabella
ttf-Junicode TrueType Unicode font targetted at medievalists, but including the full range of characters for languages written in the Latin script, International Phonetic Alphabet, Uralic Phonetic Alphabet and Runic one font per Unicode range covered
ttf-kacst TrueType Arabic fonts released by the King Abdulaziz City for Science and Technology (KACST) Art, Book, Decorative, Digital, Farsi, One, OneFixed, Poster, Qurn, Title, TitleL (outline)
ttf-kannada-fonts TrueType and OpenType fonts released under the GNU General Public License for the Kannada Language Kedage, Malige
ttf-khmeros Free fonts for the Khmer language, used in Cambodia, developed by the Khmer Software Iniative, part of the Open Forum of Cambodia. KhmerOS, System, FreeHand, FastHand, Muol, Metal Chieng
ttf-kochi-gothic Japanese gothic TrueType font Kochi Gothic
ttf-kochi-mincho Japanese Mincho TrueType font Kochi Mincho
ttf-lao TrueType font for Lao language Phetsarath_OT
ttf-malayalam a set of TrueType and OpenType fonts released under the GNU General Public License for the Malayalam Language. Racotf04, Malayalam
ttf-mikachan handwritten Japanese truetype font Mikachan, Mikachan Proportional, Mikachan Proportional Bold, Mikachan Proportional Small
ttf-mph-2b-damase SuperUnicode font, including ranges in Plane 1 and ranges added in Unicode (4.1). Some of these ranges include Tifinagh, Kharosthi, hPhags-pa, Old Persian Cuneiform, Limbu etc. MPH 2B Damase
ttf-nafees free OpenType Urdu fonts from the Center for Research in Urdu Language Processing (CRULP, http://www.crulp.org/) at National University of Computer and Emerging Sciences NafeesWeb.ttf
ttf-opensymbol TrueType font, containing symbols (like fonts as Wingdings(tm)), bullets (needed for bullets in OpenOffice.org) and non-latin characters. OpenSymbol
ttf-oriya-fonts TrueType and OpenType fonts released under the GNU General Public License for the Oriya Language Utkal
ttf-paktype OpenType Urdu fonts, designed and developed by the PakType volunteers. Naqsh, Tehreer
ttf-punjabi-fonts TrueType and OpenType fonts released under the GNU General Public License for the Punjabi Language Saab, Lohit-PA
ttf-sazanami-gothic Japanese free Gothic TrueType font, generated from Wadalab font kit Sazanami Gothic
ttf-sazanami-mincho Japanese free Mincho TrueType font Sazanami Mincho
ttf-sil-abyssinica smart Unicode font for the Ethiopic script, including all languages of Ethiopia Abyssinica SIL
ttf-sil-charis smart Unicode font family for Roman or Cyrillic-based writing systems, with near-complete coverage of all the characters defined in Unicode 4.0 for Latin and Cyrillic, plus linguistics symbols Charis SIL
ttf-sil-doulos smart Unicode font family for Roman or Cyrillic-based writing systems, with near-complete coverage of all the characters defined in Unicode 4.0 for Latin and Cyrillic, plus linguistics symbols Doulos SIL
ttf-summersby partial Unicode support

including most West European and Cyrillic languages

Summersby
ttf-tamil-fonts OpenType fonts released under the GNU General Public License for the Tamil Language. Kadampari, Kalyani, Maduram, Comic, Paranar, Times
ttf-telugu-fonts OpenType fonts released under the GNU General Public License for the Telugu Language Pothana2000, Vemana
ttf-thai-tlwg free-licensed TrueType fonts, enhanced by developers from Thai Linux Working Group. Garuda, Norasi, Loma, Tlwg Mono, Tlwg Typewriter, Purisa
ttf-thryomanes Unicode font covering Latin, Greek, Cyrillic and IPA Thryomanes
ttf-tmuni font for Tibetan, Dzongkha and Ladakhi (OpenType Unicode) Tibetan Machine Uni
ttf-unfonts Un series Korean TrueType fonts Batang, Bom, Dotum, Graphic, Gungseo, Novel, Sora, Pen, Heulim, Pilgi, Shinmun, Taza, Yetgeul
ttf-uralic Uralic fonts containing additional letters used in most Uralic languages using the Cyrillic writing system - Khanty (all dialects), Komi, Mansi (without marking long vowels), Mari, Nenets, Selkup and Udmurt. The fonts also support Altai, Chukchi, Even, Evenki, Koryak and Nanai. Bookman, Chancery, Gothic, Mono, Palladio, Roman, Sans, Sans Condensed, Schoolbook
ttf-vlgothic beautiful Japanese free Gothic TrueType font based on ttf-sazanami-gothic and mplus font developed by Project Vine VL-Gothic-Regular

Other

Available free and open-source fonts (feel free to expand)
sans serif monospaced
N/A N/A
Table's Notes:
  • L: Covers Latin-based scripts (Basic Latin, Latin-1, Latin Extended)
  • l: Covers Latin-based scripts (Basic Latin, Latin-1)
  • G: Covers Greek (modern, ancient)
  • g: Covers Greek (modern)
  • C: Covers Cyrillic, full table
  • c: Covers Cyrillic, basic support
  • lgc is adequate for more uses such as Spanish, Portuguese, Greek and Russian.


Assuming that fontconfig will be used, there is a need of a triplet (sans, serif, monospace).

  • Feel free to populate the table above.
  • Any hints on CJK or complex scripts?

FAQ

Q. The main Latin font does not currently support Thai. What can we do?

A. fontconfig supports font preference lists, that is, you can have several different fonts that when combined, can cover as much as possible from the Unicode character space.

For example, if Garuda (Thai font) is suitable for Thai text only, you set first preference to DejaVu and second preference to Garuda. Non-Thai text will be with DejaVu and Thai text with Garuda. If you prefer Garuda for Basic Latin/Thai and no other fonts available, simply put Garuda in the preference list. If you want Garuda for Basic Latin/Thai and any other characters from DejaVu, set first preference to Garuda and second preference to DejaVu.

[Keyboard_Layout_Thai.png] expand