From Fedora Project Wiki

< L10N‎ | Tasks

(→‎Font status matrix: freetype bug#)
(→‎Font status matrix: Liberation 1.04 ships)
Line 74: Line 74:
|-
|-
! [[#Liberation | Liberation]]
! [[#Liberation | Liberation]]
| TTF || y || y || y || '''''s''''' || '''''s''''' || y || y || y || y || y || '''n''' || liberation-fonts || Ș and Ț OK since 1.04 (rawhide)
| TTF || y || y || y || y || y || y || y || y || y || y || '''n''' || liberation-fonts || Ș, Ț OK since 1.04 (F9 updates)
|-
|-
! [[#Linux Libertine | Linux Libertine]]
! [[#Linux Libertine | Linux Libertine]]

Revision as of 10:57, 27 July 2008

A page of the Fonts Special Interest Group

Note.png
Background information
See the Wikipedia page on the Romanian alphabet.
Idea.png
Tip of the page
A very useful program is fontmatrix. Detailed font info and one click font installs. Yum it!

Issues (and suggested fixes)

Type-1 fonts need an additional mapping from U+021A/B to U+162/3

Most PS1 fonts (not OpenType) that ship with Fedora lack the Unicode U+21A/B (t with comma below) which is the proper code point for Romanian t with comma below. Thankfully, Adobe once decided that t with cedilla is not used in any language so the proper glyphs are usually present at U+162/3, which used to be the unified code point for t cedilla and t comma below before Unicode 3.0. Microsoft's Uniscribe renderer automatically handles this issue by remapping U+21A/B to U+162/3 when the former glyphs are missing. Unfortunately, Pango/fonconfig doesn't do this, so most new Romanian documents can only be displayed with a very narrow font selection.

Proposed solution: adopt Uniscribe solution; editing the PS1 fonts is pointless and would violate the license for the commercial ones. With an external mapping all PS1 fonts would instantly become usable.

Liberation 1.0 fonts lack "s & t with comma" completely

The glyph was added in version 1.04 of the fonts, but these are not yet packaged. A beta version (1.04 beta 2) is available on rawhide.

Missing OpenType localized forms GSUB/latn/ROM/{locl,ccmp}

The Adobe/Linotype/Vista industry standard seems to that activating ROM/locl should map "s with cedilla" to "s with comma". Since in Adobe (Pro) OT fonts U+162/3 is by default mapped to "t with comma", activating this optional mapping for s renders old, pre-Unicode 3.0 Romanian texts with comma below both s and t. Thankfully Pango already handles this!

The OT SIL fonts take a slightly different approach, but work with Pango nonetheless. First, they have proper cedilla variants for both s and t. Second, they don't have a ROM/locl feature, but a ROM/ccmp feature which remaps both cedilla variants to comma-below counterparts. I'm not sure this approach is entirely correct because the OpenType spec on ccmp says that ccmp should not be language sensitive. YMMV, I'm no expert on this.

So, what's the trouble?

  • Practically no free fonts have a ROM/locl feature, while most newer commercical fonts do. This should be a two line fix in fontforge. Those form SIL use the ROM/ccmp mechanism that fortunately works.
  • Pango does not allow an application to set the OT features language independently from UI language; not for Romanian anyway. Currently, the only way to run, say, gedit with ROM/locl enabled but the default English UI is: LANG=ro_RO.UTF-8 LC_MESSAGES=C gedit. See Pango bug #442786.

OpenOffice.org doesn't use locl for Romanian

OpenOffice.org doesn't use Pango but it's own ICU renderer. It looks like a CTL (Complex Text Layout) module has to be written in order to enable use of OpenType font features for a specific script. It's not clear if the CTL can be per language, but a Latin CTL could detect Romanian.

Also, OpenOffice.org doesn't make good use of the URW Type-1 fonts. Screenshot.

Console Fonts

The default Linux console fonts also lack the U+219-B range, but few care about the console fonts these days...

Font status matrix

For the sake of keeping the table compact, the table entries are abbreviated: y=yes, n=no, s=soon, a=approximating glyph (see the discussion above for the Adobe standard). You can click on the font name to be taken further down the page for details (if available). Fonts not listed here have very poor support, i.e. most glyphs are missing and usually they do not target Latin scripts. If you think a font should be listed please let me know.

Support for Romanian in Fedora fonts
Font name type ă î â ș ț ş ţ „” «» locl Package Notes
DejaVu TTF y y y y y y y y y y n dejavu-fonts locl bug #455981
Liberation TTF y y y y y y y y y y n liberation-fonts Ș, Ț OK since 1.04 (F9 updates)
Linux Libertine TTF y y y y y y y y y y n linux-libertine-fonts Small caps Ș and Ț fixed in 3.0
Charis SIL TTF y y y y y y y y y y y charis-fonts Uses ccmp for locl
Doulos SIL TTF y y y y y y y y y y y doulos-fonts Uses ccmp for locl
Gentium SIL TTF y y y y y y y y y y n gentium-fonts -
STIX TTF y y y n n y y y y y n stix-fonts -
MathML TTF n n n n n n n n n n n mathml-fonts -
URW PostScript™ PS1 y y y y n y a y y y - urw-fonts freetype bug #23940
Terminus RAS y y y y y y y y y y - terminus-font-* For console and X11
X.Org raster RAS y y y y y y y y y y - xorg-x11-fonts-* Except Charter and Courier 10

Key for font type:

  • TTF = old TrueType or TrueType flavored OpenType [which is backwards compabile with TrueType] in a .ttf or .ttc file (.ttc is a collection of more than one font, e.g. Cambria and Cambria Math in Vista)
  • CFF = CFF (Postscript Type 2) in OpenType .otf file
  • PS1 = Postscript Type 1 in .afm/.pfb file pairs.
  • RAS = Some raster format, e.g. PCF.

Font status details:

Liberation

On Fedora 9 use yum --enablerepo=rawhide update liberation-fonts to install version 1.04 beta 2. Or use fontmatrix to install the 1.04 release. Older version lacked both comma-below code points, and followed the Adobe convention having a t with comma at U+162-3.

Linux Libertine

  • The (higher quality) CFF version of the fonts are not packaged. Bug #455995.
  • Small caps versions are missing for S and T with comma below. Bug #2022566. Fixed upstream in version 3.0.
  • Feature request #2022572 for locl. A patch is available on that page. A patched version of the CFF regular font is here.

X.Org raster fonts

The raster fonts that support iso10646 (Unicode) encoding are all OK for Romanian, except Bitstream Charter and Bitstream Courier 10 Pitch, which lack all accented glyps for Romanian. The matching Type-1 fonts form X.Org, Bitstream Charter and Courier 10 are broken in the same way. Here is the complete list of usable fonts for Romanian:

  • clean
  • clearlyu
  • courier (not 10 pitch!)
  • fixed
  • helvetica
  • lucida
  • lucidabright
  • lucidatypewriter
  • new century scoolbook
  • times
  • utopia

MathML

These are conversions of Computer Modern fonts (from TeX in OT-1 encoding) poorly pretending to have a Unicode TTF map. Hopefully they'll get replaced by the Unicode CM font effort.


Idea.png
Fonts in Fedora
The Fonts SIG takes loving care of Fedora fonts. Please join this special interest group if you are interested in creating, improving, packaging, or just suggesting a font. Any help will be appreciated.