bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19993: 25.0.50; Unicode fonts defective on Windows


From: Eli Zaretskii
Subject: bug#19993: 25.0.50; Unicode fonts defective on Windows
Date: Sat, 07 Mar 2015 10:14:16 +0200

> Date: Fri, 6 Mar 2015 14:08:01 -0800
> From: Ilya Zakharevich <ilya@math.berkeley.edu>
> Cc: 19993@debbugs.gnu.org
> 
> > Emacs on Windows needs a font to support the entire range of a script,
> > or else it won't use the font.  It finds out which scripts are
> > supported by a font by looking at the fsUsb member of the
> > FONTSIGNATURE structure for each font.  See font_supported_scripts,
> > and also font_matches_spec which uses it, for the details.  So maybe
> > the fonts you have don't announce in their signature that they support
> > these Unicode ranges.  E.g., U+1D49C is in "Mathematical ALphanumeric
> > Symbols", whose subrange bit is 89 -- does Symbola set this bit in its
> > font signature?
> 
> This does not make any sense…  Before we go to the details of a font
> structure, let’s discuss it semantically.
> 
>   What can it mean that a font “supports a script”?
> 
> Theoretically, it may mean that
>   • it “knows” all the characters in the script, and
>   • has enough extra infrastructure to shape these characters
>     into a correct glyphic representation.
> 
> I may see that the second part may be described by one bit per
> script.  But what about the first one?  A repertoir of a script
> changes every year (sometimes several times per year).  How can this
> be encapsulated into a bit?

All I know about this is what the MSDN documentation says:

  FONTSIGNATURE structure

  Contains information identifying the code pages and Unicode subranges
  for which a given font provides glyphs.
  [...]
  Members

  fsUsb

      A 128-bit Unicode subset bitfield (USB) identifying up to 126
      Unicode subranges. Each bit, except the two most significant bits,
      represents a single subrange. The most significant bit is always 1
      and identifies the bitfield as a font signature; the second most
      significant bit is reserved and must be 0. Unicode subranges are
      numbered in accordance with the ISO 10646 standard. For more
      information, see Unicode Subset Bitfields.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]