Enrico Forestieri wrote:

> I think I discovered why the math symbols \Omega, \otimes, \nleqslant,
> and \rightleftharpoons are currently not displayed (bug 3181).
> From the lib/symbols file, it turns out that the codepoint of all
> of them is 173=0x00ad, and, according to the following code
> 
>         // hide soft-hyphens by default
>         if (uc[i].unicode() == 0x00ad || qIsControlChar(uc[i].unicode()))
>             glyphs[pos].attributes.dontPrint = true;
> 
> in the Qt4 qscriptengine.cpp source file, they are hidden by default.

Good detective work! Unfortunately the problem is exactly what I suspected:
qt4 tries to be clever and fails. Did I say already that I hate how qt
handles fonts? AFAIK it is not even possible to reliably get the
information which font is really used.

> I don't see an easy solution to this problem, other than changing their
> codepoint both in the lib/symbols file and the font files (fontforge can
> do this).

The best solution would be find a way to address a font directly without
making qt think that the printed character is a unicode character. If that
is not possible somebody who has a qt tracker accout should file a bug
against qt, and we should create a new font with these glyphs that is used
instead of the original ones.
We shoult not change the positions of the glyphs in the ttf fonts and the
symbols file, the ttf fonts should remain drop-in replacements for the .pfb
versions.


Georg

Reply via email to