[Bug 10660] New versions of Fontforge generate marlett. ttf with incorrect available character sets field
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Feb 11 20:59:50 CST 2008
http://bugs.winehq.org/show_bug.cgi?id=10660
--- Comment #32 from Dmitry Timoshkov <dmitry at codeweavers.com> 2008-02-11 20:59:49 ---
(In reply to comment #30)
> If the latin1 bit is not set on a normal font then windows won't use it for
> anything useful.
This is not true. There are other useful unicode ranges in the fonts
besides Latin1.
> So FontForge pretty much always sets this bit when outputting
> normal fonts. When outputting symbol fonts it does not set this bit as it isn't
> applicable.
What if the font developer creates a font with several unicode ranges,
including symbol?
> The root of the problem, as I keep saying (five times? six?), is that fontforge
> no longer generates a 3,0 cmap entry for marlett.sfd (unless you specifically
> request a symbol encoding). This has a number of implications, including the
> way the OS/2 code pages are defaulted.
Font character mappings and unicode ranges are different things, not related
to each other. It's perfectly legal to have a unicode character map, and
simultaneously have a symbol unicode range in the font.
> If you don't want fontforge to default the setting of the code pages/unicode
> ranges then you can set them explicitly in Element->Font Info->OS/2->Charsets.
As Ove mentioned, that doesn't work for some reason.
> No this doesn't count as a fontforge bug. If you believe you have a fontforge
> bug please report them on the fontforge mailing list. The wine bug-tracker is
> not an appropriate place.
This bug a special. I has been closed as invalid, but reopened later to better
understand the problem.
> >That still doesn't answer the question why fontforge now sets Latin1 *and*
> >Symbol bits in the ulCodePageRange1 fileld in the OS2 TrueType header, while
> >previously it only set the Symbol one.
> When I use fontforge to generate a truetype font with a symbol encoding it does
> *NOT* set the latin1 bit.
> Open("marlett.sfd")
> Generate("marlett.sym.ttf")
My impression is that the font is being created based on the information in
the font file. If there is a need in a hack to specify font encoding using
file extension (what if a developer needs several of them in the single font?)
then this looks like a limitation of the file format, and should be considered
to be fixed.
Again I'd like to point out that .ttf -> .sfd -> .ttf path leads to creation
of a not compatible font to an original one, regardless which unicode ranges
the font contains.
> >Also, there is a thing called backwards compatibility. A behaviour of
> >fontforge that was valid for years now suddenly called broken, making
> >previously valid .sfd files useless.
> As I pointed out in my previous post marlett is not a valid sfd file. It claims
> an encoding (adobe symbol) which it does not have.
> There seems to be an assumption that FontForge's symbol encoding (which is
> Adobe's) means the same as the symbol cmap type. That is not the case.
> The behavior you are depending on was never documented.
> Now can we please leave this topic?
> The old behavior was wrong. Marlett.sfd is mildly wrong. You have a fix which
> works.
I'm sorry, but I don't think that a hack with a file extension qualifies as
a fix. I'd prefer to have a real solution which doesn't prevent adding other
unicode ranges to marlett in future.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list