https://bugzilla.novell.com/show_bug.cgi?id=246573 ------- Comment #43 from mfabian@novell.com 2007-02-22 10:05 MST ------- I made a small test program to check what happens in is_double_width_font_xft(). (I'll attach that in the next comment). I found that the results depend on the hinting settings. I played with the following settings in ~/.fonts.conf: <match target="font" > <edit mode="assign" name="embeddedbitmap" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="hinting" > <bool>true</bool> </edit> </match> <match target="font" > <edit mode="assign" name="autohint" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="hintstyle" > <const>hintfull</const> </edit> </match> </match> I did set embeddedbitmap=false to reduce the confusion a bit and kept hintstyle=hintfull and hinting=true always. Then I played with the autohint setting. Some results: ---------------------------------------------------------------------- Font "Sazanami Gothic", autohint=false: mfabian@magellan:~/c$ ./bug-246573-test "sazanami gothic-12" complete name=Sazanami Gothic-12:familylang=ar:style=Regular:stylelang=ar:slant=0:weight=100:width=100:pixelsize=16.3419:foundry=unknown:antialias=True:hintstyle=3:hinting=True:verticallayout=False:autohint=False:globaladvance=True:index=0:outline=True:scalable=True:dpi=98.0515:rgba=1:scale=1:minspace=False:fontversion=65536:capability=otlayout:kana:fontformat=TrueType:embolden=False:embeddedbitmap=False:decorative=False c1=1 width=6 height=13 x=0 y=12 xOff=8 yOff=0 c2=W width=11 height=13 x=1 y=12 xOff=8 yOff=0 hwstr=1234567890 width=81 height=13 x=0 y=12 xOff=80 yOff=0 fwstr=一二三四五六七八九零 width=155 height=16 x=0 y=14 xOff=160 yOff=0 is_double_width_font_xft returns 1 mfabian@magellan:~/c$ Font "Sazanami Gothic", autohint=true: mfabian@magellan:~/c$ ./bug-246573-test "sazanami gothic-12" complete name=Sazanami Gothic-12:familylang=ar:style=Regular:stylelang=ar:slant=0:weight=100:width=100:pixelsize=16.3419:foundry=unknown:antialias=True:hintstyle=3:hinting=True:verticallayout=False:autohint=True:globaladvance=True:index=0:outline=True:scalable=True:dpi=98.0515:rgba=1:scale=1:minspace=False:fontversion=65536:capability=otlayout:kana:fontformat=TrueType:embolden=False:embeddedbitmap=False:decorative=False c1=1 width=6 height=12 x=-1 y=12 xOff=9 yOff=0 c2=W width=10 height=11 x=1 y=11 xOff=8 yOff=0 hwstr=1234567890 width=85 height=12 x=-1 y=12 xOff=85 yOff=0 fwstr=一二三四五六七八九零 width=155 height=16 x=0 y=14 xOff=160 yOff=0 is_double_width_font_xft returns 0 mfabian@magellan:~/c$ ---------------------------------------------------------------------- Font "MS Gothic": autohint=false: mfabian@magellan:~/c$ ./bug-246573-test "ms gothic-18" complete name=MS Gothic-18:familylang=en:style=Regular:stylelang=en:slant=0:weight=80:width=100:pixelsize=24.5129:spacing=0:foundry=ricoh:antialias=True:hintstyle=3:hinting=True:verticallayout=False:autohint=False:globaladvance=False:index=0:outline=True:scalable=True:dpi=98.0515:rgba=1:scale=1:minspace=False:fontversion=196608:capability=otlayout:kana otlayout:latn:fontformat=TrueType:embolden=False:embeddedbitmap=False:decorative=False c1=1 width=8 height=20 x=-1 y=20 xOff=13 yOff=0 c2=W width=15 height=20 x=1 y=20 xOff=13 yOff=0 hwstr=1234567890 width=129 height=20 x=-1 y=20 xOff=130 yOff=0 fwstr=一二三四五六七八九零 width=248 height=22 x=0 y=20 xOff=250 yOff=0 is_double_width_font_xft returns 0 mfabian@magellan:~/c$ Font "MS Gothic": autohint=true: mfabian@magellan:~/c$ ./bug-246573-test "ms gothic-18" complete name=MS Gothic-18:familylang=en:style=Regular:stylelang=en:slant=0:weight=80:width=100:pixelsize=24.5129:spacing=0:foundry=ricoh:antialias=True:hintstyle=3:hinting=True:verticallayout=False:autohint=True:globaladvance=False:index=0:outline=True:scalable=True:dpi=98.0515:rgba=1:scale=1:minspace=False:fontversion=196608:capability=otlayout:kana otlayout:latn:fontformat=TrueType:embolden=False:embeddedbitmap=False:decorative=False c1=1 width=7 height=18 x=-1 y=18 xOff=12 yOff=0 c2=W width=14 height=18 x=1 y=18 xOff=12 yOff=0 hwstr=1234567890 width=119 height=18 x=-1 y=18 xOff=120 yOff=0 fwstr=一二三四五六七八九零 width=245 height=22 x=-1 y=20 xOff=248 yOff=0 is_double_width_font_xft returns 0 mfabian@magellan:~/c$ ---------------------------------------------------------------------- I.e. the widths found in "xOff" may depend on whether the autohinter is used or not. That makes the test return ((2 * gi1.xOff == gi2.xOff) || (gi1.xOff == gi2.xOff)) at the end of is_double_width_font_xft() quite unreliable. As the example with "MS Gothic" shows, it may not work at all no matter whether the autohinter is used or not. It's a bit weird that the autohinter changes the lengths of strings so much. Should the autohinter be allowed to do that? (By the way, that also causes a lot of problems in OpenOffice and it is the reason why OpenOffice currently forces hinting to be off no matter what is in ~/.fonts.conf. The OpenOffice people say that they they get completely different line lengths depending on the hinting settings, therefore they switch hinting off. Of course this annoys some users who don't like the fontrendering results without hinting. But no better solution is known currently). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.