Now, I think I know where the source of the problem lies; it is in the Dekel's patch(summitted on March, 6th) against "qfont_loader.C" in lyx-1.3.1.
I could confirm this by replacing qfont_loader.C in lyx-1.3.1 by qfont_loader.C of lyx-1.3.0 and finding the resulting lyx-1.3.1 works fine!
(I was wrong to say that lyx-1.3.1 was O.K. It is lyx-1.3.0 that correctly displays the greek letters.)
Hi,
Your CJK patches 1.3.0 , Now Fixed for 1.3.3 by Mr. Kato.(for Mac-OS X with X11 LyX. Univ Hokkaido) It is based your 1.3.0 CJK patch.
http://hosho.ees.hokudai.ac.jp/~kato/unix/lyx.html
It is written Japanese , if you want his patches(It's include Ja TeX Class and teTeX ja fixed patches), I send you. The Problem , greek letters , in qfont_loader.C and Xft font checks fixed.
But for Linux , you need to fix qfont_loader.C .(This is my case , did not trace the true cause. But LyX 1.3.3 Qt run so well now.)
pair<QFont, bool> const getSymbolFont(string const & family) { lyxerr[Debug::FONT] << "Looking for font family " << family << " ... "; string upper = family; upper[0] = toupper(family[0]);
QFont font; font.setFamily(toqstr(family)); #ifndef I18N if (isChosenFont(font, family)) { lyxerr[Debug::FONT] << "normal!" << endl; return make_pair<QFont, bool>(font, true); }
font.setFamily(toqstr(upper));
if (isChosenFont(font, upper)) { lyxerr[Debug::FONT] << "upper!" << endl; return make_pair<QFont, bool>(font, true); } #else if (!isChosenFont(font, family)) { lyxerr[Debug::FONT] << "normal!" << endl; return make_pair<QFont, bool>(font, true); }
font.setFamily(toqstr(upper));
if (!isChosenFont(font, upper)) { lyxerr[Debug::FONT] << "upper!" << endl; return make_pair<QFont, bool>(font, true); } #endif #ifndef I18N // A simple setFamily() fails on Qt 2
font.setRawName(toqstr(getRawName(family)));
if (isChosenFont(font, family)) { lyxerr[Debug::FONT] << "raw version!" << endl; return make_pair<QFont, bool>(font, true); }
lyxerr[Debug::FONT] << " FAILED :-(" << endl; return make_pair<QFont, bool>(font, false); #endif }
The "isChosenFont(font, family)" function is return wrong value , cause I18N Qt (See Qt Manual "Internationalization with Qt") , If non Latin locales need change that Xft is related, for exsample ,
qfont_loader.C bool isChosenFont(QFont & font, string const & family) --- #ifndef I18N // Qt 3.2 beta1 returns "xft" for all xft fonts if (font.rawName() == "xft") { #else // Qt working in locale like ja_JP and ru_RU fails to return // appropliate font raw names?? So, it is needed to use this. #endif ---
East Asia Locales (ja_JP , ko , cn) needs Qt Libs any font and IM Patches. (Cause many user use commercial Input Methods. So it different from original Qt I18N Codes , when you use xft and TeX fonts.
These patches are in an emergency. Of course you can use Math Panel and Inline a numerical formula. This poroblem will be solved by many excellent hackkers. ( I am not excellent and my specialty is law and management.)
My Env Kernel 2.6.0 GCC 3.2.1 GLIC 2.3.2 XFree 4.3.0-45 qt3-3.2.3
Regards,
PS: If you want CJK Fixed I18N Qt3 ,please visit ftp://ftp.turbolinux.co.jp/pub/TurboLinux/stable/untested/Desktop/10/SRPMS -- mail-to:Atsushi Shimmra <[EMAIL PROTECTED]> Atsushi Shimmra