I think I've found the problem, here is the patch of w32fns.c (against
revision 1.256). I don't know the detail, but this patch works.
--------------------------------------8<--------------------------------------
--- w32fns.c 2005-08-08 09:45:47.000000000 +0800
+++ w32fns-fix.c 2005-09-06 15:32:01.275812264 +0800
@@ -4545,7 +4545,7 @@
/* Fill out details in lf according to the font that was
actually loaded. */
lf.lfHeight = font->tm.tmInternalLeading - font->tm.tmHeight;
- lf.lfWidth = font->tm.tmMaxCharWidth;
+ lf.lfWidth = font->tm.tmAveCharWidth;
lf.lfWeight = font->tm.tmWeight;
lf.lfItalic = font->tm.tmItalic;
lf.lfCharSet = font->tm.tmCharSet;
--------------------------------------8<--------------------------------------