* bug#19993: 25.0.50; Unicode fonts defective on Windows @ 2015-03-03 22:02 Ilya Zakharevich 2015-03-04 17:59 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-03 22:02 UTC (permalink / raw) To: 19993 (A) On Windows, most Unicode characters won’t be shown, even if the system has (many) fonts covering the characters (and these fonts are listed in `font-log'!). (B) Documentation of fontsets is completely unusable (I will file a separate bug report covering this), so there is no way a user would be able to work around this by using “just Emacs docs”. (However, there some googlable advice — but I did not check the validity of it yet) (C) Even if a character is (eventually) shown, it may take several seconds after the character is typed. E.g., typing ℱ gives a 2sec delay on my system (a pretty quick PC). It is shown using uniscribe:-outline-MS Gothic-normal-normal-normal-mono-13-*-*-*-c-*-jisx0208*-* (#x3D3) (D) After typing as in (C), many operations become unusable. (E.g., showing documentation for font-log takes several minutes to display the end of the buffer. Save the buffer to a file — and it takes 4.5MB.) (E) Doing `describe-fontset' show a complete mess. It looks like the system is designed for some very old installations — it has an enormous overhead (while not being able to show anything nontrivial!). I get 4500 rows of output, containing junk like this: … ¢ .. £ (#xA2 .. #xA3) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 -*-*-*-*-*-*-*-*-*-*-*-*-jisx0208.1983-0 ¤ (#xA4) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 -*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0 -*-*-*-*-*-*-*-*-*-*-*-*-ksc5601.1987-0 ¥ .. ¦ (#xA5 .. #xA6) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 § (#xA7) … having no relationship to how contemporary systems are set up. (F) `font-show-log' is a little bit more convenient to work with — but it shows no indication what goes wrong when Unicode characters are not shown. It has 1600 lines — and, AFAICS, is not documented. ----- What to do with this mess? There should be 3 goals: 1) fonts should work out of the box; 2) one should make the list of encodings to load (I mean those in `describe-fontset') system-dependent, and — on contemporary systems — default to iso10646 *ONLY*. 3) Improve the docs (but I would try to address this in a separate bug report). (I keep all the debugging info I could find. It is huge, I will make it available upon request.) Thanks for the parts of Emacs which ARE working great, Ilya ======================================================= In GNU Emacs 25.0.50.20 (i686-pc-mingw32) of 2015-02-08 on BUCEFAL Repository revision: d5e3922e08587e7eb9e5aec2e9f84cbda405f857 Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix=/k/test' Configured features: SOUND NOTIFY ACL Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: Fundamental Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message dired format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) Memory information: ((conses 8 80324 9864) (symbols 32 17968 0) (miscs 32 85 128) (strings 16 12688 4007) (string-bytes 1 324435) (vectors 8 9470) (vector-slots 4 390690 6074) (floats 8 65 62) (intervals 28 243 45) (buffers 516 13)) ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-03 22:02 bug#19993: 25.0.50; Unicode fonts defective on Windows Ilya Zakharevich @ 2015-03-04 17:59 ` Eli Zaretskii 2015-03-05 21:49 ` Ilya Zakharevich 2015-03-05 22:05 ` Ilya Zakharevich 0 siblings, 2 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-04 17:59 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Tue, 3 Mar 2015 14:02:28 -0800 > From: Ilya Zakharevich <nospam-abuse@ilyaz.org> > > (A) On Windows, most Unicode characters won’t be shown, even if the system > has (many) fonts covering the characters (and these fonts are listed in > `font-log'!). Examples, please: they are required to debug the issue. Please include with the examples the information about the font(s) which support the problematic characters, but are not used although installed. Or, if you already debugged this and can tell which code misbehaves, please post that information. > (C) Even if a character is (eventually) shown, it may take several seconds > after the character is typed. E.g., typing > ℱ > gives a 2sec delay on my system (a pretty quick PC). It is shown using > uniscribe:-outline-MS Gothic-normal-normal-normal-mono-13-*-*-*-c-*-jisx0208*-* (#x3D3) That delay should happen only once, when any character from the font is first displayed. The next character from the same font should not cause any perceptible delays. If this is what you see, then the delay is due to the font driver (a.k.a. "shaping engine", Uniscribe on Windows) searching the system for a suitable font, under control of the Emacs code (in font.c and fontset.c). A good example of this is "C-h H": the first time you type that in "emacs -Q", it takes a long time before the HELLO buffer displays. But if you kill that buffer and immediately invoke "C-h H" again, the display is instantaneous. This is not specific to Windows in any way, AFAIK, the Emacs code which looks for a suitable font is system-independent. If there are ways to speed up font search, we should do that, of course. Patches to make the search speedier are welcome. > (D) After typing as in (C), many operations become unusable. (E.g., showing > documentation for font-log takes several minutes to display the end of > the buffer. Save the buffer to a file — and it takes 4.5MB.) Yes, similar to "C-h H". Any buffer that uses a lot of different fonts will hit this. > 2) one should make the list of encodings to load (I mean those in > `describe-fontset') system-dependent, and — on contemporary > systems — default to iso10646 *ONLY*. Sorry, I don't understand what that means. First, why should the list of encodings be system-dependent? Those encodings are universal, i.e. there are no encodings that are unusable on any particular system. And your suggestion to use iso10646 actually means it will be system-independent, no? Second, what do you mean by "default to iso10646"? Do you mean that by default there should be no support for other encodings? If so, why? Or maybe you mean that the default font used by "emacs -Q" should support as wide a range of Unicode as possible? If so, I think we already do that. > 3) Improve the docs (but I would try to address this in a separate > bug report). Indeed, font-related issues in Emacs are notoriously under-documented, both on the user level, and on the ELisp level. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-04 17:59 ` Eli Zaretskii @ 2015-03-05 21:49 ` Ilya Zakharevich 2015-03-05 22:05 ` Ilya Zakharevich 1 sibling, 0 replies; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-05 21:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Wed, Mar 04, 2015 at 07:59:56PM +0200, Eli Zaretskii wrote: > > (C) Even if a character is (eventually) shown, it may take several seconds > > after the character is typed. E.g., typing > > ℱ > > gives a 2sec delay on my system (a pretty quick PC). It is shown using > > uniscribe:-outline-MS Gothic-normal-normal-normal-mono-13-*-*-*-c-*-jisx0208*-* (#x3D3) > > That delay should happen only once, when any character from the font > is first displayed. The next character from the same font should not > cause any perceptible delays. If this is what you see, then the delay > is due to the font driver (a.k.a. "shaping engine", Uniscribe on > Windows) searching the system for a suitable font, under control of > the Emacs code (in font.c and fontset.c). I have some doubts in this. I think you are theoretizing, while *I* KNOW that what you expect from Emacs is NOT HAPPENING. (See below.) > > (D) After typing as in (C), many operations become unusable. (E.g., showing > > documentation for font-log takes several minutes to display the end of > > the buffer. Save the buffer to a file — and it takes 4.5MB.) > > Yes, similar to "C-h H". Any buffer that uses a lot of different > fonts will hit this. I think the logical way is to choose one: • either the font delay happens once, and this is not avoidable (as you said above); • or there is something fishy (since other applications do not need minutes to show one screenful of information). ------- Let us see the most important part of my report (the part you trimmed away!): … ¢ .. £ (#xA2 .. #xA3) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 -*-*-*-*-*-*-*-*-*-*-*-*-jisx0208.1983-0 ¤ (#xA4) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 -*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0 -*-*-*-*-*-*-*-*-*-*-*-*-ksc5601.1987-0 ¥ .. ¦ (#xA5 .. #xA6) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-3 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-4 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-9 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-10 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-13 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-14 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-15 -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-16 -*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1 -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 § (#xA7) … As I said, these is 4500 lines of info — and ALL these lines are excessive. On systems where the NATIVE font format is iso10646, instead of all these lines, ONE LINE would be equivalent (at least AFAIU — the stuff IS undocumented): C-@ .. ø¿¿ (#x43 .. #x3FFFFF) -*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1 I do not see how such a change would not fix all the issues reported here. (But I’m theoretizing! ;-) > > 2) one should make the list of encodings to load (I mean those in > > `describe-fontset') system-dependent, and — on contemporary > > systems — default to iso10646 *ONLY*. > > Sorry, I don't understand what that means. First, why should the list > of encodings be system-dependent? In the best world, it should not: just use one encoding (iso10646), and you are done (as above). And, as I said, this would probably work in 95% of installations of Emacs. For the rest of (legacy) systems, the current mess MIGHT be needed (theoretizing again!). > Second, what do you mean by "default to iso10646"? Do you mean that > by default there should be no support for other encodings? If so, > why? Because on contemporary systems, -X-Y-Z-T-U-V-S-R-K-L-M-N-iso8859-5 is just a subset of -X-Y-Z-T-U-V-S-R-K-L-M-N-iso10646-1 (plus a lot of overhead added to do translations twice: first in one direction, then in the opposite one!). Why look for glyphs in both? ======================================================= BTW, I just noticed: `describe-fontset' produces a buffer starting as Fontset: -outline-Courier New-normal-normal-normal-mono-13-*-*-*-c-*-fontset-startup CHAR RANGE (CODE RANGE) FONT NAME (REQUESTED and [OPENED]) C-@ .. x?=? (#x43 .. #x3FFF7F) -*-*-*-*-*-*-*-*-*-*-*-*-iso8859-1 Where this #x43 cames from?! Thanks, Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-04 17:59 ` Eli Zaretskii 2015-03-05 21:49 ` Ilya Zakharevich @ 2015-03-05 22:05 ` Ilya Zakharevich 2015-03-06 10:45 ` Eli Zaretskii 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-05 22:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Wed, Mar 04, 2015 at 07:59:56PM +0200, Eli Zaretskii wrote: > > Date: Tue, 3 Mar 2015 14:02:28 -0800 > > From: Ilya Zakharevich <nospam-abuse@ilyaz.org> > > > > (A) On Windows, most Unicode characters won’t be shown, even if the system > > has (many) fonts covering the characters (and these fonts are listed in > > `font-log'!). > > Examples, please: they are required to debug the issue. Please > include with the examples the information about the font(s) which > support the problematic characters, but are not used although > installed. Or, if you already debugged this and can tell which code > misbehaves, please post that information. I won’t be able to debug this. However, I just take the MOST IMPORTANT font (plug plug! See ilyaz.org/fonts ;-] ), and grep for it in the result of `font-show-log' (family = «Unifont Smooth»; it is usable, and has all the glyphs for BMP of Unicode 7.0): grep -B 3 -A 3 Smooth- font-show-log-post >font-show-log-post-Smooth I see several occurences: -outline-FangSong-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-SimHei-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* w32font-list: -outline-*-mono-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-GungsuhChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -- -outline-FangSong-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-SimHei-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* list: -outline-*-mono-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-GungsuhChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -- -outline-FangSong-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-SimHei-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-GungsuhChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-GulimChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -- uniscribe-list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* w32font-list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* sort-by: -*-normal-normal-normal-*-13-* uniscribe:-outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* open: -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* but only with some specialized encodings (instead of iso10646). How comes? Would not this explain why the glyph is not shown? Thanks, Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-05 22:05 ` Ilya Zakharevich @ 2015-03-06 10:45 ` Eli Zaretskii 2015-03-06 11:38 ` Ilya Zakharevich 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-06 10:45 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Thu, 5 Mar 2015 14:05:02 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > but only with some specialized encodings (instead of iso10646). How comes? > > Would not this explain why the glyph is not shown? What glyph? Once again, please provide examples someone else can work with. Also, it might help to understand how did you produce the font log, and in particular with what argument, if any, did you invoke font-show-log. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 10:45 ` Eli Zaretskii @ 2015-03-06 11:38 ` Ilya Zakharevich 2015-03-06 14:00 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-06 11:38 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Fri, Mar 06, 2015 at 12:45:02PM +0200, Eli Zaretskii wrote: > > Date: Thu, 5 Mar 2015 14:05:02 -0800 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > but only with some specialized encodings (instead of iso10646). How comes? > > > > Would not this explain why the glyph is not shown? > > What glyph? Once again, please provide examples someone else can work > with. Practically nothing “non-banal” is shown. Let me try… No U+1D49C, U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent “real-life” file of notices). > Also, it might help to understand how did you produce the font log, > and in particular with what argument, if any, did you invoke > font-show-log. Just M-x font-show-log after entering ℱ (by typing Shift-AltGr-Menu-F on my layouts). Thanks, Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 11:38 ` Ilya Zakharevich @ 2015-03-06 14:00 ` Eli Zaretskii 2015-03-06 16:21 ` Ilya Zakharevich 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-06 14:00 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Fri, 6 Mar 2015 03:38:04 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > Practically nothing “non-banal” is shown. Let me try… No U+1D49C, > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent > “real-life” file of notices). U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts installed, and they are used for that). The rest indeed aren't. Do you have fonts installed that cover these codepoints? > > Also, it might help to understand how did you produce the font log, > > and in particular with what argument, if any, did you invoke > > font-show-log. > > Just > M-x font-show-log > after entering ℱ (by typing Shift-AltGr-Menu-F on my layouts). It by default shows only 20 fonts, so perhaps Emacs searched more than what it shows. Invoking font-show-log with a negative argument will cause it show all the fonts, without any limitations. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 14:00 ` Eli Zaretskii @ 2015-03-06 16:21 ` Ilya Zakharevich 2015-03-06 20:11 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-06 16:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Fri, Mar 06, 2015 at 04:00:27PM +0200, Eli Zaretskii wrote: > > Practically nothing “non-banal” is shown. Let me try… No U+1D49C, > > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent > > “real-life” file of notices). > > U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts > installed, and they are used for that). The rest indeed aren't. > Do you have fonts installed that cover these codepoints? As I said, «Unifont Smooth» has everything in BMP of v7.0. Many fonts (including «Symbola») have Math chars. > > > Also, it might help to understand how did you produce the font log, > > > and in particular with what argument, if any, did you invoke > > > font-show-log. > > > > Just > > M-x font-show-log > > after entering ℱ (by typing Shift-AltGr-Menu-F on my layouts). > > It by default shows only 20 fonts, so perhaps Emacs searched more than > what it shows. Invoking font-show-log with a negative argument will > cause it show all the fonts, without any limitations. Yes, it was my fault. I redid it: (A) Typed Shift-Space Shift-Space < in izKeys layout (inserts U+27e8 ⟨). (Shows a rectangle with 27e8.) (B) Saved the result of M-: (font-show-log -1) (C) Ran egrep -B 1 -A 1 "^[^ ]|Smooth-" font-show-log--1 >font-show-log--1-Smooth-a perl -wlpe "s/^--$/==/" font-show-log--1-Smooth-a >font-show-log--1-Smooth-a1 grep -B 4 -A 1 Smooth- font-show-log--1-Smooth-a1 >font-show-log--1-Smooth-b The result is below. (Does not tell me anything…) Thanks, Ilya uniscribe-list: -outline-*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -outline-*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -outline-*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -outline-*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -outline-*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -outline-*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -*-mono-*-iso10646-1:script=symbol -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -*-iso10646-1:script=symbol -outline-Arial-normal-normal-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -outline-*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -outline-*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -outline-*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -outline-*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -outline-*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -outline-*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -*-mono-*-iso10646-1 -outline-BatangChe-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- w32font-list: -*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- list: -*-iso10646-1 -outline-Tekton Pro-bold-italic-normal-sans-*-p-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 == -outline-DejaVu Sans Mono Unifont-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-iso10646-1 -outline-Unifont Smooth Mono-normal-normal-normal-mono-*-c-*-iso10646-1 -- uniscribe-list: -outline-*-mono-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* == -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* w32font-list: -outline-*-mono-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* == -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* list: -outline-*-mono-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* == -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-gb2312.1980*-* == -outline-KaiTi-normal-normal-normal-mono-*-c-*-gb2312.1980*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-gb2312.1980*-* sort-by: -*-normal-normal-normal-*-13-* -- list: -*-Courier New-*-jisx0208*-* uniscribe-list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* w32font-list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* list: -outline-*-mono-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Gothic-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-MS Mincho-normal-normal-normal-mono-*-c-*-jisx0208*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-jisx0208*-* sort-by: -*-normal-normal-normal-*-13-* -- uniscribe-list: -outline-*-mono-*-big5*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-big5*-* == -outline-NSimSun-normal-normal-normal-mono-*-c-*-big5*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-big5*-* w32font-list: -outline-*-mono-*-big5*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-big5*-* == -outline-NSimSun-normal-normal-normal-mono-*-c-*-big5*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-big5*-* list: -outline-*-mono-*-big5*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-big5*-* == -outline-NSimSun-normal-normal-normal-mono-*-c-*-big5*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-big5*-* -outline-BatangChe-normal-normal-normal-mono-*-c-*-big5*-* == -outline-NSimSun-normal-normal-normal-mono-*-c-*-big5*-* -outline-Unifont Smooth-normal-normal-normal-mono-*-c-*-big5*-* sort-by: -*-normal-normal-normal-*-13-* ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 16:21 ` Ilya Zakharevich @ 2015-03-06 20:11 ` Eli Zaretskii 2015-03-06 21:12 ` Eli Zaretskii 2015-03-06 22:08 ` Ilya Zakharevich 0 siblings, 2 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-06 20:11 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Fri, 6 Mar 2015 08:21:36 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > On Fri, Mar 06, 2015 at 04:00:27PM +0200, Eli Zaretskii wrote: > > > Practically nothing “non-banal” is shown. Let me try… No U+1D49C, > > > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent > > > “real-life” file of notices). > > > > U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts > > installed, and they are used for that). The rest indeed aren't. > > > Do you have fonts installed that cover these codepoints? > > As I said, «Unifont Smooth» has everything in BMP of v7.0. Many fonts > (including «Symbola») have Math chars. 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? Or maybe we could add some more heuristics to the code in w32font.c, to be smarter about font selection for Symbol script. I really don't know enough about all this stuff. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 20:11 ` Eli Zaretskii @ 2015-03-06 21:12 ` Eli Zaretskii 2015-03-06 22:13 ` Ilya Zakharevich 2015-03-06 22:08 ` Ilya Zakharevich 1 sibling, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-06 21:12 UTC (permalink / raw) To: ilya; +Cc: 19993 > Date: Fri, 06 Mar 2015 22:11:32 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: 19993@debbugs.gnu.org > > > Date: Fri, 6 Mar 2015 08:21:36 -0800 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > On Fri, Mar 06, 2015 at 04:00:27PM +0200, Eli Zaretskii wrote: > > > > Practically nothing “non-banal” is shown. Let me try… No U+1D49C, > > > > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent > > > > “real-life” file of notices). > > > > > > U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts > > > installed, and they are used for that). The rest indeed aren't. > > > > > Do you have fonts installed that cover these codepoints? > > > > As I said, «Unifont Smooth» has everything in BMP of v7.0. Many fonts > > (including «Symbola») have Math chars. This will set up the default fontset to use Symbola for the Mathematical Alphanumeric Symbols block: (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") You should be able to do similar things with other ranges, and likewise for Unifont Smooth. The node "Modifying Fontsets" of the Emacs manual also includes an example of how to set up a fallback font, which might be what you want to do with Unifont Smooth (unless you already have it set as the default font). ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 21:12 ` Eli Zaretskii @ 2015-03-06 22:13 ` Ilya Zakharevich 2015-03-07 8:18 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-06 22:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Fri, Mar 06, 2015 at 11:12:17PM +0200, Eli Zaretskii wrote: > This will set up the default fontset to use Symbola for the > Mathematical Alphanumeric Symbols block: > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") I do not follow. What is going on now? Are you saying that it should NOT work out-of-the-box? And what fontset-default has to do with this discussion? It is not used by Emacs, right? (If my understanding of Emacs Manual is correct.) Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 22:13 ` Ilya Zakharevich @ 2015-03-07 8:18 ` Eli Zaretskii 2015-03-08 7:45 ` Ilya Zakharevich 2015-03-08 8:38 ` Ilya Zakharevich 0 siblings, 2 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-07 8:18 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Fri, 6 Mar 2015 14:13:51 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > On Fri, Mar 06, 2015 at 11:12:17PM +0200, Eli Zaretskii wrote: > > This will set up the default fontset to use Symbola for the > > Mathematical Alphanumeric Symbols block: > > > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > I do not follow. What is going on now? Are you saying that it should > NOT work out-of-the-box? On the slim chance that you'd like this to work for you, and didn't yet figure it out, I described what worked for me. Also, others who read this discussion, now or in the future, might benefit from this information. > And what fontset-default has to do with this discussion? It is not > used by Emacs, right? AFAICT, it _is_ used. At least if I evaluate the above in "emacs -Q", and then type characters in the range, they are displayed using Symbola, instead of showing a box with hex code, per glyphless character display. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-07 8:18 ` Eli Zaretskii @ 2015-03-08 7:45 ` Ilya Zakharevich 2015-03-08 15:52 ` Eli Zaretskii 2015-03-08 8:38 ` Ilya Zakharevich 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-08 7:45 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sat, Mar 07, 2015 at 10:18:25AM +0200, Eli Zaretskii wrote: > > Date: Fri, 6 Mar 2015 14:13:51 -0800 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > On Fri, Mar 06, 2015 at 11:12:17PM +0200, Eli Zaretskii wrote: > > > This will set up the default fontset to use Symbola for the > > > Mathematical Alphanumeric Symbols block: > > > > > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > > > I do not follow. What is going on now? Are you saying that it should > > NOT work out-of-the-box? > > On the slim chance that you'd like this to work for you, and didn't > yet figure it out, I described what worked for me. > > Also, others who read this discussion, now or in the future, might > benefit from this information. Thanks for clarifying this. However, my answer still remains unanswered… > > And what fontset-default has to do with this discussion? It is not > > used by Emacs, right? > > AFAICT, it _is_ used. At least if I evaluate the above in "emacs -Q", > and then type characters in the range, they are displayed using > Symbola, instead of showing a box with hex code, per glyphless > character display. I see: I mixed it up with “standard fontset”. Thanks. Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 7:45 ` Ilya Zakharevich @ 2015-03-08 15:52 ` Eli Zaretskii 0 siblings, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-08 15:52 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Sat, 7 Mar 2015 23:45:05 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > On Sat, Mar 07, 2015 at 10:18:25AM +0200, Eli Zaretskii wrote: > > > Date: Fri, 6 Mar 2015 14:13:51 -0800 > > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > > Cc: 19993@debbugs.gnu.org > > > > > > On Fri, Mar 06, 2015 at 11:12:17PM +0200, Eli Zaretskii wrote: > > > > This will set up the default fontset to use Symbola for the > > > > Mathematical Alphanumeric Symbols block: > > > > > > > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > > > > > I do not follow. What is going on now? Are you saying that it should > > > NOT work out-of-the-box? > > > > On the slim chance that you'd like this to work for you, and didn't > > yet figure it out, I described what worked for me. > > > > Also, others who read this discussion, now or in the future, might > > benefit from this information. > > Thanks for clarifying this. However, my answer still remains unanswered… The answer should be obvious. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-07 8:18 ` Eli Zaretskii 2015-03-08 7:45 ` Ilya Zakharevich @ 2015-03-08 8:38 ` Ilya Zakharevich 2015-03-08 8:46 ` Ilya Zakharevich 2015-03-08 15:55 ` Eli Zaretskii 1 sibling, 2 replies; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-08 8:38 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sat, Mar 07, 2015 at 10:18:25AM +0200, Eli Zaretskii wrote: > > > (set-fontset-font "fontset-default" '(#x1d400 . #x1d7ff) "Symbola") > > > > I do not follow. What is going on now? Are you saying that it should > > NOT work out-of-the-box? > > On the slim chance that you'd like this to work for you, and didn't > yet figure it out, I described what worked for me. It would be nice if there was a recipe which works for everyone. (After this, one could make it a default. ;-) But the major hurdle is that the semantic of fontsets is completely undocumented. After your suggestions, I think I arrived at some description which does not contradict anything I have seen: ======================================================= When Emacs wants to show a character using a fontset: • Emacs looks in the fontset and finds the font specifications associated to this character. • Emacs checks which Unicode Subset contains the given character. (What if not unique???) • From fonts matching the font specifications, Emacs picks up those which have this Unicode Subset “identified” within the font. • From these, Emacs choses one (which?). Emacs uses this procedure for two fontsets: the currently enabled one, and the default fontset. If none of two obtained fonts supports the given character, a HEX representation is shown. ======================================================= Is it similar to what actually happens? (I’m not asking about the implementation, just whether there is a functional equivalence.) Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 8:38 ` Ilya Zakharevich @ 2015-03-08 8:46 ` Ilya Zakharevich 2015-03-10 16:29 ` Ilya Zakharevich 2015-03-08 15:55 ` Eli Zaretskii 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-08 8:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sun, Mar 08, 2015 at 12:38:05AM -0800, Ilya Zakharevich wrote: > When Emacs wants to show a character using a fontset: > • Emacs looks in the fontset and finds the font specifications associated > to this character. > • Emacs checks which Unicode Subset contains the given character. > (What if not unique???) > • From fonts matching the font specifications, Emacs picks up those > which have this Unicode Subset “identified” within the font. > • From these, Emacs choses one (which?). > > Emacs uses this procedure for two fontsets: the currently enabled one, and > the default fontset. If none of two obtained fonts supports the given > character, a HEX representation is shown. > ======================================================= Interesting tidbit: 57 D800 - DFFF Non-Plane 0. Note that setting this bit implies that there is at least one supplementary code point beyond the Basic Multilingual Plane (BMP) that is supported by this font. See Surrogates and Supplementary Characters. Extrapolating (since there is no other way to treat this), having a Subset “identified” may mean just that there is at least 1 character in this range supported by the font. ;-) :-( Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 8:46 ` Ilya Zakharevich @ 2015-03-10 16:29 ` Ilya Zakharevich 2015-03-10 17:05 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-10 16:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sun, Mar 08, 2015 at 12:46:07AM -0800, I wrote: > Interesting tidbit: > > 57 D800 - DFFF Non-Plane 0. Note that setting this bit implies that > there is at least one supplementary code point > beyond the Basic Multilingual Plane (BMP) that > is supported by this font. See Surrogates and > Supplementary Characters. > > Extrapolating (since there is no other way to treat this), having a > Subset “identified” may mean just that there is at least 1 character > in this range supported by the font. ;-) :-( To check this conjecture: • I assume that for most fonts, the OS/2 table is created automatically by the font editor; • I did experiments with the only font editor I know: FontForge. What I did: • created a new font (File/New); • changed Encoding to Unicode (Encoding/Reencode/10646-1); • made some scribles in ã (U+00e3) and щ (U+0449); • Looked into Element⫽Font␣Info⫽OS/2⫽Charsets. As predicted above, (in Automatic mode) Latin Supplement Cyrillic & Supplement are highlighted. So, I presume, the conjecture above is justified: The fact that a Subset is “identified” means just that AT LEAST 1 character is present. ======================================================= Which means that the current algorithm used by Emacs (on Windows?) — at least in the conjectural form outlined in another message in this thread — is completely bogus. Choosing the first font which has a subset of a character “identified” is not a reasonable thing to do. One must check whether the character is ACTUALLY present, and scan other “identified” fonts if not. Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-10 16:29 ` Ilya Zakharevich @ 2015-03-10 17:05 ` Eli Zaretskii 2015-03-10 17:41 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-10 17:05 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Tue, 10 Mar 2015 09:29:56 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > Choosing the first font which has a subset of a character “identified” > is not a reasonable thing to do. See my other messages: I'm not sure we actually do that. It's possible that the subrange test is used only as a filter, after we already identified the candidate fonts. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-10 17:05 ` Eli Zaretskii @ 2015-03-10 17:41 ` Eli Zaretskii 2015-03-10 20:32 ` Ilya Zakharevich 2015-03-11 19:49 ` Ilya Zakharevich 0 siblings, 2 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-10 17:41 UTC (permalink / raw) To: ilya; +Cc: 19993 > Date: Tue, 10 Mar 2015 19:05:54 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: 19993@debbugs.gnu.org > > > Date: Tue, 10 Mar 2015 09:29:56 -0700 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > Choosing the first font which has a subset of a character “identified” > > is not a reasonable thing to do. > > See my other messages: I'm not sure we actually do that. It's > possible that the subrange test is used only as a filter, after we > already identified the candidate fonts. In fact, it's almost certainly a filter: at least my reading of ww32font.c:font_matches_spec is that if the font spec specifies a script, then fonts that do NOT have the corresponding subrange bit set are rejected. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-10 17:41 ` Eli Zaretskii @ 2015-03-10 20:32 ` Ilya Zakharevich 2015-03-11 4:28 ` Eli Zaretskii 2015-03-11 19:49 ` Ilya Zakharevich 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-10 20:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Tue, Mar 10, 2015 at 07:41:39PM +0200, Eli Zaretskii wrote: > > > Choosing the first font which has a subset of a character “identified” > > > is not a reasonable thing to do. > > > > See my other messages: I'm not sure we actually do that. It's > > possible that the subrange test is used only as a filter, after we > > already identified the candidate fonts. > > In fact, it's almost certainly a filter: at least my reading of > ww32font.c:font_matches_spec is that if the font spec specifies a > script, then fonts that do NOT have the corresponding subrange bit set > are rejected. So back to the drawing board: • on your system • with Symbola installed • with the default configuration I presume that Math Alphabeticals are not shown (but ARE shown when Symbola is EXPLICITLY marked as the default font for them). WHY? With my conjectures, the explanation would be that a certain other font on the system has the Math Alphabeticals Subset “identified”, so this font is chosen by Emacs — but in reality, this font does not support the whole subset, so the needed glyphs are missing. (For example, DejaVu has Monospaced range, and nothing else. [Well, the glyphs in the Monospaced range are totally broken, but that is irrelevant for the current discussion!]) Without my conjecture, what would be your explanation? Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-10 20:32 ` Ilya Zakharevich @ 2015-03-11 4:28 ` Eli Zaretskii 0 siblings, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-11 4:28 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Tue, 10 Mar 2015 13:32:24 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > • on your system > • with Symbola installed > • with the default configuration > I presume that Math Alphabeticals are not shown (but ARE shown when > Symbola is EXPLICITLY marked as the default font for them). If you mean the Mathematical Alphanumeric Symbols block, then they are indeed not shown, although I have quite a few fonts that support that range, not just Symbola. > WHY? I don't know. > With my conjectures, the explanation would be that a certain other > font on the system has the Math Alphabeticals Subset “identified”, so > this font is chosen by Emacs — but in reality, this font does not > support the whole subset, so the needed glyphs are missing. (For > example, DejaVu has Monospaced range, and nothing else. [Well, the > glyphs in the Monospaced range are totally broken, but that is > irrelevant for the current discussion!]) Did you try to uninstall DejaVu (and any other font that claims support for this range, but doesn't really cover these characters), and see what happens then? If the problem persists, then this is not the real reason. > Without my conjecture, what would be your explanation? I don't have one. I could hypothesize, say, that Emacs simply lacks some wisdom to find a font for that range, but I think you will be much better off studying the relevant code and walking through it with a debugger, than by asking me for explanations in these matters, about which I know very little. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-10 17:41 ` Eli Zaretskii 2015-03-10 20:32 ` Ilya Zakharevich @ 2015-03-11 19:49 ` Ilya Zakharevich 2015-03-11 20:21 ` Eli Zaretskii 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-11 19:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Tue, Mar 10, 2015 at 07:41:39PM +0200, Eli Zaretskii wrote: > > > Choosing the first font which has a subset of a character “identified” > > > is not a reasonable thing to do. > > > > See my other messages: I'm not sure we actually do that. It's > > possible that the subrange test is used only as a filter, after we > > already identified the candidate fonts. > > In fact, it's almost certainly a filter: at least my reading of > ww32font.c:font_matches_spec is that if the font spec specifies a > script, then fonts that do NOT have the corresponding subrange bit set > are rejected. I think you have misidentified the problem. Note that in my “algorithm”, this condition is ALSO used as a filter. So the real question is not whether the presence of a Subset is used as filters, but: is the presence of the required character in the font used as a filter. Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-11 19:49 ` Ilya Zakharevich @ 2015-03-11 20:21 ` Eli Zaretskii 2015-03-12 18:16 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-11 20:21 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Wed, 11 Mar 2015 12:49:39 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > So the real question is not whether the presence of a Subset is used > as filters, but: is > > the presence of the required character in the font > > used as a filter. When a font matches all the other constraints, then yes, it is actually tested for whether it supports the specific character we need to display. See font_has_char and its callers. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-11 20:21 ` Eli Zaretskii @ 2015-03-12 18:16 ` Eli Zaretskii 2015-03-13 1:52 ` Ilya Zakharevich 2015-03-13 4:50 ` Ilya Zakharevich 0 siblings, 2 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-12 18:16 UTC (permalink / raw) To: ilya; +Cc: 19993 > Date: Wed, 11 Mar 2015 22:21:23 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: 19993@debbugs.gnu.org > > > Date: Wed, 11 Mar 2015 12:49:39 -0700 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > So the real question is not whether the presence of a Subset is used > > as filters, but: is > > > > the presence of the required character in the font > > > > used as a filter. > > When a font matches all the other constraints, then yes, it is > actually tested for whether it supports the specific character we need > to display. See font_has_char and its callers. I had a few minutes to spare, so I took a closer look at the code. The problem with the Mathematical Alphanumeric Symbols block is much more prosaic than you thought: fontset.el breaks this block into several distinct pseudo-scripts (don't know why, perhaps for compatibility with something on Unix), but no one has taught w32font.c to do the same for the corresponding Unicode subrange. So Emacs was asking for, say, 'mathematical-italic' "script", but w32font.c was comparing that with 'mathematical', and was rejecting the fonts that support these characters. This is now fixed in commit fc10058 on master. You should now be able to type "C-x 8 RET 1d400 RET" and see the character displayed. While at that, I also added the missing subranges that for some reason unknown to me were commented out; for many of them, I could verify that adding them makes the corresponding characters displayable by default, where they previously weren't. (I couldn't verify that for some of the scripts for which I have no fonts.) A few subranges were left out, and I added comments explaining why. With that out of our way, part of the problem is solved. Part, but not all of it. Because it is true: Emacs searches the fonts installed on the system mostly by requiring only that the font supports the script to which the character belongs, but without opening the font and checking whether the specific character we are about to display has a glyph in the font. Here's the crucial piece of code (from fontset.c): /* Find a font best-matching with the spec without checking the support of the character C. That checking is costly, and even without the checking, the found font supports C in high possibility. */ font_entity = font_find_for_lface (f, face->lface, FONT_DEF_SPEC (font_def), -1); That -1 as the last argument tells font_find_for_lface to not check support for the character. So yes, if a font claims support for a script, but actually supports very little of it, it is quite possible that Emacs will try to use it, and will then be unable to display the missing characters. I know about font search on Unix even less than I know for Windows, so I cannot tell if on Unix we are smarter about this. I see that ftfont.c uses fontconfig functions to verify that the representative character of the required script (set up on fontset.el) is part of the charset supported by a font, but I don't know if that looks into the font, and in any case we only have at most 1 representative character for all but a few scripts. So misses are still possible; or maybe I'm missing something. Assuming that we want to become smarter about this, we could do one or both of the following: . have a database of fonts which are _not_ to be used for certain scripts, because it is known that their coverage is poor . have a more elaborate default fontset that favors specific fonts for scripts which these fonts are known to support well One problem with both of these is that it's hard to recommend fonts because many good fonts are non-free. If it turns out that these problems are Windows-specific, the above can be done for Windows only (like w32-standard-fontset-spec). ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-12 18:16 ` Eli Zaretskii @ 2015-03-13 1:52 ` Ilya Zakharevich 2015-03-13 7:34 ` Eli Zaretskii 2015-03-13 4:50 ` Ilya Zakharevich 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-13 1:52 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Thu, Mar 12, 2015 at 08:16:39PM +0200, Eli Zaretskii wrote: > support these characters. This is now fixed in commit fc10058 on > master. You should now be able to type "C-x 8 RET 1d400 RET" and see > the character displayed. > > While at that, I also added the missing subranges that for some reason > unknown to me were commented out; for many of them, I could verify > that adding them makes the corresponding characters displayable by > default, where they previously weren't. (I couldn't verify that for > some of the scripts for which I have no fonts.) A few subranges were > left out, and I added comments explaining why. A lot of thanks! > With that out of our way, part of the problem is solved. Part, but > not all of it. Because it is true: Emacs searches the fonts installed > on the system mostly by requiring only that the font supports the > script to which the character belongs, but without opening the font > and checking whether the specific character we are about to display > has a glyph in the font. Here's the crucial piece of code (from > fontset.c): > > /* Find a font best-matching with the spec without checking > the support of the character C. That checking is costly, > and even without the checking, the found font supports C > in high possibility. */ So, this explains why U+2099, U+27e8, U+27e9 are not shown here (while supported by a lot of fonts). Thanks for investigating this! > Assuming that we want to become smarter about this, we could do one or > both of the following: > > . have a database of fonts which are _not_ to be used for certain > scripts, because it is known that their coverage is poor > > . have a more elaborate default fontset that favors specific fonts > for scripts which these fonts are known to support well > Did you look into the link I provided (about how Firefox does it)? http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#There_is_no_way_to_show_Unicode_contents_on_Windows As my experiments show (I did not try to read the source code) the logic of falling back goes this way: • If document’s fonts can show a char, stop; • If (user-configurable) fallback fonts for a Subset can show a char, stop; • If (user-configurable) universal fallback fonts can show a char, stop; • Otherwise, scan all fonts to find one supporting a char. (The third case is the “x-unicode” pseudo-subset mentioned in the link above.) Emacs: • Supports different fallbacks for different subsets; • But it supports only one fallback font per character. (Well, it allows specifying more than one font, but as you saw, only one of them will be actually used — at least in the case when the fonts would claim having chars in all the ranges — as most of “good universal fonts” would do.) The second one is a significant show-stopper, since it is very hard to boil down things to one font. Myself, I only use scripts with “simple shaping”, so all of my needs are covered by 4 fonts: DejaVu * Symbola Junicode Unifont Smooth (with Unifont Smooth last, since though I’m still working on un-uglifying Unifont, there is a limit to algorithmic beautification, and it is always going to be MUCH worse than all the alternatives — when alternatives exist). BTW, is font-family search caseless? Since last year, the family was changed from unifont to Unifont (in the unifondry’s TTF distribution). > One problem with both of these is that it's hard to recommend fonts > because many good fonts are non-free. For simple rendering (no shaping), there is a lot of possibilities. Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-13 1:52 ` Ilya Zakharevich @ 2015-03-13 7:34 ` Eli Zaretskii 0 siblings, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-13 7:34 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Thu, 12 Mar 2015 18:52:15 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > > /* Find a font best-matching with the spec without checking > > the support of the character C. That checking is costly, > > and even without the checking, the found font supports C > > in high possibility. */ > > So, this explains why U+2099, U+27e8, U+27e9 are not shown here (while > supported by a lot of fonts). I do have these displayed (by STIX, not Symbola, but that's just because STIX was probably examined first). Did you try that with the latest master? Or maybe it's DejaVu at work, see below. > Did you look into the link I provided (about how Firefox does it)? > > http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#There_is_no_way_to_show_Unicode_contents_on_Windows > > As my experiments show (I did not try to read the source code) the > logic of falling back goes this way: > > • If document’s fonts can show a char, stop; > • If (user-configurable) fallback fonts for a Subset can show a > char, stop; > • If (user-configurable) universal fallback fonts can show a > char, stop; > • Otherwise, scan all fonts to find one supporting a char. Emacs already does the first 3 of these. It also does the 4th, but without actually opening the fonts. Changing that to actually open the fonts is beyond my pay grade. Given that the fontsets machinery is so easy to tweak to fix specific problems (once you understand how to use fontsets), it sounds to me that providing a smarter default fontset is a much easier way of having Emacs DTRT out of the box. Also faster, because fontests are checked before scanning all the fonts and need much less processing. After all, free fonts with good coverage of the Unicode codepoints are very few, well-known, and unlikely to change much in the future. > Emacs: > • Supports different fallbacks for different subsets; > • But it supports only one fallback font per character. Not per character, per script, or Unicode block. And it's not really a fallback, it's the result of searching all the installed fonts. "Fallback" in Emacs is defined by fontsets; a fontset can in principle define a different fallback font for each codepoint. > (Well, it allows specifying more than one font, but as you saw, > only one of them will be actually used — at least in the case > when the fonts would claim having chars in all the ranges — as > most of “good universal fonts” would do.) There's no problem to specify different fonts for specific characters belonging to the same Unicode block. So I don't see any problem here, not with what can be defined using fontsets. > The second one is a significant show-stopper, since it is very hard to > boil down things to one font. It can be handled in one of the two ways I suggested: 1) Have the default fontset do this, based on expert knowledge of problems with existing fonts and characters. This can be done today by simply augmenting the default fontset. 2) Add a data base of "bad" fonts that should be rejected for certain ranges of codepoints, even if they claim support for the corresponding Unicode blocks. This might need additional code to be added (although it's possible that fontsets already support that as well -- see the ADD argument of set-fontset-font, whose semantics is not explained well enough). > Myself, I only use scripts with “simple shaping”, so all of my needs > are covered by 4 fonts: > DejaVu * > Symbola > Junicode > Unifont Smooth I tried DejaVu, but recently uninstalled it, because it masked too many characters for which it falsely claimed support (including the Mathematical Alphanumeric Symbols, I think). What do you need it for? Also, Quivira has a very good coverage of rare blocks. > BTW, is font-family search caseless? I think so. > > One problem with both of these is that it's hard to recommend fonts > > because many good fonts are non-free. > > For simple rendering (no shaping), there is a lot of possibilities. We only need a few popular ones. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-12 18:16 ` Eli Zaretskii 2015-03-13 1:52 ` Ilya Zakharevich @ 2015-03-13 4:50 ` Ilya Zakharevich 2015-03-13 6:16 ` Eli Zaretskii 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-13 4:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Thu, Mar 12, 2015 at 08:16:39PM +0200, Eli Zaretskii wrote: > While at that, I also added the missing subranges that for some reason > unknown to me were commented out; for many of them, I could verify > that adding them makes the corresponding characters displayable by > default, where they previously weren't. (I couldn't verify that for > some of the scripts for which I have no fonts.) A few subranges were > left out, and I added comments explaining why. BTW, if you downloaded Unifont Smooth, then in 7zip file, in build subdirectory, there is file coverage-all.txt. It contains all characters supported by Unifont (or Unifont Smooth); it is there for exactly this purpose — to make it easier to debug font selection problems. Hope this helps, Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-13 4:50 ` Ilya Zakharevich @ 2015-03-13 6:16 ` Eli Zaretskii 0 siblings, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-13 6:16 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Thu, 12 Mar 2015 21:50:22 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > On Thu, Mar 12, 2015 at 08:16:39PM +0200, Eli Zaretskii wrote: > > While at that, I also added the missing subranges that for some reason > > unknown to me were commented out; for many of them, I could verify > > that adding them makes the corresponding characters displayable by > > default, where they previously weren't. (I couldn't verify that for > > some of the scripts for which I have no fonts.) A few subranges were > > left out, and I added comments explaining why. > > BTW, if you downloaded Unifont Smooth, then in 7zip file, in build > subdirectory, there is file coverage-all.txt. It contains all > characters supported by Unifont (or Unifont Smooth); it is there for > exactly this purpose — to make it easier to debug font selection > problems. Thanks. I have BabelMap installed, and it does this job brilliantly, for all the installed fonts. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 8:38 ` Ilya Zakharevich 2015-03-08 8:46 ` Ilya Zakharevich @ 2015-03-08 15:55 ` Eli Zaretskii 1 sibling, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-08 15:55 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Sun, 8 Mar 2015 00:38:05 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > But the major hurdle is that the semantic of fontsets is completely > undocumented. After your suggestions, I think I arrived at some > description which does not contradict anything I have seen: > > ======================================================= > When Emacs wants to show a character using a fontset: > • Emacs looks in the fontset and finds the font specifications associated > to this character. > • Emacs checks which Unicode Subset contains the given character. > (What if not unique???) > • From fonts matching the font specifications, Emacs picks up those > which have this Unicode Subset “identified” within the font. > • From these, Emacs choses one (which?). > > Emacs uses this procedure for two fontsets: the currently enabled one, and > the default fontset. If none of two obtained fonts supports the given > character, a HEX representation is shown. > ======================================================= > > Is it similar to what actually happens? (I’m not asking about the > implementation, just whether there is a functional equivalence.) Sounds reasonable; but then my "reason" in this matter means very little. And I'm not aware of any documentation that could be used to confirm or refute the above. I can add 2 bits to this: . the match between the font spec and the Unicode subranges is checked as part of the Windows implementation of the font driver's 'list' method, which (the method) is called only from font_list_entities, which see. . at least some of the "wisdom" (or lack thereof) of font selection using the defaults seems to come from the database created by setup-default-fontset, which see. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 20:11 ` Eli Zaretskii 2015-03-06 21:12 ` Eli Zaretskii @ 2015-03-06 22:08 ` Ilya Zakharevich 2015-03-07 8:14 ` Eli Zaretskii 1 sibling, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-06 22:08 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Fri, Mar 06, 2015 at 10:11:32PM +0200, Eli Zaretskii wrote: > > Date: Fri, 6 Mar 2015 08:21:36 -0800 > > From: Ilya Zakharevich <ilya@math.berkeley.edu> > > Cc: 19993@debbugs.gnu.org > > > > On Fri, Mar 06, 2015 at 04:00:27PM +0200, Eli Zaretskii wrote: > > > > Practically nothing “non-banal” is shown. Let me try… No U+1D49C, > > > > U+2099 ₙ, U+1D552, U+27e8 U+27e9 ⟨⟩ (just looking into my recent > > > > “real-life” file of notices). > > > > > > U+2099, U+27e8, and U+27e9 are displayed here (I have the STIX fonts > > > installed, and they are used for that). The rest indeed aren't. > > > > > Do you have fonts installed that cover these codepoints? > > > > As I said, «Unifont Smooth» has everything in BMP of v7.0. Many fonts > > (including «Symbola») have Math chars. > > 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? ------- But anyway: • I open Symbola.ttf with fontforge; • Go to Element⫽Font␣Info; • Go to OS/2; • Go to Charsets; • And there, deep in the list, “Mathematical Alphanumeric Symbols” are highlighted. AND: Symbola IS listed in `font-show-log'… > Or maybe we could add some more heuristics to the code in w32font.c, > to be smarter about font selection for Symbol script. I really don't > know enough about all this stuff. I’m not sure one can fix this mess incrementally…. Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-06 22:08 ` Ilya Zakharevich @ 2015-03-07 8:14 ` Eli Zaretskii 2015-03-08 7:41 ` Ilya Zakharevich 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-07 8:14 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > 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. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-07 8:14 ` Eli Zaretskii @ 2015-03-08 7:41 ` Ilya Zakharevich 2015-03-08 15:51 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-08 7:41 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sat, Mar 07, 2015 at 10:14:16AM +0200, Eli Zaretskii wrote: > > 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. So this bits “identify” a subrange. Of course, nothing is said about what this actually MEANS. So I did an experiment: Cour.ttf. The following subrange is “identified”: 9 0400 - 04FF Cyrillic 0500 - 052F Cyrillic Supplement 2DE0 - 2DFF Cyrillic Extended-A A640 - A69F Cyrillic Extended-B What is actually supported: 0400 - 04FF Everything but 04d8,04d9 (Schwa, used in Cyrillic Azeri — but contemporary Azeri is written in Latin) 0500 - 052F Only 0500 - 0513, 051a - 051d supported 2DE0 - 2DFF None supported (5.1) A640 - A69F None supported (5.1 and later) Looking in DerivedAge.txt: 04D0..04EB ; 1.1 # [28] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS 0500..050F ; 3.2 # [16] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER KOMI TJE 0510..0513 ; 5.0 # [4] CYRILLIC CAPITAL LETTER REVERSED ZE..CYRILLIC SMALL LETTER EL WITH HOOK 0514..0523 ; 5.1 # [16] CYRILLIC CAPITAL LETTER LHA..CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK So two characters of 1.1 are not supported, all characters of 3.2 and 5.0 are supported, and part of 5.1 is supported. Does it look like a good indication of anything? I would say no… Do you know any other tool looking at this bitmap for choosing which font to pick up for a particular character? Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 7:41 ` Ilya Zakharevich @ 2015-03-08 15:51 ` Eli Zaretskii 2015-03-08 16:20 ` Ilya Zakharevich 0 siblings, 1 reply; 35+ messages in thread From: Eli Zaretskii @ 2015-03-08 15:51 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Sat, 7 Mar 2015 23:41:58 -0800 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > The following subrange is “identified”: > > 9 0400 - 04FF Cyrillic > 0500 - 052F Cyrillic Supplement > 2DE0 - 2DFF Cyrillic Extended-A > A640 - A69F Cyrillic Extended-B > > What is actually supported: > > 0400 - 04FF Everything but 04d8,04d9 (Schwa, used in Cyrillic Azeri — but > contemporary Azeri is written in Latin) > 0500 - 052F Only 0500 - 0513, 051a - 051d supported > 2DE0 - 2DFF None supported (5.1) > A640 - A69F None supported (5.1 and later) FWIW, on one system I use frequently (a pretty standard Windows 7 machine), the last two blocks are not supported by any font. Likewise on another system, an XP with a lot of additional fonts installed. But if I install GNU Unifont, then Emacs does use it for these blocks. So somehow we do TRT in some situations. Maybe these subranges are just a filter? > Does it look like a good indication of anything? I would say no… Do > you know any other tool looking at this bitmap for choosing which font > to pick up for a particular character? I guess by "tool" you mean a technique or algorithm that uses the font data for selecting the appropriate font? If so, no, I know very little in this area, on Windows or elsewhere. Enumerating all the glyphs would work, but is probably prohibitively expensive. ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 15:51 ` Eli Zaretskii @ 2015-03-08 16:20 ` Ilya Zakharevich 2015-03-08 17:01 ` Eli Zaretskii 0 siblings, 1 reply; 35+ messages in thread From: Ilya Zakharevich @ 2015-03-08 16:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19993 On Sun, Mar 08, 2015 at 05:51:16PM +0200, Eli Zaretskii wrote: > > What is actually supported: > > > > 0400 - 04FF Everything but 04d8,04d9 (Schwa, used in Cyrillic Azeri — but > > contemporary Azeri is written in Latin) > > 0500 - 052F Only 0500 - 0513, 051a - 051d supported > > 2DE0 - 2DFF None supported (5.1) > > A640 - A69F None supported (5.1 and later) > > FWIW, on one system I use frequently (a pretty standard Windows 7 > machine), the last two blocks are not supported by any font. Likewise > on another system, an XP with a lot of additional fonts installed. > But if I install GNU Unifont, then Emacs does use it for these blocks. > So somehow we do TRT in some situations. Maybe these subranges are > just a filter? BTW, using Unifont from unifondry is asking for trouble. And here I do not mean just your eyes (it may be good at 16pt), but the fact that it won’t interact with any other font — it claims glyphs for all the characters in all the ranges — even if it does not know the correct glyph. My build (“Unifont Smooth” on ilyaz.org/fonts) is properly behaving (at least in this regard) — and is much better for eyes in all the resolutions. > > Does it look like a good indication of anything? I would say no… Do > > you know any other tool looking at this bitmap for choosing which font > > to pick up for a particular character? > > I guess by "tool" you mean a technique or algorithm that uses the font > data for selecting the appropriate font? If so, no, I know very > little in this area, on Windows or elsewhere. Enumerating all the > glyphs would work, but is probably prohibitively expensive. Enumerating all the glyphs is exactly how all the tools I know work — at least those which can show all the characters which can be shown on a system. And so far, on Windows I found one such tool (of those not using fontconfig, like mplayer): firefox with user’s customizations from http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#There_is_no_way_to_show_Unicode_contents_on_Windows (Currently, these instructions are not reflecting the fact that Unifont Smooth became well-behaving, so may be used as a substitution font too.) Ilya ^ permalink raw reply [flat|nested] 35+ messages in thread
* bug#19993: 25.0.50; Unicode fonts defective on Windows 2015-03-08 16:20 ` Ilya Zakharevich @ 2015-03-08 17:01 ` Eli Zaretskii 0 siblings, 0 replies; 35+ messages in thread From: Eli Zaretskii @ 2015-03-08 17:01 UTC (permalink / raw) To: Ilya Zakharevich; +Cc: 19993 > Date: Sun, 8 Mar 2015 09:20:17 -0700 > From: Ilya Zakharevich <ilya@math.berkeley.edu> > Cc: 19993@debbugs.gnu.org > > BTW, using Unifont from unifondry is asking for trouble. I know. I just tried to see if Emacs will pick up a new font for a character it couldn't display before that. It did in this case, but I suspect that it might be because of what setup-default-fontset does. ^ permalink raw reply [flat|nested] 35+ messages in thread
end of thread, other threads:[~2015-03-13 7:34 UTC | newest] Thread overview: 35+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-03-03 22:02 bug#19993: 25.0.50; Unicode fonts defective on Windows Ilya Zakharevich 2015-03-04 17:59 ` Eli Zaretskii 2015-03-05 21:49 ` Ilya Zakharevich 2015-03-05 22:05 ` Ilya Zakharevich 2015-03-06 10:45 ` Eli Zaretskii 2015-03-06 11:38 ` Ilya Zakharevich 2015-03-06 14:00 ` Eli Zaretskii 2015-03-06 16:21 ` Ilya Zakharevich 2015-03-06 20:11 ` Eli Zaretskii 2015-03-06 21:12 ` Eli Zaretskii 2015-03-06 22:13 ` Ilya Zakharevich 2015-03-07 8:18 ` Eli Zaretskii 2015-03-08 7:45 ` Ilya Zakharevich 2015-03-08 15:52 ` Eli Zaretskii 2015-03-08 8:38 ` Ilya Zakharevich 2015-03-08 8:46 ` Ilya Zakharevich 2015-03-10 16:29 ` Ilya Zakharevich 2015-03-10 17:05 ` Eli Zaretskii 2015-03-10 17:41 ` Eli Zaretskii 2015-03-10 20:32 ` Ilya Zakharevich 2015-03-11 4:28 ` Eli Zaretskii 2015-03-11 19:49 ` Ilya Zakharevich 2015-03-11 20:21 ` Eli Zaretskii 2015-03-12 18:16 ` Eli Zaretskii 2015-03-13 1:52 ` Ilya Zakharevich 2015-03-13 7:34 ` Eli Zaretskii 2015-03-13 4:50 ` Ilya Zakharevich 2015-03-13 6:16 ` Eli Zaretskii 2015-03-08 15:55 ` Eli Zaretskii 2015-03-06 22:08 ` Ilya Zakharevich 2015-03-07 8:14 ` Eli Zaretskii 2015-03-08 7:41 ` Ilya Zakharevich 2015-03-08 15:51 ` Eli Zaretskii 2015-03-08 16:20 ` Ilya Zakharevich 2015-03-08 17:01 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).