Re: Rendering Unicode diacritics



Hi Benny,

Thanks for responding to my post. You are right about consulting the
source, of course, but I have so little experience with the Tk source
code that I didn't even know where to begin looking, and so little
experience with font rendering that I didn't really know I was looking
for. I guess I will now start by looking at calls to TextOut. Thanks
for that helpful info. If there is such a thing as a road map for the
Tk source code (and especially font rendering), I would love to know
about it.

I can see why you conclude that I need a better font rather than a
better rendering system; if that's the case, I have no idea which font
would do the job. None of the fonts installed on my computer,
including Arial, Times New Roman, and Lucida Sans Unicode (all OpenType
fonts from Microsoft) seem capable of properly rendering combining
diacritics by themselves, at least in Tk.

It's my understanding that in order to render combining diacritics
correctly, you need some kind of "smart font" technology. Apparently,
the most common smart font technology for Windows is the combination of
OpenType fonts with Uniscribe.

I'm not sure how (or whether) Uniscribe fits into the Tk picture on
Windows. If it is a part of Tk's unicode rendering process, then it's
possible that upgrading my Uniscribe DLL would solve the problem.
(Apparently, versions of Uniscribe prior to MS Word 2003 didn't treat
the Latin alphabet as a complex script.) However, this is not a good
solution to the problem in general, because, at the moment, updating
Uniscribe involves either buying Word 2003 or joining the VOLT user
community. It would be ridiculous to ask my potential end users to do
either of these things.

I understand that it's possible to implement application-specific
alternatives to Uniscribe (i.e. use OpenType fonts with a different
OpenType-aware smart renderer); apparently Adobe has done just that. I
personally wouldn't know how to do that, but if somebody else does, and
can point me in that direction, I'll look into it.

You asked what it would accomplish to write a module for Tk that uses
Graphite. For my needs, I see it as a better alternative to Uniscribe
for the following reasons:

1. I can distribute Graphite as part of a program; I can't distribute
Uniscribe, and I can't count on any given version being already
installed on end-users' computers.
2. Graphite's language-specific behavior is extensible. Uniscribe's
isn't, and because development at Microsoft is primarily motivated by
potential for profit, chances are good they will never build in
satisfactory support for many of the languages that linguists like
myself would like to work with.
3. Because the impetus behind Graphite comes in large part from the
field of linguistics, there are a number of Graphite-centered solutions
to various linguistic problems (for example, more than one nice
implementation of the International Phonetic Alphabet). This is an
added bonus for those of us who work in linguistics.

Chances are good Graphite support would meet other people's needs as
well. Among other things, Graphite is capable of handling
bidirectional text, something Tk can't currently do.

You mentioned development contracts. It has occurred to me that,
theoretically, someone could be hired to do this sort of work, but as a
poor graduate student who can barely feed and clothe his family, (and
who's writing free and open source software for linguists and Alaska
Natives, two badly underfunded populations) I won't be the one doing
the hiring :) It may be possible to write a grant that would fund this
sort of work; if anyone has suggestions along those lines, please speak
up. Otherwise, I may be pursuing the pokey road of learning enough
about Tk internals and Graphite to try to solve this problem myself.

You also mentioned that there is some "missing Unicode stuff." Can you
elaborate on what's missing?

Sorry for the long post. Thanks to everyone for any feedback you might
have on these issues.

Aric

.



Relevant Pages

  • Re: Rendering Unicode diacritics
    ... The actual rendering is done in unix/tkUnixFont.c, unix/tkUnixRFont.c, ... > Microsoft) seem capable of properly rendering combining diacritics ... font vendors about it. ... > combination of OpenType fonts with Uniscribe. ...
    (comp.lang.tcl)
  • Re: a2ps -> gv font (deeper problem!)
    ... > ghostview honoring/mistaking the font size when rendering. ... > debian box and view it there I get the problem with the ... GPL Ghostscript 8.01 ...
    (Debian-User)
  • Thunderbird fixed font issue with latest fontconfig for dapper update
    ... Since last update of fontconfig for Dapper, I encounter monospace font ... size and rendering issues I failed solve with Thunderbird. ... In thunderbird I read the message in fiwed width font. ...
    (Ubuntu)
  • Re: a2ps -> gv font (deeper problem!)
    ... ghostview honoring/mistaking the font size when rendering. ... debian box and view it there I get the problem with the ... GNU Ghostscript 7.07 ...
    (Debian-User)
  • Re: Harry Potters English
    ... The Doulos SIL font, the second choice of font according to the web page's stylesheet, combines them properly if it is rendered using Graphite rather than Uniscribe. ... I don't know whether the font holds the requisite information for Uniscribe to display the combination properly. ... The source of information, Peter Constable, moved from SIL (developers of Graphite) to Microsoft some time ago. ...
    (sci.lang)