On Mon, Feb 23, 2009 at 01:28:23PM +0100, Hans Hagen wrote: > Thomas A. Schmitz wrote: >> >> On Feb 23, 2009, at 1:09 PM, Khaled Hosny wrote: >> >>> For scaling, we can specify a size, some thing like: >>> >>> \setupbodyfont[arabic=foo,20pt,latin=bar,18pt] >>> >>> or so. >> >> I don't know Arabic, but I've done similar things for Greek, and that >> is not a good interface. You want a scaling factor, so users won't have >> to worry about scaling in footnotes, titles, etc., an absolute size is >> not a viable alternative. > > indeed. > > btw, i have no problem with a bunch of predefined combinations (using > the fallbacks mechanism) so that users can quickly initialize a typeface > > \usetypescript[fancyarabicwithgreekandtraditionallatin] > \setupbodyfont[fancyarabicwithgreekandtraditionallatin,13pt] > > or so, collected in some type-* file, but that's as far as we can go; we > need to guard at least some minimal quality > > a quick start but with bad output is not the way to go I was about to forget why I didn't like font fallbacks in the first place, the current font fallback mechanism assigns fonts per Unicode characters, this is fine until we come to common characters like numbers or brackets: you can only assign it to one font, which isn't usually desirable. Think of this sentence: عربي 1234 عربي (English 1234 English (English) English) عربي. Here, the outer most parentheses and first numbers should use the same font of the Arabic text, while the inner ones should use the font of the English text, font fallback can't do this. Instead we need to segment the text per script and apply fonts on whole segments, the Unicode Script Property annex describes a way to handle this, see http://www.unicode.org/reports/tr24/#Script_Names_in_Rendering. Regards, Khaled -- Khaled Hosny Arabic localiser and member of Arabeyes.org team Free font developer