* Suggest installing more fonts? @ 2020-10-16 10:54 Lars Ingebrigtsen 2020-10-16 11:07 ` Eli Zaretskii 2020-10-16 18:48 ` Stefan Monnier 0 siblings, 2 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-16 10:54 UTC (permalink / raw) To: emacs-devel This is just a stray thought: I think, over the years, the most common question users have that has an easy-to-fix solution is: "Why is Emacs displaying boxes for some of these characters I'm seeing?" The solution is "install some more fonts", of course. But could Emacs be more helpful here? That is, could we somehow, unobtrusively, tell the users this when Emacs is trying to display a character that it has no fonts for? For added helpfulness, would it be possible for Emacs to be even more specific? Like, say "sudo apt install fonts-noto-color-emoji fonts-symbola", or whatever, depending on the system. Fonts change over the years, so this would be an added maintenance burden... but they don't change a lot: New general-use fonts with good coverage aren't created very often. (Perhaps distribution packagers could also push more fonts as part of the Emacs installation, but that'd probably be more controversial.) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 10:54 Suggest installing more fonts? Lars Ingebrigtsen @ 2020-10-16 11:07 ` Eli Zaretskii 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 18:48 ` Stefan Monnier 1 sibling, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 11:07 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Fri, 16 Oct 2020 12:54:13 +0200 > > I think, over the years, the most common question users have that has an > easy-to-fix solution is: "Why is Emacs displaying boxes for some of > these characters I'm seeing?" The solution is "install some more > fonts", of course. > > But could Emacs be more helpful here? That is, could we somehow, > unobtrusively, tell the users this when Emacs is trying to display a > character that it has no fonts for? That box with the hex code is our way of telling the users that. What else can be better, given that there could be more than one such character? > For added helpfulness, would it be possible for Emacs to be even more > specific? Like, say "sudo apt install fonts-noto-color-emoji > fonts-symbola", or whatever, depending on the system. For that, you'd need a database of fonts per OS and per release (and I think on GNU systems this will have to depend on the distro as well?), and you'd need to maintain that database. Who around here knows enough about fonts on different systems to maintain such a database? > Fonts change over the years, so this would be an added maintenance > burden... but they don't change a lot: New general-use fonts with good > coverage aren't created very often. IME, the fonts do change quite a lot between releases. > (Perhaps distribution packagers could also push more fonts as part of > the Emacs installation, but that'd probably be more controversial.) Yes, it's the responsibility of the distro to make sure the necessary fonts are installed when Emacs is installed. If MS-Windows can have all the fonts to cover the supported scripts, so can GNU/Linux distros. They should make sure each Emacs user has fonts to cover all the scripts known to Emacs. I think the best we can do here is (a) add more fonts to the default fontset (it isn't trivial, as quite a few good fonts aren't free); and (b) have a command to report which of the fonts mentioned in the default fontset aren't available. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 11:07 ` Eli Zaretskii @ 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. 2020-10-16 12:50 ` Eli Zaretskii 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 13:24 ` Lars Ingebrigtsen 1 sibling, 2 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 11:30 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, emacs-devel >> But could Emacs be more helpful here? That is, could we somehow, >> unobtrusively, tell the users this when Emacs is trying to display a >> character that it has no fonts for? > > That box with the hex code is our way of telling the users that. What > else can be better, given that there could be more than one such > character? > A suggestion: would it not be better to include a version of GNU Unifont in Emacs? Instead of a box with a hex code, users would see what the character is. It is bitmapped, so users would at the same time see that the character is missing in their installed fonts. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 12:50 ` Eli Zaretskii 2020-10-16 12:59 ` Gregory Heytings via Emacs development discussions. 2020-10-16 13:24 ` Lars Ingebrigtsen 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 12:50 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Fri, 16 Oct 2020 11:30:40 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > > A suggestion: would it not be better to include a version of GNU Unifont > in Emacs? Including a font with Emacs is problematic, since installing a font requires system-wide actions. (Personally, I think Unifont is an ugly font, with many character glyphs completely illegible, and distributing is with Emacs will only cause us look unprofessional. But that's my personal view.) ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 12:50 ` Eli Zaretskii @ 2020-10-16 12:59 ` Gregory Heytings via Emacs development discussions. 2020-10-16 13:13 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 12:59 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> A suggestion: would it not be better to include a version of GNU >> Unifont in Emacs? > > Including a font with Emacs is problematic, since installing a font > requires system-wide actions. > PDF readers use the fonts embedded in PDF files, so I would guess that Emacs could use a built-in font (without installing it). > > (Personally, I think Unifont is an ugly font, with many character glyphs > completely illegible, and distributing is with Emacs will only cause us > look unprofessional. But that's my personal view.) > It is an ugly font indeed, the point is only to use it in place of the (even more ugly) boxes with a hex code. I think it is ugly "by design", it aims at a very broad coverage without becoming too large. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 12:59 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 13:13 ` Eli Zaretskii 2020-10-16 14:38 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 13:13 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Fri, 16 Oct 2020 12:59:47 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > >> A suggestion: would it not be better to include a version of GNU > >> Unifont in Emacs? > > > > Including a font with Emacs is problematic, since installing a font > > requires system-wide actions. > > PDF readers use the fonts embedded in PDF files, so I would guess that > Emacs could use a built-in font (without installing it). This is not currently supported, AFAIK: Emacs uses the likes of Fontconfig facilities to search for suitable fonts given a character. > > (Personally, I think Unifont is an ugly font, with many character glyphs > > completely illegible, and distributing is with Emacs will only cause us > > look unprofessional. But that's my personal view.) > > It is an ugly font indeed, the point is only to use it in place of the > (even more ugly) boxes with a hex code. I think it is ugly "by design", > it aims at a very broad coverage without becoming too large. You know it and I know it, but most users won't. They will just see the ugly glyphs. Whether that is less or more ugly than the "tofu" we show is in the eyes of the beholder; my personal opinion is above. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 13:13 ` Eli Zaretskii @ 2020-10-16 14:38 ` Gregory Heytings via Emacs development discussions. 2020-10-16 15:48 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 14:38 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >>> (Personally, I think Unifont is an ugly font, with many character >>> glyphs completely illegible, and distributing is with Emacs will only >>> cause us look unprofessional. But that's my personal view.) >> >> It is an ugly font indeed, the point is only to use it in place of the >> (even more ugly) boxes with a hex code. I think it is ugly "by >> design", it aims at a very broad coverage without becoming too large. > > You know it and I know it, but most users won't. They will just see the > ugly glyphs. Whether that is less or more ugly than the "tofu" we show > is in the eyes of the beholder; my personal opinion is above. > Another thought on this: to avoid "looking unprofessional", a help-echo property could be added on these characters, saying something like "Warning: no font installed for this character". So the user would see an ugly (but often recognizable) character, and at the same time would be warned that they need to do something to see it better. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 14:38 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 15:48 ` Eli Zaretskii 2020-10-16 16:09 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 15:48 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Fri, 16 Oct 2020 14:38:04 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > Another thought on this: to avoid "looking unprofessional", a help-echo > property could be added on these characters, saying something like > "Warning: no font installed for this character". So the user would see an > ugly (but often recognizable) character, and at the same time would be > warned that they need to do something to see it better. Yes, Lars suggested that as well. But we have to be careful: too many such properties or overlays will slow down redisplay. Also, we'd need to see how to do this technically, since characters that have no fonts are discovered during redisplay. Perhaps some jit-lock registered function could detect them after redisplay, and put the properties on some of them (which ones?). ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 15:48 ` Eli Zaretskii @ 2020-10-16 16:09 ` Gregory Heytings via Emacs development discussions. 2020-10-16 18:48 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 16:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> Another thought on this: to avoid "looking unprofessional", a help-echo >> property could be added on these characters, saying something like >> "Warning: no font installed for this character". So the user would see >> an ugly (but often recognizable) character, and at the same time would >> be warned that they need to do something to see it better. > > Yes, Lars suggested that as well. But we have to be careful: too many > such properties or overlays will slow down redisplay. Also, we'd need > to see how to do this technically, since characters that have no fonts > are discovered during redisplay. Perhaps some jit-lock registered > function could detect them after redisplay, and put the properties on > some of them (which ones?). > I think I see what you mean: characters that have no fonts are discovered during redisplay, and at that moment it's too late to add text properties, which are not supposed to change anymore. It might be possible to add a special help-echo like property that would be added at the moment these characters are discovered, for example in produce_glyphless_glyph(). I don't think there would be "too many" such properties, it seems safe to assume that in general such characters follow each other and form a "block", and a single text property would be enough for one such block. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 16:09 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 18:48 ` Eli Zaretskii 2020-10-16 19:40 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 18:48 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Fri, 16 Oct 2020 16:09:35 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > I think I see what you mean: characters that have no fonts are discovered > during redisplay, and at that moment it's too late to add text properties, > which are not supposed to change anymore. It might be possible to add a > special help-echo like property that would be added at the moment these > characters are discovered, for example in produce_glyphless_glyph(). I don't recommend this, it is tricky and might cause problems. Instead, it is much easier to have a feature implemented in Lisp that would detect characters with no font glyphs and put help-echo on them. We have infrastructure for such features in jit-lock.el. > I don't think there would be "too many" such properties, it seems safe to > assume that in general such characters follow each other and form a > "block", and a single text property would be enough for one such block. It is okay to assume, but I'd still prefer that we also check that the assumption holds, and if so, do something to keep the number of properties in check. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 18:48 ` Eli Zaretskii @ 2020-10-16 19:40 ` Stefan Monnier 2020-10-17 6:57 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-16 19:40 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Gregory Heytings, larsi, emacs-devel > Instead, it is much easier to have a feature implemented in Lisp that > would detect characters with no font glyphs and put help-echo on them. > We have infrastructure for such features in jit-lock.el. Indeed. And we can make this very efficient if the redisplay stashes in some Lisp var the chars-with-locations of the tofu it generates. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:40 ` Stefan Monnier @ 2020-10-17 6:57 ` Eli Zaretskii 2020-10-17 13:49 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 6:57 UTC (permalink / raw) To: Stefan Monnier; +Cc: ghe, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: Gregory Heytings <ghe@sdf.org>, larsi@gnus.org, emacs-devel@gnu.org > Date: Fri, 16 Oct 2020 15:40:11 -0400 > > > Instead, it is much easier to have a feature implemented in Lisp that > > would detect characters with no font glyphs and put help-echo on them. > > We have infrastructure for such features in jit-lock.el. > > Indeed. And we can make this very efficient if the redisplay stashes > in some Lisp var the chars-with-locations of the tofu it generates. I think relying on such a trace variable would be unreliable, because you can never predict which parts of the window will be actually redisplayed, and the display engine can only leave the trace about those parts where it tried to find a font glyph for a character. Emacs already knows not to search the available fonts for a character that it already tried to display and failed to find a suitable font. We should probably reuse the information which says a character doesn't have a font for finding such characters and marking them. It cannot be too expensive, I think. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 6:57 ` Eli Zaretskii @ 2020-10-17 13:49 ` Stefan Monnier 2020-10-17 14:08 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-17 13:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, emacs-devel > Emacs already knows not to search the available fonts for a character > that it already tried to display and failed to find a suitable font. > We should probably reuse the information which says a character > doesn't have a font for finding such characters and marking them. I assumed that Emacs knows it's choosing "tofu" for any particular glyph, regardless if that's the result of a long search or the reuse of some previous search. If it doesn't (e.g. it just reuses "the same glyph as last time this char was used with this face"), then indeed it might be a bit more tricky, but I'm sure it can be made acceptably cheap (both in terms of memory&CPU resources and in terms of code complexity). Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 13:49 ` Stefan Monnier @ 2020-10-17 14:08 ` Eli Zaretskii 2020-10-17 15:04 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 14:08 UTC (permalink / raw) To: Stefan Monnier; +Cc: ghe, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: ghe@sdf.org, larsi@gnus.org, emacs-devel@gnu.org > Date: Sat, 17 Oct 2020 09:49:09 -0400 > > > Emacs already knows not to search the available fonts for a character > > that it already tried to display and failed to find a suitable font. > > We should probably reuse the information which says a character > > doesn't have a font for finding such characters and marking them. > > I assumed that Emacs knows it's choosing "tofu" for any particular > glyph, regardless if that's the result of a long search or the reuse of > some previous search. The glyph information (assuming you mean 'struct glyph') is ephemeral, and is not recorded between redisplay cycles. It stays stored in the "current" glyph matrix, but Emacs almost never consults that for anything except comparison with "desired" matrix, because the current matrix can easily become outdated. > If it doesn't (e.g. it just reuses "the same glyph as last time this > char was used with this face"), then indeed it might be a bit more > tricky, but I'm sure it can be made acceptably cheap (both in terms of > memory&CPU resources and in terms of code complexity). AFAIR, this is indeed based on face information (and the fact that there's no font is recorded in the face struct), but these faces aren't exposed to Lisp, they are created and used internally. Still, the information should be reachable, I think. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 14:08 ` Eli Zaretskii @ 2020-10-17 15:04 ` Stefan Monnier 2020-10-17 15:18 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-17 15:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, emacs-devel > The glyph information (assuming you mean 'struct glyph') is ephemeral, > and is not recorded between redisplay cycles. It stays stored in the > "current" glyph matrix, but Emacs almost never consults that for > anything except comparison with "desired" matrix, because the current > matrix can easily become outdated. I didn't mean "struct glyph", no. I was thinking about putting a test in the place where we *draw* a tofu char. I can't find that code right now, tho, so I don't know if that would be workable. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 15:04 ` Stefan Monnier @ 2020-10-17 15:18 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 15:18 UTC (permalink / raw) To: Stefan Monnier; +Cc: ghe, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: ghe@sdf.org, larsi@gnus.org, emacs-devel@gnu.org > Date: Sat, 17 Oct 2020 11:04:23 -0400 > > I didn't mean "struct glyph", no. I was thinking about putting a test > in the place where we *draw* a tofu char. I can't find that code right > now, tho, so I don't know if that would be workable. The code is in xdisp.c:produce_glyphless_glyph. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. 2020-10-16 12:50 ` Eli Zaretskii @ 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 14:08 ` Gregory Heytings via Emacs development discussions. 1 sibling, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-16 13:24 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel Gregory Heytings <ghe@sdf.org> writes: > A suggestion: would it not be better to include a version of GNU > Unifont in Emacs? The Unifont is so bad that I think that's even worse than showing tofu. :-/ -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 13:24 ` Lars Ingebrigtsen @ 2020-10-16 14:08 ` Gregory Heytings via Emacs development discussions. 2020-10-16 15:34 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 14:08 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel >> A suggestion: would it not be better to include a version of GNU >> Unifont in Emacs? > > The Unifont is so bad that I think that's even worse than showing tofu. > :-/ > Okay, you and Eli both think that it's "just too ugly". Perhaps there is another font that covers (at least) the complete BMP that could be included in Emacs? About "showing tofu" vs "ugly font", I think that giving users a clear indication about the language is useful. Something with which they can see for example "it's chinese, so if I want to see this I need to install a font with chinese characters". ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 14:08 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 15:34 ` Eli Zaretskii 2020-10-16 15:51 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 15:34 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Fri, 16 Oct 2020 14:08:40 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > > Perhaps there is another font that covers (at least) the complete BMP that > could be included in Emacs? The BMP is not enough these days. E.g., many Emoji is outside of it, as are many newly introduced scripts. Unifont supports much more than the BMP. It is unusual for a single font to support many different scripts, certainly not the amount that Unifont supports. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 15:34 ` Eli Zaretskii @ 2020-10-16 15:51 ` Gregory Heytings via Emacs development discussions. 0 siblings, 0 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 15:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> Perhaps there is another font that covers (at least) the complete BMP >> that could be included in Emacs? > > The BMP is not enough these days. E.g., many Emoji is outside of it, as > are many newly introduced scripts. > > Unifont supports much more than the BMP. > Yes, I know: I wrote "at least" ;-) > > It is unusual for a single font to support many different scripts, > certainly not the amount that Unifont supports. > Hence the idea of Unifont + help-echo warning. The users see something they can decypher, and are warned that they need to do something to see it better. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 11:07 ` Eli Zaretskii 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 13:30 ` Rudolf Schlatte 2020-10-16 14:41 ` Eli Zaretskii 1 sibling, 2 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-16 13:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> For added helpfulness, would it be possible for Emacs to be even more >> specific? Like, say "sudo apt install fonts-noto-color-emoji >> fonts-symbola", or whatever, depending on the system. > > For that, you'd need a database of fonts per OS and per release (and I > think on GNU systems this will have to depend on the distro as well?), > and you'd need to maintain that database. Who around here knows > enough about fonts on different systems to maintain such a database? To have perfect coverage, we'd need to do a lot of work. But we don't have to have that, so we don't need to do that much work. Having a list of nice fonts with good coverage for, say, the five most significant operating systems, should be a list of less than thirty font packages. >> Fonts change over the years, so this would be an added maintenance >> burden... but they don't change a lot: New general-use fonts with good >> coverage aren't created very often. > > IME, the fonts do change quite a lot between releases. The fonts change, but the number of fonts we care about doesn't. > I think the best we can do here is (a) add more fonts to the default > fontset (it isn't trivial, as quite a few good fonts aren't free); and > (b) have a command to report which of the fonts mentioned in the > default fontset aren't available. There's still the issue of letting them know what the issue is. Clearly, showing them tofu isn't enough, because the issue comes up again and again. Popping up a warning buffer (at the first time tofu is displayed per session) may be OK, but could be annoying? However, our warning buffers now have buttons to easily disable the warning permanently, so it might be OK. Displaying a message in the echo area (again, only the first time we tofu in a session) saying something like "Unable to display character; type `C-h TO-BE-DETERMINED' for more information" might also be an option. Or... adding help echo text props to tofu? We give non-character bytes in a buffer a special font, so that would be kinda analogous. I think there's probably plenty of opportunity here to be more helpful to the users. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 13:24 ` Lars Ingebrigtsen @ 2020-10-16 13:30 ` Rudolf Schlatte 2020-10-17 6:14 ` Lars Ingebrigtsen 2020-10-16 14:41 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Rudolf Schlatte @ 2020-10-16 13:30 UTC (permalink / raw) To: emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >> I think the best we can do here is (a) add more fonts to the default >> fontset (it isn't trivial, as quite a few good fonts aren't free); and >> (b) have a command to report which of the fonts mentioned in the >> default fontset aren't available. > > There's still the issue of letting them know what the issue is. > Clearly, showing them tofu isn't enough, because the issue comes up > again and again. > > Popping up a warning buffer (at the first time tofu is displayed per > session) may be OK, but could be annoying? However, our warning buffers > now have buttons to easily disable the warning permanently, so it might > be OK. > > Displaying a message in the echo area (again, only the first time we > tofu in a session) saying something like "Unable to display character; > type `C-h TO-BE-DETERMINED' for more information" might also be an > option. > > Or... adding help echo text props to tofu? We give non-character bytes > in a buffer a special font, so that would be kinda analogous. Adding information about which font carries the missing glyph to the screen displayed with ‘C-u C-x =’ would be a possibility. Rudi ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 13:30 ` Rudolf Schlatte @ 2020-10-17 6:14 ` Lars Ingebrigtsen 0 siblings, 0 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-17 6:14 UTC (permalink / raw) To: Rudolf Schlatte; +Cc: emacs-devel Rudolf Schlatte <rudi@constantly.at> writes: > Adding information about which font carries the missing glyph to the > screen displayed with ‘C-u C-x =’ would be a possibility. Yes, that's a good idea. If we want to warn users using `message' (only once per session), the message could then be "Couldn't find font, use `C-u C-x =' on the character for more information" or something. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 13:30 ` Rudolf Schlatte @ 2020-10-16 14:41 ` Eli Zaretskii 2020-10-17 6:23 ` Lars Ingebrigtsen 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 14:41 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Fri, 16 Oct 2020 15:24:00 +0200 > > > For that, you'd need a database of fonts per OS and per release (and I > > think on GNU systems this will have to depend on the distro as well?), > > and you'd need to maintain that database. Who around here knows > > enough about fonts on different systems to maintain such a database? > > To have perfect coverage, we'd need to do a lot of work. But we don't > have to have that, so we don't need to do that much work. > > Having a list of nice fonts with good coverage for, say, the five most > significant operating systems, should be a list of less than thirty > font packages. I doubt it's as few as 30, assuming we want to cover every living script and some popular dead ones. But the only way to be sure how many is to do the work and come up with the list of such fonts. then we will see. > >> Fonts change over the years, so this would be an added maintenance > >> burden... but they don't change a lot: New general-use fonts with good > >> coverage aren't created very often. > > > > IME, the fonts do change quite a lot between releases. > > The fonts change, but the number of fonts we care about doesn't. Since the fonts change, we will need to change the list. > Popping up a warning buffer (at the first time tofu is displayed per > session) may be OK That's not doable, because you cannot pop up anything in the middle of redisplay. We could perhaps use the delayed-warnings mechanism, but is that sufficient? > Displaying a message in the echo area (again, only the first time we > tofu in a session) saying something like "Unable to display character; > type `C-h TO-BE-DETERMINED' for more information" might also be an > option. Not from redisplay, we cannot do that. > Or... adding help echo text props to tofu? To each one of them? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 14:41 ` Eli Zaretskii @ 2020-10-17 6:23 ` Lars Ingebrigtsen 2020-10-17 8:55 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-17 6:23 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > I doubt it's as few as 30, assuming we want to cover every living > script and some popular dead ones. I don't think we do, really. Listing the major fonts in a help text like this would be sufficient. >> Popping up a warning buffer (at the first time tofu is displayed per >> session) may be OK > > That's not doable, because you cannot pop up anything in the middle of > redisplay. We could perhaps use the delayed-warnings mechanism, but > is that sufficient? I think so. >> Displaying a message in the echo area (again, only the first time we >> tofu in a session) saying something like "Unable to display character; >> type `C-h TO-BE-DETERMINED' for more information" might also be an >> option. > > Not from redisplay, we cannot do that. Not directly, but we could add a mechanism for making Emacs do that. I.e., as with delayed-warnings, we could add a list of actions to be performed after redisplay is over... I.e., generalise delayed-warnings somewhat. >> Or... adding help echo text props to tofu? > > To each one of them? That's probably overkill. Say, the first 100 of those in a buffer? Only the first? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 6:23 ` Lars Ingebrigtsen @ 2020-10-17 8:55 ` Eli Zaretskii 2020-10-18 8:03 ` Lars Ingebrigtsen 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 8:55 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Sat, 17 Oct 2020 08:23:22 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > I doubt it's as few as 30, assuming we want to cover every living > > script and some popular dead ones. > > I don't think we do, really. Listing the major fonts in a help text > like this would be sufficient. Then I really don't understand the goal here, because I think the problems people report are never about "the major fonts" or the "usual" scripts -- those are well covered by our default fontset. Do you have any evidence that we have such fundamental problems with our fontset setup? If so, can you point me to the relevant reports and discussions? > >> Popping up a warning buffer (at the first time tofu is displayed per > >> session) may be OK > > > > That's not doable, because you cannot pop up anything in the middle of > > redisplay. We could perhaps use the delayed-warnings mechanism, but > > is that sufficient? > > I think so. Before we implement something like that, we should be reasonably certain it will not annoy most users (not only power users). It is entirely legitimate to leave some of the Unicode blocks uncovered by the fonts you have installed, and having Emacs display warnings about that might be annoying. OTOH, such a feature must be turned on by default, otherwise it will not do its job. So knowing whether users will welcome this is important, IMO. > >> Or... adding help echo text props to tofu? > > > > To each one of them? > > That's probably overkill. Say, the first 100 of those in a buffer? > Only the first? It cannot be the first in a buffer, it should be in the window, because otherwise it might not be visible. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 8:55 ` Eli Zaretskii @ 2020-10-18 8:03 ` Lars Ingebrigtsen 2020-10-18 15:21 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-18 8:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Then I really don't understand the goal here, because I think the > problems people report are never about "the major fonts" or the > "usual" scripts -- those are well covered by our default fontset. I was just thinking about listing fonts like DejaVu Sans and Noto (with a wide support for many scripts), not smaller language-specific fonts. And Symbola? > Before we implement something like that, we should be reasonably > certain it will not annoy most users (not only power users). It is > entirely legitimate to leave some of the Unicode blocks uncovered by > the fonts you have installed, and having Emacs display warnings about > that might be annoying. OTOH, such a feature must be turned on by > default, otherwise it will not do its job. So knowing whether users > will welcome this is important, IMO. We display a button in warning buffers saying "Click here to switch the warning off", so I think the annoyance factor would be somewhat limited. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-18 8:03 ` Lars Ingebrigtsen @ 2020-10-18 15:21 ` Eli Zaretskii 2020-10-19 8:31 ` Lars Ingebrigtsen 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-18 15:21 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Sun, 18 Oct 2020 10:03:25 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > Then I really don't understand the goal here, because I think the > > problems people report are never about "the major fonts" or the > > "usual" scripts -- those are well covered by our default fontset. > > I was just thinking about listing fonts like DejaVu Sans and Noto (with > a wide support for many scripts), not smaller language-specific fonts. > And Symbola? > > > Before we implement something like that, we should be reasonably > > certain it will not annoy most users (not only power users). It is > > entirely legitimate to leave some of the Unicode blocks uncovered by > > the fonts you have installed, and having Emacs display warnings about > > that might be annoying. OTOH, such a feature must be turned on by > > default, otherwise it will not do its job. So knowing whether users > > will welcome this is important, IMO. > > We display a button in warning buffers saying "Click here to switch the > warning off", so I think the annoyance factor would be somewhat limited. So what is the proposal in more practical terms? We want redisplay to leave some information in a buffer-local variable regarding some buffer positions where no font could be found, and then we will display a message saying something like "Characters detected for which there is no font (buffer positions NN, MM, XX, YY); suggest to install additional fonts"? Is that the proposal. If so, will we also mention specific fonts, and if so, which ones? Should we also make sure those fonts are not already installed? Btw, I've looked at browsers, and they just display tofu or an empty rectangle without any message in this case. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-18 15:21 ` Eli Zaretskii @ 2020-10-19 8:31 ` Lars Ingebrigtsen 2020-10-19 14:50 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-19 8:31 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > So what is the proposal in more practical terms? We want redisplay to > leave some information in a buffer-local variable regarding some > buffer positions where no font could be found, and then we will > display a message saying something like "Characters detected for which > there is no font (buffer positions NN, MM, XX, YY); suggest to install > additional fonts"? Is that the proposal. Yes, or "Characters detected for which there is no font; `C-h C-F' for more information", and that would be a new command that'd look for tofu in the buffer. (In which case we don't need the variable, but just a delayed warning, because the new command could do the analysis, perhaps.) > If so, will we also mention specific fonts, and if so, which ones? > Should we also make sure those fonts are not already installed? If we can, that'd be nice. We do already know (based on the Unicode data) what scripts the characters are from? So we could at least list that, and then expand the help, if we have the stamina, to also include some fonts. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-19 8:31 ` Lars Ingebrigtsen @ 2020-10-19 14:50 ` Eli Zaretskii 2020-10-20 10:28 ` Lars Ingebrigtsen 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-19 14:50 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Mon, 19 Oct 2020 10:31:29 +0200 > > > If so, will we also mention specific fonts, and if so, which ones? > > Should we also make sure those fonts are not already installed? > > If we can, that'd be nice. We do already know (based on the Unicode > data) what scripts the characters are from? Yes, evaluate (aref char-script-table CHAR) for any CHAR. > So we could at least list that, and then expand the help, if we have > the stamina, to also include some fonts. This I don't think I understand, at least not fully. We can show the script and suggest to install some font that covers that script, this is clear. But what did you mean by "and include some fonts"? name some specific fonts? how can we do that when the fonts aren't installed? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-19 14:50 ` Eli Zaretskii @ 2020-10-20 10:28 ` Lars Ingebrigtsen 2020-10-20 14:31 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-20 10:28 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> So we could at least list that, and then expand the help, if we have >> the stamina, to also include some fonts. > > This I don't think I understand, at least not fully. We can show the > script and suggest to install some font that covers that script, this > is clear. But what did you mean by "and include some fonts"? name > some specific fonts? how can we do that when the fonts aren't > installed? That's where the stamina comes in -- we'd have to maintain a list of fonts that we think are nice for the scripts in question. How extensive, of course, depends on how much work we want to put into it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-20 10:28 ` Lars Ingebrigtsen @ 2020-10-20 14:31 ` Eli Zaretskii 2020-10-21 10:46 ` Lars Ingebrigtsen 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-20 14:31 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Tue, 20 Oct 2020 12:28:14 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> So we could at least list that, and then expand the help, if we have > >> the stamina, to also include some fonts. > > > > This I don't think I understand, at least not fully. We can show the > > script and suggest to install some font that covers that script, this > > is clear. But what did you mean by "and include some fonts"? name > > some specific fonts? how can we do that when the fonts aren't > > installed? > > That's where the stamina comes in -- we'd have to maintain a list of > fonts that we think are nice for the scripts in question. How > extensive, of course, depends on how much work we want to put into it. That brings us back to the issue of how many fonts for how many different system configurations will we need to know about and have up-to-date information. I think nowadays it should be enough to say something like "we recommend to install a font for displaying the TaiViet script", it is easy to find fonts with this information. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-20 14:31 ` Eli Zaretskii @ 2020-10-21 10:46 ` Lars Ingebrigtsen 2020-10-21 11:31 ` Michael Albinus ` (2 more replies) 0 siblings, 3 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-21 10:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > I think nowadays it should be enough to say something like "we > recommend to install a font for displaying the TaiViet script", it is > easy to find fonts with this information. Well, yes and no. "apt search font | grep viet" gives me no matches on this Debian system. I've been frustrated by this before, and I've resorted to saying "apt install fonts-*' or something, which isn't really ideal, so if Emacs could provide some guidance here (without us having to maintain a never-ending list of fonts), I think that would be helpful. I just looked at the HELLO file on this system, and these are the fonts that Emacs has chosen (there's no tofu in the buffer): Unifont DejaVu Sans Mono Various things from the Noto Serif/Noto Sans family of fonts -- I think they're all from the fonts-noto-core and fonts-noto-extra packages Symbola FreeSerif Plus daewoo, for Korean. So that'd be just about all the fonts (and possibly packages) we'd have to mention on the font help page. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 10:46 ` Lars Ingebrigtsen @ 2020-10-21 11:31 ` Michael Albinus 2020-10-21 11:58 ` Stefan Kangas ` (2 more replies) 2020-10-21 11:59 ` Basil L. Contovounesios 2020-10-21 14:47 ` Eli Zaretskii 2 siblings, 3 replies; 118+ messages in thread From: Michael Albinus @ 2020-10-21 11:31 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: Hi Lars, > I've been frustrated by this before, and I've resorted to saying "apt > install fonts-*' or something, which isn't really ideal, so if Emacs > could provide some guidance here (without us having to maintain a > never-ending list of fonts), I think that would be helpful. > > I just looked at the HELLO file on this system, and these are the fonts > that Emacs has chosen (there's no tofu in the buffer): See recent discussion in bug#43887. In order to see all symbols in etc/HELLO, I had to apply on Ubuntu 20.04 $ sudo apt-get install fonts-noto-core On Fedora 32, I have applied $ sudo yum install google-noto-sans-javanese-fonts google-noto-sans-tai-viet-fonts Likely, this works also for the other Debian and Red Hat derivates. However, I don't know whether we want to recommend Google Noto fonts <https://www.google.com/get/noto/>. They use the Open Font License 1.1 <https://github.com/googlefonts/noto-fonts/>, but I don't know whether this license counts as free. In Emacs, the file INSTALL recommends to install intlfonts-VERSION.tar.gz. Might be sufficient, but without further instruction I doubt every Emacs user will be able to follow. > So that'd be just about all the fonts (and possibly packages) we'd have > to mention on the font help page. And/or better instructions in the INSTALL file. Best regards, Michael. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 11:31 ` Michael Albinus @ 2020-10-21 11:58 ` Stefan Kangas 2020-10-21 14:54 ` Eli Zaretskii 2020-10-21 17:25 ` Juri Linkov 2 siblings, 0 replies; 118+ messages in thread From: Stefan Kangas @ 2020-10-21 11:58 UTC (permalink / raw) To: Michael Albinus, Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel Michael Albinus <michael.albinus@gmx.de> writes: > However, I don't know whether we want to recommend Google Noto fonts > <https://www.google.com/get/noto/>. They use the Open Font License 1.1 > <https://github.com/googlefonts/noto-fonts/>, but I don't know whether > this license counts as free. The full name of its license is SIL Open Font License 1.1, and: "The Open Font License (including its original release, version 1.0) is a free copyleft license for fonts. Its only unusual requirement is that when selling the font, you must redistribute it bundled with some software, rather than alone. Since a simple Hello World program will satisfy the requirement, it is harmless. Neither we nor SIL recommend the use of this license for anything other than fonts." https://www.gnu.org/licenses/license-list.html#SILOFL ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 11:31 ` Michael Albinus 2020-10-21 11:58 ` Stefan Kangas @ 2020-10-21 14:54 ` Eli Zaretskii 2020-10-21 16:03 ` tofu-help-mode (was: Suggest installing more fonts?) Stefan Monnier 2020-10-21 17:46 ` Suggest installing more fonts? Michael Albinus 2020-10-21 17:25 ` Juri Linkov 2 siblings, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-21 14:54 UTC (permalink / raw) To: Michael Albinus; +Cc: larsi, emacs-devel > From: Michael Albinus <michael.albinus@gmx.de> > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > Date: Wed, 21 Oct 2020 13:31:01 +0200 > > In Emacs, the file INSTALL recommends to install > intlfonts-VERSION.tar.gz. Might be sufficient, but without further > instruction I doubt every Emacs user will be able to follow. intlfonts are bitmapped (BDF) fonts, so I don't think nowadays they will be considered as a satisfactory solution. They are GNU software, but otherwise I see no reason to advertise them today. > And/or better instructions in the INSTALL file. Yes, for those who still read those files. ^ permalink raw reply [flat|nested] 118+ messages in thread
* tofu-help-mode (was: Suggest installing more fonts?) 2020-10-21 14:54 ` Eli Zaretskii @ 2020-10-21 16:03 ` Stefan Monnier 2020-10-22 12:07 ` tofu-help-mode Lars Ingebrigtsen 2020-10-21 17:46 ` Suggest installing more fonts? Michael Albinus 1 sibling, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-21 16:03 UTC (permalink / raw) To: emacs-devel BTW, for those interested, here's a proof-of-concept. I don't intend to work much more on this (except maybe for the `post-redisplay-functions` part which might be useful on its own), so I'd encourage someone else to take it over from here if they'd like to see it turn into something usable. Stefan diff --git a/lisp/simple.el b/lisp/simple.el index ef519aa2cb..647ffd7320 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -6342,6 +6342,48 @@ redisplay--pre-redisplay-functions (add-function :before pre-redisplay-function #'redisplay--pre-redisplay-functions) +(defvar post-redisplay-functions nil + "Hook run just after redisplay. +It is called in each window that has been redisplayed. It takes one argument, +which is the window that was redisplayed. When run, the `current-buffer' +is set to the buffer displayed in that window.") + +(defun redisplay--post-redisplay-functions (windows) + (with-demoted-errors "redisplay--post-redisplay-functions: %S" + (if (null windows) + (with-current-buffer (window-buffer (selected-window)) + (run-hook-with-args 'post-redisplay-functions (selected-window))) + (dolist (win (if (listp windows) windows (window-list-1 nil nil t))) + (with-current-buffer (window-buffer win) + (run-hook-with-args 'post-redisplay-functions win)))))) + +(add-function :before post-redisplay-function + #'redisplay--post-redisplay-functions) + +(defun tofu-help--post-redisplay (_window) + (declare-function describe-char-display "descr-text" (pos char)) + (while (consp redisplay-tofu) + (let* ((pos (pop redisplay-tofu)) + (char (if (< pos (point-max)) (char-after pos)))) + ;; Don't hide pre-existing help-echo. + (unless (or (null char) + (get-text-property pos 'help-echo) + (describe-char-display pos char)) + (with-silent-modifications + (put-text-property pos (1+ pos) 'help-echo + (or (get-char-code-property char 'name) + (get-char-code-property char 'old-name) + "This is unknown TOFU!"))))))) + +(define-minor-mode tofu-help-mode + "Add help-echo on TOFU chars." + :lighter nil + (kill-local-variable 'redisplay-tofu) + (remove-hook 'post-redisplay-functions #'tofu-help--post-redisplay t) + (when tofu-help-mode + (require 'descr-text) ;For describe-char-display + (setq-local redisplay-tofu nil) + (add-hook 'post-redisplay-functions #'tofu-help--post-redisplay nil t))) (defvar-local mark-ring nil "The list of former marks of the current buffer, most recent first.") diff --git a/src/xdisp.c b/src/xdisp.c index 4086eef9d0..e5559774b8 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -7333,6 +7333,18 @@ #define CHAR_COMPOSED_P(IT,CHARPOS,BYTEPOS,END_CHARPOS) \ (IT)->face_id), \ (IT)->string))) +static void +record_tofu (struct it *it) +{ + if (!EQ (Vredisplay_tofu, Qt)) + { + Lisp_Object pos = make_fixnum (IT_CHARPOS (*it)); + /* FIXME: If the user sets `redisplay-tofu' to a value that's + neither t nor a proper list, this signals an error! */ + if (NILP (Fmemq (pos, Vredisplay_tofu))) + Vredisplay_tofu = Fcons (pos, Vredisplay_tofu); + } +} /* Lookup the char-table Vglyphless_char_display for character C (-1 if we want information for no-font case), and return the display @@ -7382,7 +7394,10 @@ lookup_glyphless_char_display (int c, struct it *it) else if (EQ (glyphless_method, Qempty_box)) it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; else if (EQ (glyphless_method, Qhex_code)) - it->glyphless_method = GLYPHLESS_DISPLAY_HEX_CODE; + { + record_tofu (it); + it->glyphless_method = GLYPHLESS_DISPLAY_HEX_CODE; + } else if (STRINGP (glyphless_method)) it->glyphless_method = GLYPHLESS_DISPLAY_ACRONYM; else @@ -15514,6 +15529,7 @@ #define RESUME_POLLING \ static int redisplay_window_wcounter; static int redisplay_window_bcounter; static int redisplay_window_fcounter; +static Lisp_Object redisplayed_windows; /* Perhaps in the future avoid recentering windows if it is not necessary; currently that causes some problems. */ @@ -16016,9 +16032,13 @@ #define AINC(a,i) \ redisplay_window_bcounter = 0; redisplay_window_fcounter = 0; redisplay_window_wcounter = 0; + redisplayed_windows = Qt; if (consider_all_windows_p) { + if (REDISPLAY_SOME_P ()) + redisplayed_windows = Qnil; + FOR_EACH_FRAME (tail, frame) XFRAME (frame)->updated_p = false; @@ -16328,6 +16348,10 @@ #define AINC(a,i) \ request_sigio (); RESUME_POLLING; + if (FUNCTIONP (Vpost_redisplay_function)) + safe__call1 (true, Vpost_redisplay_function, + consider_all_windows_p ? redisplayed_windows : Qnil); + /* If a frame has become visible which was not before, redisplay again, so that we display it. Expose events for such a frame (which it gets when becoming visible) don't call the parts of @@ -18422,6 +18446,9 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) && BUF_PT (buffer) == w->last_point) return; + if (!EQ (redisplayed_windows, Qt)) + redisplayed_windows = Fcons (window, redisplayed_windows); + if (w->redisplay) redisplay_window_wcounter++; if (f->redisplay) @@ -29696,7 +29723,7 @@ compute_relative_width (struct it *it, Lisp_Object prop) it2 = *it; if (it->multibyte_p) - it2.c = it2.char_to_display = string_char_and_length (p, it2.len); + it2.c = it2.char_to_display = string_char_and_length (p, &it2.len); else { it2.c = it2.char_to_display = *p, it2.len = 1; @@ -34683,6 +34710,9 @@ syms_of_xdisp (void) Vmessage_stack = Qnil; staticpro (&Vmessage_stack); + redisplayed_windows = Qt; + staticpro (&redisplayed_windows); + /* Non-nil means don't actually do any redisplay. */ DEFSYM (Qinhibit_redisplay, "inhibit-redisplay"); @@ -35544,6 +35574,13 @@ syms_of_xdisp (void) or t (meaning all windows). */); Vpre_redisplay_function = intern ("ignore"); + DEFVAR_LISP ("post-redisplay-function", Vpost_redisplay_function, + doc: /* Function run just after redisplay. +It is called with one argument, which is the set of windows that have been +redisplayed. This set can be nil (meaning, only the selected window), +or t (meaning all windows). */); + Vpost_redisplay_function = intern ("ignore"); + /* Symbol for the purpose of Vglyphless_char_display. */ DEFSYM (Qglyphless_char_display, "glyphless-char-display"); Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_fixnum (1)); @@ -35614,6 +35651,10 @@ syms_of_xdisp (void) doc: /* */); Vredisplay__touched_fcounts = Fmake_hash_table (0, NULL); + DEFVAR_LISP ("redisplay-tofu", Vredisplay_tofu, + doc: /* */); + Vredisplay_tofu = Qt; + DEFVAR_BOOL ("redisplay--inhibit-bidi", redisplay__inhibit_bidi, doc: /* Non-nil means it is not safe to attempt bidi reordering for display. */); /* Initialize to t, since we need to disable reordering until ^ permalink raw reply related [flat|nested] 118+ messages in thread
* Re: tofu-help-mode 2020-10-21 16:03 ` tofu-help-mode (was: Suggest installing more fonts?) Stefan Monnier @ 2020-10-22 12:07 ` Lars Ingebrigtsen 2020-10-22 15:21 ` tofu-help-mode Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-22 12:07 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > BTW, for those interested, here's a proof-of-concept. > > I don't intend to work much more on this (except maybe for the > `post-redisplay-functions` part which might be useful on its own), so > I'd encourage someone else to take it over from here if they'd like to > see it turn into something usable. Reading the code, it looks like everything is there, except expanding on this: > + (put-text-property pos (1+ pos) 'help-echo > + (or (get-char-code-property char 'name) > + (get-char-code-property char 'old-name) > + "This is unknown TOFU!"))))))) And adding some documentation and NEWS and stuff, of course. If you push this to the trunk, I can take it from there... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: tofu-help-mode 2020-10-22 12:07 ` tofu-help-mode Lars Ingebrigtsen @ 2020-10-22 15:21 ` Stefan Monnier 2020-10-23 10:46 ` tofu-help-mode Lars Ingebrigtsen 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-22 15:21 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel >> I don't intend to work much more on this (except maybe for the >> `post-redisplay-functions` part which might be useful on its own), so >> I'd encourage someone else to take it over from here if they'd like to >> see it turn into something usable. > Reading the code, it looks like everything is there, except expanding on > this: No: the code I sent only offers a buffer-local minor mode and more changes will be required if we want it to work as a global minor mode (which I'd expect is what you'd usually want). Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: tofu-help-mode 2020-10-22 15:21 ` tofu-help-mode Stefan Monnier @ 2020-10-23 10:46 ` Lars Ingebrigtsen 0 siblings, 0 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-23 10:46 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > No: the code I sent only offers a buffer-local minor mode and more > changes will be required if we want it to work as a global minor mode > (which I'd expect is what you'd usually want). Isn't that just a small matter of programming? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 14:54 ` Eli Zaretskii 2020-10-21 16:03 ` tofu-help-mode (was: Suggest installing more fonts?) Stefan Monnier @ 2020-10-21 17:46 ` Michael Albinus 2020-10-21 18:14 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Michael Albinus @ 2020-10-21 17:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Michael Albinus <michael.albinus@gmx.de> >> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org >> Date: Wed, 21 Oct 2020 13:31:01 +0200 >> >> In Emacs, the file INSTALL recommends to install >> intlfonts-VERSION.tar.gz. Might be sufficient, but without further >> instruction I doubt every Emacs user will be able to follow. > > intlfonts are bitmapped (BDF) fonts, so I don't think nowadays they > will be considered as a satisfactory solution. They are GNU software, > but otherwise I see no reason to advertise them today. > >> And/or better instructions in the INSTALL file. > > Yes, for those who still read those files. Installation of intlfonts is described in efaq.texi. If we still want to mention them in INSTALL, we better add a reference? I've seen that you're not in favor to mention Google Noto fonts here. But maybe there could be a hint in efaq.texi? On <https://www.google.com/get/noto/help/install/>, there are also instructions how to install them for Windows and macOS. Best regards, Michael. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 17:46 ` Suggest installing more fonts? Michael Albinus @ 2020-10-21 18:14 ` Eli Zaretskii 2020-10-22 7:27 ` Michael Albinus 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-21 18:14 UTC (permalink / raw) To: Michael Albinus; +Cc: larsi, emacs-devel > From: Michael Albinus <michael.albinus@gmx.de> > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Wed, 21 Oct 2020 19:46:11 +0200 > > >> And/or better instructions in the INSTALL file. > > > > Yes, for those who still read those files. > > Installation of intlfonts is described in efaq.texi. If we still want to > mention them in INSTALL, we better add a reference? ??? It's already in INSTALL. > I've seen that you're not in favor to mention Google Noto fonts here. But > maybe there could be a hint in efaq.texi? On > <https://www.google.com/get/noto/help/install/>, there are also > instructions how to install them for Windows and macOS. Any reason why we should prefer Google Noto to other capable fonts? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 18:14 ` Eli Zaretskii @ 2020-10-22 7:27 ` Michael Albinus 2020-10-22 13:09 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Michael Albinus @ 2020-10-22 7:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: Hi Eli, >> Installation of intlfonts is described in efaq.texi. If we still want to >> mention them in INSTALL, we better add a reference? > > ??? It's already in INSTALL. I haven't see any reference to efaq.texi in INSTALL. >> I've seen that you're not in favor to mention Google Noto fonts here. But >> maybe there could be a hint in efaq.texi? On >> <https://www.google.com/get/noto/help/install/>, there are also >> instructions how to install them for Windows and macOS. > > Any reason why we should prefer Google Noto to other capable fonts? No reason. I just wanted to show how to install such fonts for major GNU/Linux distros, using apt or dnf. And maybe also for other target systems. Best regards, Michael. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 7:27 ` Michael Albinus @ 2020-10-22 13:09 ` Eli Zaretskii 2020-10-23 16:53 ` Michael Albinus 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 13:09 UTC (permalink / raw) To: Michael Albinus; +Cc: larsi, emacs-devel > From: Michael Albinus <michael.albinus@gmx.de> > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Thu, 22 Oct 2020 09:27:38 +0200 > > >> Installation of intlfonts is described in efaq.texi. If we still want to > >> mention them in INSTALL, we better add a reference? > > > > ??? It's already in INSTALL. > > I haven't see any reference to efaq.texi in INSTALL. Sorry, I thought you meant intlfonts, not efaq. So now could you elaborate on what kind of reference did you have in mind and to what information? > >> I've seen that you're not in favor to mention Google Noto fonts here. But > >> maybe there could be a hint in efaq.texi? On > >> <https://www.google.com/get/noto/help/install/>, there are also > >> instructions how to install them for Windows and macOS. > > > > Any reason why we should prefer Google Noto to other capable fonts? > > No reason. I just wanted to show how to install such fonts for major > GNU/Linux distros, using apt or dnf. And maybe also for other target systems. We could also use a neutral name like "apt get FONT ...", couldn't we? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:09 ` Eli Zaretskii @ 2020-10-23 16:53 ` Michael Albinus 2020-10-23 18:13 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Michael Albinus @ 2020-10-23 16:53 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: Hi Eli, >> >> Installation of intlfonts is described in efaq.texi. If we still want to >> >> mention them in INSTALL, we better add a reference? >> > >> > ??? It's already in INSTALL. >> >> I haven't see any reference to efaq.texi in INSTALL. > > Sorry, I thought you meant intlfonts, not efaq. So now could you > elaborate on what kind of reference did you have in mind and to what > information? Something like See the Emacs Frequently Asked Questions manual "(efaq) How to add fonts" for installation instructions. >> No reason. I just wanted to show how to install such fonts for major >> GNU/Linux distros, using apt or dnf. And maybe also for other target systems. > > We could also use a neutral name like "apt get FONT ...", couldn't we? Hmm. The problem is, that the majority of users doesn't know what to replace FONT with. Best regards, Michael. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 16:53 ` Michael Albinus @ 2020-10-23 18:13 ` Eli Zaretskii 2020-10-25 11:47 ` Michael Albinus 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 18:13 UTC (permalink / raw) To: Michael Albinus; +Cc: larsi, emacs-devel > From: Michael Albinus <michael.albinus@gmx.de> > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 18:53:17 +0200 > > > Sorry, I thought you meant intlfonts, not efaq. So now could you > > elaborate on what kind of reference did you have in mind and to what > > information? > > Something like > > See the Emacs Frequently Asked Questions manual "(efaq) How to add > fonts" for installation instructions. OK, except "manual" is wrong here. The FAQ is not a manual. > >> No reason. I just wanted to show how to install such fonts for major > >> GNU/Linux distros, using apt or dnf. And maybe also for other target systems. > > > > We could also use a neutral name like "apt get FONT ...", couldn't we? > > Hmm. The problem is, that the majority of users doesn't know what to > replace FONT with. But then the instructions you show cannot be applied if the name of the font changes? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 18:13 ` Eli Zaretskii @ 2020-10-25 11:47 ` Michael Albinus 2020-10-25 15:19 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Michael Albinus @ 2020-10-25 11:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: Hi Eli, >> See the Emacs Frequently Asked Questions manual "(efaq) How to add >> fonts" for installation instructions. > > OK, except "manual" is wrong here. The FAQ is not a manual. I've added it slightly rephrased to the INSTALL file. Pushed to the emacs-27 branch. >> >> No reason. I just wanted to show how to install such fonts for major >> >> GNU/Linux distros, using apt or dnf. And maybe also for other >> >> target systems. >> > >> > We could also use a neutral name like "apt get FONT ...", couldn't we? >> >> Hmm. The problem is, that the majority of users doesn't know what to >> replace FONT with. > > But then the instructions you show cannot be applied if the name of > the font changes? Yes, we can only give examples of font packages for Debian and Red Hat (and maybe other major distributions). Likely, this is too special for the INSTALL file, and we shall add this information to efaq.texi? Best regards, Michael. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-25 11:47 ` Michael Albinus @ 2020-10-25 15:19 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-25 15:19 UTC (permalink / raw) To: Michael Albinus; +Cc: larsi, emacs-devel > From: Michael Albinus <michael.albinus@gmx.de> > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Sun, 25 Oct 2020 12:47:40 +0100 > > >> > We could also use a neutral name like "apt get FONT ...", couldn't we? > >> > >> Hmm. The problem is, that the majority of users doesn't know what to > >> replace FONT with. > > > > But then the instructions you show cannot be applied if the name of > > the font changes? > > Yes, we can only give examples of font packages for Debian and Red Hat > (and maybe other major distributions). Likely, this is too special for > the INSTALL file, and we shall add this information to efaq.texi? Yes, I think so. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 11:31 ` Michael Albinus 2020-10-21 11:58 ` Stefan Kangas 2020-10-21 14:54 ` Eli Zaretskii @ 2020-10-21 17:25 ` Juri Linkov 2 siblings, 0 replies; 118+ messages in thread From: Juri Linkov @ 2020-10-21 17:25 UTC (permalink / raw) To: Michael Albinus; +Cc: Lars Ingebrigtsen, Eli Zaretskii, emacs-devel >> I've been frustrated by this before, and I've resorted to saying "apt >> install fonts-*' or something, which isn't really ideal, so if Emacs >> could provide some guidance here (without us having to maintain a >> never-ending list of fonts), I think that would be helpful. >> > See recent discussion in bug#43887. In order to see all symbols in > etc/HELLO, I had to apply on Ubuntu 20.04 > > $ sudo apt-get install fonts-noto-core I found this package by running: apt-cache search viet | grep font that outputs: fonts-noto-core - "No Tofu" font families with large Unicode coverage (core) The same result is with: apt-cache search javanese | grep font I have no idea why `apt-cache search` searches in package descriptions whereas `apt search` searches only in package names. These apt command names have no indications that they search in different places! ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 10:46 ` Lars Ingebrigtsen 2020-10-21 11:31 ` Michael Albinus @ 2020-10-21 11:59 ` Basil L. Contovounesios 2020-10-21 12:05 ` Lars Ingebrigtsen 2020-10-21 14:47 ` Eli Zaretskii 2 siblings, 1 reply; 118+ messages in thread From: Basil L. Contovounesios @ 2020-10-21 11:59 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > "apt search font | grep viet" gives me no matches on this Debian system. ^^^ -i gives fonts-sil-taiheritagepro - typeface reflecting the traditional hand-written style of the Tai Viet script -- Basil ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 11:59 ` Basil L. Contovounesios @ 2020-10-21 12:05 ` Lars Ingebrigtsen 2020-10-21 12:31 ` Stephen Berman 0 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-21 12:05 UTC (permalink / raw) To: Basil L. Contovounesios; +Cc: Eli Zaretskii, emacs-devel "Basil L. Contovounesios" <contovob@tcd.ie> writes: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> "apt search font | grep viet" gives me no matches on this Debian system. > ^^^ > -i > > gives > > fonts-sil-taiheritagepro - typeface reflecting the traditional > hand-written style of the Tai Viet script Well, it gives larsi@xo:~/src/emacs/trunk$ apt search font | grep -i viet WARNING: apt does not have a stable CLI interface. Use with caution in scripts. typeface reflecting the traditional hand-written style of the Tai Viet script here, but point taken. I'm guessing this isn't the font people would be looking for, though, when Emacs isn't able to display most Vietnamese text. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 12:05 ` Lars Ingebrigtsen @ 2020-10-21 12:31 ` Stephen Berman 0 siblings, 0 replies; 118+ messages in thread From: Stephen Berman @ 2020-10-21 12:31 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Basil L. Contovounesios, Eli Zaretskii, emacs-devel On Wed, 21 Oct 2020 14:05:41 +0200 Lars Ingebrigtsen <larsi@gnus.org> wrote: > "Basil L. Contovounesios" <contovob@tcd.ie> writes: > >> Lars Ingebrigtsen <larsi@gnus.org> writes: >> >>> "apt search font | grep viet" gives me no matches on this Debian system. >> ^^^ >> -i >> >> gives >> >> fonts-sil-taiheritagepro - typeface reflecting the traditional >> hand-written style of the Tai Viet script > > Well, it gives > > larsi@xo:~/src/emacs/trunk$ apt search font | grep -i viet > > WARNING: apt does not have a stable CLI interface. Use with caution in scripts. > > typeface reflecting the traditional hand-written style of the Tai Viet script > > here, but point taken. I'm guessing this isn't the font people would be > looking for, though, when Emacs isn't able to display most Vietnamese > text. Tai Viet is not Vietnamese: "The Vietnamese alphabet (Vietnamese: chữ Quốc ngữ; literally "National language script") is the modern writing system for the Vietnamese language. It uses the Latin script based on Romance languages,[4] in particular, the Portuguese alphabet,[1] with some digraphs and the addition of nine accent marks or diacritics – four of them to create sounds, and the other five to indicate tone. These many diacritics, often two on the same vowel, make written Vietnamese recognizable among localized variants of Latin alphabets.[5]" (from https://en.wikipedia.org/wiki/Vietnamese_alphabet) and: "The Tai Viet script (Tai Dam: Xư Tay (Tai Script), Vietnamese: Chữ Thái Việt) is a Brahmic script used by the Tai Dam people and various other Tai peoples in Vietnam. [...] According to Thai authors, the writing system is probably derived from the old Thai writing of the kingdom of Sukhotai." (from https://en.wikipedia.org/wiki/Tai_Viet_script) Steve Berman ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 10:46 ` Lars Ingebrigtsen 2020-10-21 11:31 ` Michael Albinus 2020-10-21 11:59 ` Basil L. Contovounesios @ 2020-10-21 14:47 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus ` (2 more replies) 2 siblings, 3 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-21 14:47 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Wed, 21 Oct 2020 12:46:55 +0200 > > I just looked at the HELLO file on this system, and these are the fonts > that Emacs has chosen (there's no tofu in the buffer): > > Unifont > DejaVu Sans Mono > Various things from the Noto Serif/Noto Sans family of fonts -- I think > they're all from the fonts-noto-core and fonts-noto-extra packages > Symbola > FreeSerif > > Plus daewoo, for Korean. > > So that'd be just about all the fonts (and possibly packages) we'd have > to mention on the font help page. Uninstall Unifont (which I thought we agreed shouldn't be used), then try again. And are we okay with telling people to install Noto fonts? There are a lot of fonts in that collection, I'm not sure they are really needed. For example, do modern GNU/Linux systems really come without CJK fonts? Also, if this is the way we want to go, we should have separate advice for MS-Windows users, where there are several system specific issues regarding font search by Emacs, and many users are unable to install fonts system-wide due to fascist corporation policies. And finally, HELLO is not necessarily the right instrument to judge this issue, because it doesn't pretend to cover many codepoints. Users with special needs might very well need rarely-used characters or even special-purpose fonts (e.g., think about scholars who need to read text in some ancient script, or someone whose hobby is to write Klingon). As Unicode advances, more and more specialized scripts are added to it, and HELLO explicitly avoids having too many ancient "dead" scripts, for practical reasons. Users who need such rare characters and scripts will bump into missing glyphs whether you want it or not, and we will never be able in practice to have every such font in a list that we can name explicitly. That is why I would propose a general advice that doesn't name specific fonts. It is easy to find fonts for a known script nowadays. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 14:47 ` Eli Zaretskii @ 2020-10-21 20:19 ` Rasmus 2020-10-22 2:34 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus 2020-10-22 11:32 ` Lars Ingebrigtsen 2 siblings, 1 reply; 118+ messages in thread From: Rasmus @ 2020-10-21 20:19 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Also, if this is the way we want to go, we should have separate > advice for MS-Windows users, where there are several system > specific issues regarding font search by Emacs, and many users > are unable to install fonts system-wide due to fascist > corporation policies. Is there a way to make fonts available to Emacs without installing them on Windows? On my work laptop I can’t install fonts, but would like to have broader unicode coverage in Emacs. Kind regards, Rasmus -- Slowly unravels in a ball of yarn and the devil collects it ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 20:19 ` Rasmus @ 2020-10-22 2:34 ` Eli Zaretskii 2020-10-22 12:34 ` Rasmus 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 2:34 UTC (permalink / raw) To: Rasmus; +Cc: emacs-devel > From: Rasmus <rasmus@gmx.us> > Date: Wed, 21 Oct 2020 22:19:14 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > Also, if this is the way we want to go, we should have separate > > advice for MS-Windows users, where there are several system > > specific issues regarding font search by Emacs, and many users > > are unable to install fonts system-wide due to fascist > > corporation policies. > > Is there a way to make fonts available to Emacs without installing > them on Windows? On my work laptop I can’t install fonts, but > would like to have broader unicode coverage in Emacs. "Can't install" even only for your user? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 2:34 ` Eli Zaretskii @ 2020-10-22 12:34 ` Rasmus 2020-10-22 13:35 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Rasmus @ 2020-10-22 12:34 UTC (permalink / raw) To: eliz; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Rasmus <rasmus@gmx.us> Date: Wed, 21 Oct 2020 22:19:14 >> +0200 > >> Eli Zaretskii <eliz@gnu.org> writes: >> > Also, if this is the way we want to go, we should have >> > separate advice for MS-Windows users, where there are >> > several system specific issues regarding font search by >> > Emacs, and many users are unable to install fonts >> > system-wide due to fascist corporation policies. >> Is there a way to make fonts available to Emacs without >> installing them on Windows? On my work laptop I can’t install >> fonts, but would like to have broader unicode coverage in >> Emacs. > > "Can't install" even only for your user? I have not found a way on Win7, which seems to still be pretty widespread on corporate laptops. I understand that Win10 might have user-fonts. (I am not a Windows expert, though). Rasmus -- Don't slow down Johnny, leave the Cadillac runnin' ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 12:34 ` Rasmus @ 2020-10-22 13:35 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 13:35 UTC (permalink / raw) To: Rasmus; +Cc: emacs-devel > From: Rasmus <rasmus@gmx.us> > Cc: emacs-devel@gnu.org > Date: Thu, 22 Oct 2020 14:34:36 +0200 > > > "Can't install" even only for your user? > > I have not found a way on Win7, which seems to still be pretty > widespread on corporate laptops. I understand that Win10 might > have user-fonts. (I am not a Windows expert, though). For Windows 7 you will need some non-standard program. There are a few floating around. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 14:47 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus @ 2020-10-21 20:19 ` Rasmus 2020-10-22 11:32 ` Lars Ingebrigtsen 2 siblings, 0 replies; 118+ messages in thread From: Rasmus @ 2020-10-21 20:19 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Also, if this is the way we want to go, we should have separate > advice for MS-Windows users, where there are several system > specific issues regarding font search by Emacs, and many users > are unable to install fonts system-wide due to fascist > corporation policies. Is there a way to make fonts available to Emacs without installing them on Windows? On my work laptop I can’t install fonts, but would like to have broader unicode coverage in Emacs. Kind regards, Rasmus -- Slowly unravels in a ball of yarn and the devil collects it ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-21 14:47 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus 2020-10-21 20:19 ` Rasmus @ 2020-10-22 11:32 ` Lars Ingebrigtsen 2020-10-22 12:02 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:16 ` Eli Zaretskii 2 siblings, 2 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-22 11:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Uninstall Unifont (which I thought we agreed shouldn't be used), then > try again. And now the HELLO file looks even nicer. :-) > And are we okay with telling people to install Noto fonts? There are > a lot of fonts in that collection, I'm not sure they are really > needed. For example, do modern GNU/Linux systems really come without > CJK fonts? "Install noto-core" is simple advice to give to users, and will fix their problems, so I don't see why not. > Also, if this is the way we want to go, we should have separate advice > for MS-Windows users, where there are several system specific issues > regarding font search by Emacs, and many users are unable to install > fonts system-wide due to fascist corporation policies. Sure. Like I said, it depends how much work we want to put into this. We don't need to have a perfect list of all scripts/systems, just some... guidance... for the systems we decide to care about. > That is why I would propose a general advice that doesn't name > specific fonts. It is easy to find fonts for a known script nowadays. Not my experience on Debian systems, really. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 11:32 ` Lars Ingebrigtsen @ 2020-10-22 12:02 ` Gregory Heytings via Emacs development discussions. 2020-10-22 12:08 ` Lars Ingebrigtsen 2020-10-22 13:16 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-22 12:02 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel >> That is why I would propose a general advice that doesn't name specific >> fonts. It is easy to find fonts for a known script nowadays. > > Not my experience on Debian systems, really. > I don't understand this, "apt-cache search <script> font" or "apt search <script> font" work for (almost?) every <script>, including tagbanwa, sinhala, lepcha, bhaiksuki... which I'd never heard about. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 12:02 ` Gregory Heytings via Emacs development discussions. @ 2020-10-22 12:08 ` Lars Ingebrigtsen 2020-10-22 12:29 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:31 ` Eli Zaretskii 0 siblings, 2 replies; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-22 12:08 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel Gregory Heytings <ghe@sdf.org> writes: > I don't understand this, "apt-cache search <script> font" or "apt > search <script> font" work for (almost?) every <script>, including > tagbanwa, sinhala, lepcha, bhaiksuki... which I'd never heard about. larsi@xo:~/src/emacs/trunk$ apt-cache search vietnamese | grep font fonts-pecita - OpenType hand-written font whose letters are connected emacs-intl-fonts - fonts to allow multilingual PostScript printing from Emacs xfonts-intl-asian - international fonts for X - (south-east) Asian fonts-texgyre - OpenType fonts based on URW Fonts fonts-ibm-plex - extensive typeface family designed by IBM None of these are actually the package you'd want to install. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 12:08 ` Lars Ingebrigtsen @ 2020-10-22 12:29 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:31 ` Eli Zaretskii 1 sibling, 0 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-22 12:29 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel >> I don't understand this, "apt-cache search <script> font" or "apt >> search <script> font" work for (almost?) every <script>, including >> tagbanwa, sinhala, lepcha, bhaiksuki... which I'd never heard about. > > larsi@xo:~/src/emacs/trunk$ apt-cache search vietnamese | grep font > fonts-pecita - OpenType hand-written font whose letters are connected > emacs-intl-fonts - fonts to allow multilingual PostScript printing from Emacs > xfonts-intl-asian - international fonts for X - (south-east) Asian > fonts-texgyre - OpenType fonts based on URW Fonts > fonts-ibm-plex - extensive typeface family designed by IBM > > None of these are actually the package you'd want to install. > I don't know, I don't read/write vietnamese. But I don't understand why you write that "none of these are the package you'd want to install", fonts-ibm-plex seems a good candidate. And from what I see in HELLO, Vietnamese uses the latin script, with added diacritics, so I guess there's in fact no need to install additional fonts to read/write Vietnamese. Viet is something else, it uses the tai-viet script, and: $ apt-cache search viet font fonts-pecita - OpenType hand-written font whose letters are connected emacs-intl-fonts - fonts to allow multilingual PostScript printing from Emacs xfonts-intl-asian - international fonts for X - (south-east) Asian fonts-texgyre - OpenType fonts based on URW Fonts fonts-noto-core - "No Tofu" font families with large Unicode coverage (core) fonts-sil-taiheritagepro - typeface reflecting the traditional hand-written style of the Tai Viet script texlive-lang-other - TeX Live: Other languages fonts-ibm-plex - extensive typeface family designed by IBM in which you find fonts-noto-core. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 12:08 ` Lars Ingebrigtsen 2020-10-22 12:29 ` Gregory Heytings via Emacs development discussions. @ 2020-10-22 13:31 ` Eli Zaretskii 2020-10-23 3:49 ` Richard Stallman 2020-10-23 10:45 ` Lars Ingebrigtsen 1 sibling, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 13:31 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: ghe, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > Date: Thu, 22 Oct 2020 14:08:47 +0200 > > Gregory Heytings <ghe@sdf.org> writes: > > > I don't understand this, "apt-cache search <script> font" or "apt > > search <script> font" work for (almost?) every <script>, including > > tagbanwa, sinhala, lepcha, bhaiksuki... which I'd never heard about. > > larsi@xo:~/src/emacs/trunk$ apt-cache search vietnamese | grep font There's no "vietnamese" script. And why don't you use the most efficient tool there is? Try M-s M-w vietnamese font RET and the first several hits are what you need. > None of these are actually the package you'd want to install. Why would someone need to install anything for Vietnamese? It uses the Latin script, so should be supported OOTB. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:31 ` Eli Zaretskii @ 2020-10-23 3:49 ` Richard Stallman 2020-10-23 6:59 ` Eli Zaretskii 2020-10-23 10:45 ` Lars Ingebrigtsen 1 sibling, 1 reply; 118+ messages in thread From: Richard Stallman @ 2020-10-23 3:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Why would someone need to install anything for Vietnamese? It uses > the Latin script, so should be supported OOTB. I don't know whether it is, but I do know that Vietnamese uses diacritical marks that other languages don't use. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 3:49 ` Richard Stallman @ 2020-10-23 6:59 ` Eli Zaretskii 2020-10-23 8:28 ` Andreas Schwab 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 6:59 UTC (permalink / raw) To: rms; +Cc: ghe, larsi, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: larsi@gnus.org, ghe@sdf.org, emacs-devel@gnu.org > Date: Thu, 22 Oct 2020 23:49:53 -0400 > > > Why would someone need to install anything for Vietnamese? It uses > > the Latin script, so should be supported OOTB. > > I don't know whether it is, but I do know that Vietnamese > uses diacritical marks that other languages don't use. Fonts support scripts, not languages. A font that supports the Latin script will normally support the diacriticals needed for Vietnamese. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 6:59 ` Eli Zaretskii @ 2020-10-23 8:28 ` Andreas Schwab 2020-10-23 11:01 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Andreas Schwab @ 2020-10-23 8:28 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, rms, emacs-devel On Okt 23 2020, Eli Zaretskii wrote: > Fonts support scripts, not languages. A font that supports the Latin > script will normally support the diacriticals needed for Vietnamese. But they may not support the combining character for the NFD form. I often see non-combined diacriticals in NFD text because the combining character comes from a different font than the default one. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 8:28 ` Andreas Schwab @ 2020-10-23 11:01 ` Eli Zaretskii 2020-10-23 15:50 ` Andreas Schwab 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 11:01 UTC (permalink / raw) To: Andreas Schwab; +Cc: ghe, larsi, rms, emacs-devel > From: Andreas Schwab <schwab@linux-m68k.org> > Cc: rms@gnu.org, ghe@sdf.org, larsi@gnus.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 10:28:50 +0200 > > On Okt 23 2020, Eli Zaretskii wrote: > > > Fonts support scripts, not languages. A font that supports the Latin > > script will normally support the diacriticals needed for Vietnamese. > > But they may not support the combining character for the NFD form. I > often see non-combined diacriticals in NFD text because the combining > character comes from a different font than the default one. Any specific examples? Does that happen with modern fonts with recent enough version? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 11:01 ` Eli Zaretskii @ 2020-10-23 15:50 ` Andreas Schwab 2020-10-23 16:38 ` Stefan Monnier 2020-10-23 18:03 ` Eli Zaretskii 0 siblings, 2 replies; 118+ messages in thread From: Andreas Schwab @ 2020-10-23 15:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, rms, emacs-devel On Okt 23 2020, Eli Zaretskii wrote: > Any specific examples? ñ Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 15:50 ` Andreas Schwab @ 2020-10-23 16:38 ` Stefan Monnier 2020-10-23 18:03 ` Eli Zaretskii 1 sibling, 0 replies; 118+ messages in thread From: Stefan Monnier @ 2020-10-23 16:38 UTC (permalink / raw) To: Andreas Schwab; +Cc: ghe, Eli Zaretskii, emacs-devel, larsi, rms >> Any specific examples? > ñ Funny: here I see it non-composed (i.e. occupies 2 columns) when auto-composition-mode is enabled and I see it composed when auto-composition-mode is disabled! Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 15:50 ` Andreas Schwab 2020-10-23 16:38 ` Stefan Monnier @ 2020-10-23 18:03 ` Eli Zaretskii 2020-10-23 18:43 ` Robert Pluim 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 18:03 UTC (permalink / raw) To: Andreas Schwab; +Cc: ghe, larsi, rms, emacs-devel > From: Andreas Schwab <schwab@linux-m68k.org> > Cc: rms@gnu.org, ghe@sdf.org, larsi@gnus.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 17:50:37 +0200 > > On Okt 23 2020, Eli Zaretskii wrote: > > > Any specific examples? > > ñ Which Latin fonts on modern systems don't support the COMBINING TILDE? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 18:03 ` Eli Zaretskii @ 2020-10-23 18:43 ` Robert Pluim 2020-10-23 19:31 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Robert Pluim @ 2020-10-23 18:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, Andreas Schwab, rms, emacs-devel >>>>> On Fri, 23 Oct 2020 21:03:48 +0300, Eli Zaretskii <eliz@gnu.org> said: >> From: Andreas Schwab <schwab@linux-m68k.org> >> Cc: rms@gnu.org, ghe@sdf.org, larsi@gnus.org, emacs-devel@gnu.org >> Date: Fri, 23 Oct 2020 17:50:37 +0200 >> >> On Okt 23 2020, Eli Zaretskii wrote: >> >> > Any specific examples? >> >> ñ Eli> Which Latin fonts on modern systems don't support the COMBINING TILDE? Jetbrains Mono for one (although I haven't updated it in a while) Robert -- ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 18:43 ` Robert Pluim @ 2020-10-23 19:31 ` Eli Zaretskii 2020-10-24 9:35 ` Robert Pluim 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 19:31 UTC (permalink / raw) To: Robert Pluim; +Cc: ghe, larsi, schwab, rms, emacs-devel > From: Robert Pluim <rpluim@gmail.com> > Cc: Andreas Schwab <schwab@linux-m68k.org>, ghe@sdf.org, larsi@gnus.org, > rms@gnu.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 20:43:29 +0200 > > >> ñ > > Eli> Which Latin fonts on modern systems don't support the COMBINING TILDE? > > Jetbrains Mono for one (although I haven't updated it in a while) Is that font likely to be used by Emacs by default? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 19:31 ` Eli Zaretskii @ 2020-10-24 9:35 ` Robert Pluim 0 siblings, 0 replies; 118+ messages in thread From: Robert Pluim @ 2020-10-24 9:35 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, schwab, rms, emacs-devel >>>>> On Fri, 23 Oct 2020 22:31:26 +0300, Eli Zaretskii <eliz@gnu.org> said: >> From: Robert Pluim <rpluim@gmail.com> >> Cc: Andreas Schwab <schwab@linux-m68k.org>, ghe@sdf.org, larsi@gnus.org, >> rms@gnu.org, emacs-devel@gnu.org >> Date: Fri, 23 Oct 2020 20:43:29 +0200 >> >> >> ñ >> Eli> Which Latin fonts on modern systems don't support the COMBINING TILDE? >> >> Jetbrains Mono for one (although I haven't updated it in a while) Eli> Is that font likely to be used by Emacs by default? No. Itʼs fairly popular, but users need to decide to install and use it themselves. Robert -- ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:31 ` Eli Zaretskii 2020-10-23 3:49 ` Richard Stallman @ 2020-10-23 10:45 ` Lars Ingebrigtsen 2020-10-23 11:07 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-23 10:45 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > There's no "vietnamese" script. > > And why don't you use the most efficient tool there is? Try > > M-s M-w vietnamese font RET > > and the first several hits are what you need. None of them say anything about how to fix the problem on a Debian system, as far as I can tell. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 10:45 ` Lars Ingebrigtsen @ 2020-10-23 11:07 ` Eli Zaretskii 2020-10-23 14:59 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 11:07 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: ghe, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: ghe@sdf.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 12:45:49 +0200 > > > M-s M-w vietnamese font RET > > > > and the first several hits are what you need. > > None of them say anything about how to fix the problem on a Debian > system, as far as I can tell. You mean, a Debian user cannot simply download font files and install them? Are Debian users forced to use "apt get" etc.? I'm surprised. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 11:07 ` Eli Zaretskii @ 2020-10-23 14:59 ` Stefan Monnier 2020-10-23 17:56 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-23 14:59 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, Lars Ingebrigtsen, emacs-devel > You mean, a Debian user cannot simply download font files and install > them? Are Debian users forced to use "apt get" etc.? I'm surprised. As a Debian user, I do think that I can "download font files and install them" and there's a good chance I can even do that "simply", but I have never needed to do that and would have to search for info about how to do it and I wouldn't be satisfied with the result because now those fonts wouldn't be kept up-to-date by the usual mechanisms. So, while I'm not "forced" to use `apt`, I would first and foremost want to use `apt` and only resort to another solution if there's no other solution. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 14:59 ` Stefan Monnier @ 2020-10-23 17:56 ` Eli Zaretskii 2020-10-23 18:13 ` Stefan Monnier 2020-10-23 18:18 ` Gregory Heytings via Emacs development discussions. 0 siblings, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 17:56 UTC (permalink / raw) To: Stefan Monnier; +Cc: ghe, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: Lars Ingebrigtsen <larsi@gnus.org>, ghe@sdf.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 10:59:02 -0400 > > > You mean, a Debian user cannot simply download font files and install > > them? Are Debian users forced to use "apt get" etc.? I'm surprised. > > As a Debian user, I do think that I can "download font files and install > them" and there's a good chance I can even do that "simply", but I have > never needed to do that and would have to search for info about how to > do it and I wouldn't be satisfied with the result because now those > fonts wouldn't be kept up-to-date by the usual mechanisms. > > So, while I'm not "forced" to use `apt`, I would first and foremost want > to use `apt` and only resort to another solution if there's no > other solution. So Debian users are even less "free" in this regard than MS-Windows users? That's sad, isn't it? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 17:56 ` Eli Zaretskii @ 2020-10-23 18:13 ` Stefan Monnier 2020-10-23 18:23 ` Eli Zaretskii 2020-10-23 18:18 ` Gregory Heytings via Emacs development discussions. 1 sibling, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-23 18:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, emacs-devel >> As a Debian user, I do think that I can "download font files and install >> them" and there's a good chance I can even do that "simply", but I have >> never needed to do that and would have to search for info about how to >> do it and I wouldn't be satisfied with the result because now those >> fonts wouldn't be kept up-to-date by the usual mechanisms. >> >> So, while I'm not "forced" to use `apt`, I would first and foremost want >> to use `apt` and only resort to another solution if there's no >> other solution. > > So Debian users are even less "free" in this regard than MS-Windows users? Not sure what you mean by that. Basically, what I was saying is that "simply downloading and installing" (the fact that it was applied to fonts doesn't make much difference in this respect) sounds to me like pulling my own teeth: I'm "free" to do it, but I would look for other solutions first. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 18:13 ` Stefan Monnier @ 2020-10-23 18:23 ` Eli Zaretskii 2020-10-23 18:36 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-23 18:23 UTC (permalink / raw) To: Stefan Monnier; +Cc: ghe, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: larsi@gnus.org, ghe@sdf.org, emacs-devel@gnu.org > Date: Fri, 23 Oct 2020 14:13:24 -0400 > > >> So, while I'm not "forced" to use `apt`, I would first and foremost want > >> to use `apt` and only resort to another solution if there's no > >> other solution. > > > > So Debian users are even less "free" in this regard than MS-Windows users? > > Not sure what you mean by that. > > Basically, what I was saying is that "simply downloading and installing" > (the fact that it was applied to fonts doesn't make much difference in > this respect) sounds to me like pulling my own teeth: I'm "free" to do > it, but I would look for other solutions first. Which is sub-optimal, since it sounds like the facilities to search the DB of installable packages is limited, whereas the facilities we have for finding fonts on the Internet are very powerful and accurate. So the ability to download a font and install it sounds very useful. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 18:23 ` Eli Zaretskii @ 2020-10-23 18:36 ` Stefan Monnier 0 siblings, 0 replies; 118+ messages in thread From: Stefan Monnier @ 2020-10-23 18:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ghe, larsi, emacs-devel > Which is sub-optimal, since it sounds like the facilities to search > the DB of installable packages is limited, whereas the facilities we > have for finding fonts on the Internet are very powerful and accurate. > So the ability to download a font and install it sounds very useful. Oh, the escape hatch exists. It's just that Debian users normally prefer to use the other, more controlled (and hence limited) way. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-23 17:56 ` Eli Zaretskii 2020-10-23 18:13 ` Stefan Monnier @ 2020-10-23 18:18 ` Gregory Heytings via Emacs development discussions. 1 sibling, 0 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-23 18:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Stefan Monnier, larsi, emacs-devel >>> You mean, a Debian user cannot simply download font files and install >>> them? Are Debian users forced to use "apt get" etc.? I'm surprised. >> >> As a Debian user, I do think that I can "download font files and >> install them" and there's a good chance I can even do that "simply", >> but I have never needed to do that and would have to search for info >> about how to do it and I wouldn't be satisfied with the result because >> now those fonts wouldn't be kept up-to-date by the usual mechanisms. >> >> So, while I'm not "forced" to use `apt`, I would first and foremost >> want to use `apt` and only resort to another solution if there's no >> other solution. > > So Debian users are even less "free" in this regard than MS-Windows > users? That's sad, isn't it? > Of course Debian users can simply download font files and install them: it suffices to put them in the /usr/share/fonts/truetype or /usr/share/fonts/opentype directory . Fonts can also be added with KDE Font Management or GNOME Font Manager. As Stefan said, the drawback of this solution (be it with GNU/Linux, Windows or macOS) is that "those fonts aren't kept up-to-date by the usual mechanisms". ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 11:32 ` Lars Ingebrigtsen 2020-10-22 12:02 ` Gregory Heytings via Emacs development discussions. @ 2020-10-22 13:16 ` Eli Zaretskii 2020-10-22 13:40 ` Gregory Heytings via Emacs development discussions. 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 13:16 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Thu, 22 Oct 2020 13:32:09 +0200 > Cc: emacs-devel@gnu.org > > Eli Zaretskii <eliz@gnu.org> writes: > > > Uninstall Unifont (which I thought we agreed shouldn't be used), then > > try again. > > And now the HELLO file looks even nicer. :-) But how many fonts were loaded for that? AFAIK, an OpenType font can have at most 64K glyphs, so it is very unusual for a high-quality font to cover too many Unicode blocks. Even Unifont only supports the BMP and little else. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:16 ` Eli Zaretskii @ 2020-10-22 13:40 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:52 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-22 13:40 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, emacs-devel >>> Uninstall Unifont (which I thought we agreed shouldn't be used), then >>> try again. >> >> And now the HELLO file looks even nicer. :-) > > But how many fonts were loaded for that? > DejaVu Sans Mono is a single font, but fonts-noto-core alone contains 162 fonts. > > Even Unifont only supports the BMP and little else. > That's wrong. Unifont supports 100% of the BMP (including many scripts for fictional scripts such as Klingon, which are not offically part of Unicode), most of the SMP (the exceptions are cuneiform and hieroglyphs), a few glyphs of SIP. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:40 ` Gregory Heytings via Emacs development discussions. @ 2020-10-22 13:52 ` Eli Zaretskii 2020-10-22 14:20 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 13:52 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Thu, 22 Oct 2020 13:40:35 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > > > Even Unifont only supports the BMP and little else. > > > > That's wrong. Unifont supports 100% of the BMP (including many scripts > for fictional scripts such as Klingon, which are not offically part of > Unicode), most of the SMP (the exceptions are cuneiform and hieroglyphs), > a few glyphs of SIP. Which is essentially what I said. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 13:52 ` Eli Zaretskii @ 2020-10-22 14:20 ` Gregory Heytings via Emacs development discussions. 2020-10-22 15:50 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-22 14:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >>> Even Unifont only supports the BMP and little else. >> >> That's wrong. Unifont supports 100% of the BMP (including many scripts >> for fictional scripts such as Klingon, which are not offically part of >> Unicode), most of the SMP (the exceptions are cuneiform and >> hieroglyphs), a few glyphs of SIP. > > Which is essentially what I said. > Aha. So the 80%-90% coverage of the SMP (the exceptions being cuneiform and hieroglyphs) by Unifont is essentially nothing? And its ~8000 glyphs for fictional scripts is essentially nothing? All in all, Unifont contains all glyphs needed by about 99.95% of the world population. It's more than clear that you dislike Unifont, you are entitled to your opinions, but I believe it is important to do justice to what others did. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-22 14:20 ` Gregory Heytings via Emacs development discussions. @ 2020-10-22 15:50 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-22 15:50 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Thu, 22 Oct 2020 14:20:37 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > >>> Even Unifont only supports the BMP and little else. > >> > >> That's wrong. Unifont supports 100% of the BMP (including many scripts > >> for fictional scripts such as Klingon, which are not offically part of > >> Unicode), most of the SMP (the exceptions are cuneiform and > >> hieroglyphs), a few glyphs of SIP. > > > > Which is essentially what I said. > > Aha. So the 80%-90% coverage of the SMP (the exceptions being cuneiform > and hieroglyphs) by Unifont is essentially nothing? It isn't nothing, but it is a small fraction of the existing codepoints, let alone those which could/will be defined in the future. A single font cannot support more than 64K glyphs, which is a small number compared to the Unicode range of codes. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 10:54 Suggest installing more fonts? Lars Ingebrigtsen 2020-10-16 11:07 ` Eli Zaretskii @ 2020-10-16 18:48 ` Stefan Monnier 2020-10-16 19:13 ` Eli Zaretskii ` (2 more replies) 1 sibling, 3 replies; 118+ messages in thread From: Stefan Monnier @ 2020-10-16 18:48 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > I think, over the years, the most common question users have that has an > easy-to-fix solution is: "Why is Emacs displaying boxes for some of > these characters I'm seeing?" The solution is "install some more > fonts", of course. [ FWIW, I don't think replacing those tofu chars with some "ugly default" is a good option: it's more work with very little benefit if any, since the problem still remains largely unchanged. ] I think to solve this problem we need to have a clear idea of what the users do when they're faced with this: - Does the problem only affect Emacs and not other applications? If so why? If not, then what do other applications do about it? - Do users immediately run to search the internet for answers without even trying to interact any further with their Emacs instance to investigate the problem first? - If they do interact with Emacs, what do they do? Do they move the mouse over the tofu? Do they look for some help some other way? The potential elements of solutions can be: A- Make the users understand that the problem is a lack of fonts B- Steer the users to the appropriate fonts C- Fix the problem that makes Emacs fail to find the fonts when other applications deal with it just fine. We could arrange for some kind of tooltip to show up when you wave the mouse over those tofu chars, but that won't help if the users don't pass the mouse over them. We could have the redisplay code record the tofu chars and their location in some global var, and then use something like `post-command-hook` to popup a help/warning buffer explaining the problem and its potential solutions. That could be annoying for experienced users, tho, so it should come with a "don't warn me again" button. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 18:48 ` Stefan Monnier @ 2020-10-16 19:13 ` Eli Zaretskii 2020-10-16 19:37 ` Stefan Monnier 2020-10-16 19:42 ` Gregory Heytings via Emacs development discussions. 2020-10-17 6:31 ` Lars Ingebrigtsen 2 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-16 19:13 UTC (permalink / raw) To: Stefan Monnier; +Cc: larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Date: Fri, 16 Oct 2020 14:48:00 -0400 > Cc: emacs-devel@gnu.org > > - Does the problem only affect Emacs and not other applications? > If so why? AFAIK, "most other applications", at least those I could investigate, come with fixed lists of fonts to use for each script. These lists are maintained for each OS and are adjusted as the OS version and the fonts change. This method has its advantages and also its disadvantages; I think both are quite clear. > - Do users immediately run to search the internet for answers without > even trying to interact any further with their Emacs instance to > investigate the problem first? > - If they do interact with Emacs, what do they do? Do they move the > mouse over the tofu? Do they look for some help some other way? The rational thing to do is to use "C-u C-x =", see the script of the problematic character(s), and then find and install some font that covers those characters. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:13 ` Eli Zaretskii @ 2020-10-16 19:37 ` Stefan Monnier 2020-10-17 6:37 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-16 19:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> - Does the problem only affect Emacs and not other applications? >> If so why? > AFAIK, "most other applications", at least those I could investigate, > come with fixed lists of fonts to use for each script. These lists > are maintained for each OS and are adjusted as the OS version and the > fonts change. This method has its advantages and also its > disadvantages; I think both are quite clear. But then it means that "installing more fonts" is not really the solution that the user needs to follow, right? >> - Do users immediately run to search the internet for answers without >> even trying to interact any further with their Emacs instance to >> investigate the problem first? >> - If they do interact with Emacs, what do they do? Do they move the >> mouse over the tofu? Do they look for some help some other way? > The rational thing to do is to use "C-u C-x =", see the script of the > problematic character(s), and then find and install some font that > covers those characters. But from what you said above it's not just a question of installing fonts (since what you wrote before suggests that the same problem doesn't affect other applications on the same system). Also I suspect that this requires non-trivial knowledge: - `C-u C-x =`, which most beginning Emacs users won't know. - The notion of "script" and how to find it out. - How to know which font covers which script. - Potentially how to tell Emacs which font to use for which script. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:37 ` Stefan Monnier @ 2020-10-17 6:37 ` Eli Zaretskii 2020-10-17 13:44 ` Stefan Monnier 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 6:37 UTC (permalink / raw) To: Stefan Monnier; +Cc: larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Fri, 16 Oct 2020 15:37:40 -0400 > > >> - Does the problem only affect Emacs and not other applications? > >> If so why? > > AFAIK, "most other applications", at least those I could investigate, > > come with fixed lists of fonts to use for each script. These lists > > are maintained for each OS and are adjusted as the OS version and the > > fonts change. This method has its advantages and also its > > disadvantages; I think both are quite clear. > > But then it means that "installing more fonts" is not really the solution > that the user needs to follow, right? I'm not sure how you reached this conclusion. Are you talking about Emacs or are you talking about other applications? If an application expects to see some font that is not installed, the user should go out and install it, otherwise the characters will not be shown. Happened to me with applications other than Emacs a few times. The main difference between what Emacs does and what the other applications do is that the other applications specify proprietary fonts usually available on the target system, while we don't. the disadvantage of what we do is that Emacs might find a font that is not the best one for supporting a given block of Unicode codepoints. > >> - Do users immediately run to search the internet for answers without > >> even trying to interact any further with their Emacs instance to > >> investigate the problem first? > >> - If they do interact with Emacs, what do they do? Do they move the > >> mouse over the tofu? Do they look for some help some other way? > > The rational thing to do is to use "C-u C-x =", see the script of the > > problematic character(s), and then find and install some font that > > covers those characters. > > But from what you said above it's not just a question of installing > fonts (since what you wrote before suggests that the same problem > doesn't affect other applications on the same system). See above. > Also I suspect that this requires non-trivial knowledge: > - `C-u C-x =`, which most beginning Emacs users won't know. > - The notion of "script" and how to find it out. > - How to know which font covers which script. > - Potentially how to tell Emacs which font to use for which script. Which is why we are having this conversation. The idea behind what Emacs does is that the system is already configured to display the script that the user wants to use in Emacs. Where this is not true -- and I'm not sure I have a clear picture of why this could happen -- what we do is insufficient. Btw, one problem I think makes this issue more severe than it has to be is that there are many fontset customizations floating out there which people copy into their init files without understanding what they do, and those customizations are either dangerous or plain incorrect, and get users into trouble wrt fonts. Another related problem is that people install all kinds of fonts that could claim support for some script, but in fact don't have a decent support for it. These two issues probably call for a "M-x fontset-analyze" command, if we have anyone aboard capable of writing it. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 6:37 ` Eli Zaretskii @ 2020-10-17 13:44 ` Stefan Monnier 0 siblings, 0 replies; 118+ messages in thread From: Stefan Monnier @ 2020-10-17 13:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> > AFAIK, "most other applications", at least those I could investigate, >> > come with fixed lists of fonts to use for each script. These lists >> > are maintained for each OS and are adjusted as the OS version and the >> > fonts change. This method has its advantages and also its >> > disadvantages; I think both are quite clear. >> But then it means that "installing more fonts" is not really the solution >> that the user needs to follow, right? > I'm not sure how you reached this conclusion. I understood what you wrote above as saying that the only extra info other apps have is a "fixed lists of fonts to use for each script". So if they can display the text correctly with that extra list, it follows that installing more fonts is not necessary for Emacs to also display the text properly. I guess you're right that it doesn't imply that installing more fonts isn't also a solution, tho. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 18:48 ` Stefan Monnier 2020-10-16 19:13 ` Eli Zaretskii @ 2020-10-16 19:42 ` Gregory Heytings via Emacs development discussions. 2020-10-16 19:49 ` Stefan Monnier 2020-10-17 6:31 ` Lars Ingebrigtsen 2 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 19:42 UTC (permalink / raw) To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel [-- Attachment #1: Type: text/plain, Size: 1633 bytes --] >> I think, over the years, the most common question users have that has >> an easy-to-fix solution is: "Why is Emacs displaying boxes for some of >> these characters I'm seeing?" The solution is "install some more >> fonts", of course. > > [ FWIW, I don't think replacing those tofu chars with some "ugly > default" is a good option: it's more work with very little benefit if > any, since the problem still remains largely unchanged. ] > FWIW, I do not agree with this. It is much better from a end-user viewpoint to see something they can decypher, even if it has a non-optimal rendering, than to see a hex code in a box. For example, I use the DejaVu Sans font. I just checked, and among the twelve "smiling face" emojis, three are missing, for example "smiling face with smiling eyes and three hearts". I would find it much better to have Emacs displaying the attached bitmap (taken from the Unicode font) instead of a box with "01F970" (for the default value of glyphless-char-display). At least I see what the character is. [I know that an experienced user can do M-x describe-char or C-u C-x =, or (setq what-cursor-show-names t) and type C-x =. But that's for experienced users, and in any case much less user-friendly than a bitmap.] > > - Does the problem only affect Emacs and not other applications? If so > why? If not, then what do other applications do about it? > This problem affects all applications. If happens whenever an application tries to display a character for which the font in use has no glyph. What they do varies, most display a question mark in a box, or an empty box. [-- Attachment #2: Type: image/png, Size: 113 bytes --] ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:42 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 19:49 ` Stefan Monnier 2020-10-16 22:14 ` Gregory Heytings via Emacs development discussions. 2020-10-20 22:46 ` Stephen Leake 0 siblings, 2 replies; 118+ messages in thread From: Stefan Monnier @ 2020-10-16 19:49 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel >> [ FWIW, I don't think replacing those tofu chars with some "ugly default" >> is a good option: it's more work with very little benefit if any, since >> the problem still remains largely unchanged. ] > FWIW, I do not agree with this. I knid of guessed ;-) > It is much better from a end-user viewpoint to see something they can > decypher, even if it has a non-optimal rendering, than to see a hex > code in a box. [ What you describe is the "very little benefit" I referred to. ] I think most users won't be happy with the result in both cases, so they'll still want to find a fix for the problem [ This is "the problem still remains largely unchanged" that I referred to. ] >> - Does the problem only affect Emacs and not other applications? If so >> why? If not, then what do other applications do about it? > This problem affects all applications. If happens whenever an application > tries to display a character for which the font in use has no glyph. What > they do varies, most display a question mark in a box, or an empty box. I have seen several questions about Emacs showing tofu where the user points out that such-and-such other application displays that same text just fine on the same system. So, I know that it sometimes "only affects Emacs". Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:49 ` Stefan Monnier @ 2020-10-16 22:14 ` Gregory Heytings via Emacs development discussions. 2020-10-16 22:35 ` Stefan Monnier 2020-10-20 22:46 ` Stephen Leake 1 sibling, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 22:14 UTC (permalink / raw) To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel [-- Attachment #1: Type: text/plain, Size: 3323 bytes --] >>> [ FWIW, I don't think replacing those tofu chars with some "ugly >>> default" is a good option: it's more work with very little benefit if >>> any, since the problem still remains largely unchanged. ] >> >> FWIW, I do not agree with this. > > I knid of guessed ;-) > Life would be boring with quick agreements ;-) >> It is much better from a end-user viewpoint to see something they can >> decypher, even if it has a non-optimal rendering, than to see a hex >> code in a box. > > [ What you describe is the "very little benefit" I referred to. ] > I don't understand why you consider this as a "very little benefit". The Unifont is not unreadable, it is certainly not a nice modern font with antialiasing etc. , because it is on purpose as small as possible (8x16 or 16x16 black and white bitmaps), but it is useable. > > I think most users won't be happy with the result in both cases, so > they'll still want to find a fix for the problem [ This is "the problem > still remains largely unchanged" that I referred to. ] > Here I agree with you: the problem remains largely unchanged, but at least Emacs would have done its best (at a reasonable cost) to help the user. And Emacs would do better than most other editors, which just show an empty box or a question mark in that case. >>> - Does the problem only affect Emacs and not other applications? If so >>> why? If not, then what do other applications do about it? >> >> This problem affects all applications. If happens whenever an >> application tries to display a character for which the font in use has >> no glyph. What they do varies, most display a question mark in a box, >> or an empty box. > > I have seen several questions about Emacs showing tofu where the user > points out that such-and-such other application displays that same text > just fine on the same system. > This depends on many parameters, most of which are outside Emacs' control. And you will probably not see questions about the opposite situation, where other applications show tofus when Emacs displays the text just fine ;-) So I'll give you two examples (and I'm sure there are many, many more): - On my computer, with a recent version of Chromium, the sentence "Can we see the full text of your speech before Tuesday?" (我们能在周二前看到你演讲的全文吗?) on https://dictionary.cambridge.org/dictionary/english-chinese-simplified/text contains three tofus (们讲吗), which Chromium displays as empty boxes. The same three tofus appear on Firefox, but Firefox displays them with four hex digits in a box. Emacs displays that sentence fine, both in a GUI because I happen to have a certain "-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0" font installed, and in a terminal because my default font is DejaVu Sans, which contains all these characters. - On my computer, two of the three missing "smiling face" emojis in DejaVu Sans are displayed fine by VS Code, because I happen to have the "fonts-noto-color-emoji" Debian package installed. But the third one (0x1f972) is displayed as a tofu (an empty box) by VS Code, even with that package installed. If I remove that package, VS Code displays these three emojis as tofus, as Emacs does. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 22:14 ` Gregory Heytings via Emacs development discussions. @ 2020-10-16 22:35 ` Stefan Monnier 2020-10-16 23:02 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Stefan Monnier @ 2020-10-16 22:35 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel >> I have seen several questions about Emacs showing tofu where the user >> points out that such-and-such other application displays that same text >> just fine on the same system. > This depends on many parameters, most of which are outside Emacs' control. I know. I was just pointing out that there are several problems (missing fonts is one of them, but not the only one), so before trying to solve "the problem", we should be clear about which one it is and try and figure out whether it's indeed the most common. Stefan ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 22:35 ` Stefan Monnier @ 2020-10-16 23:02 ` Gregory Heytings via Emacs development discussions. 2020-10-17 7:46 ` Eli Zaretskii 2020-10-18 4:12 ` Richard Stallman 0 siblings, 2 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-16 23:02 UTC (permalink / raw) To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel >>> I have seen several questions about Emacs showing tofu where the user >>> points out that such-and-such other application displays that same text >>> just fine on the same system. >> >> This depends on many parameters, most of which are outside Emacs' >> control. > > I know. I was just pointing out that there are several problems > (missing fonts is one of them, but not the only one), so before trying > to solve "the problem", we should be clear about which one it is and try > and figure out whether it's indeed the most common. > A user has (usually) no idea of these "several problems", and knows even less how to fix them. For such users the problem is simply "Emacs displays gibberish". That is "the problem" IMO. Everything else are technicalities that very few know/understand/have the patience to deal with. So IMO for these users it would be much better to display characters with a low-resolution font, together with a warning (and perhaps a pointer to a short guide) (as a help-echo and/or in the echo area), instead of a tofu. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 23:02 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 7:46 ` Eli Zaretskii 2020-10-17 11:21 ` Gregory Heytings via Emacs development discussions. 2020-10-18 4:12 ` Richard Stallman 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 7:46 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Fri, 16 Oct 2020 23:02:37 +0000 > cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > From: Gregory Heytings via "Emacs development discussions." <emacs-devel@gnu.org> > > > I know. I was just pointing out that there are several problems > > (missing fonts is one of them, but not the only one), so before trying > > to solve "the problem", we should be clear about which one it is and try > > and figure out whether it's indeed the most common. > > A user has (usually) no idea of these "several problems", and knows even > less how to fix them. For such users the problem is simply "Emacs > displays gibberish". That is "the problem" IMO. Everything else are > technicalities that very few know/understand/have the patience to deal > with. > > So IMO for these users it would be much better to display characters with > a low-resolution font, together with a warning (and perhaps a pointer to a > short guide) (as a help-echo and/or in the echo area), instead of a tofu. Then the problem will become "Emacs uses an ugly font where other apps don't", and we are none the wiser. IMO, we should try fixing whatever problems are there (and AFAIU there's more than one) without using ugly fonts. For example, problems with displaying Emoji are due to some missing infrastructure (see a separate discussion about that), and once we add that, the result will be much better than anything you could get with Unifont. IOW, using Unifont is simply a kind of admission of defeat: we don't really know why Emacs doesn't find a good font, so we take the easy path of providing _some_ font that will always work, albeit show ugly glyphs. I see no need to declare defeat, as we have facilities in Emacs to solve these problems in a better way, once we understand them. We should therefore try to understand the problems better, and once understood, solve them properly. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 7:46 ` Eli Zaretskii @ 2020-10-17 11:21 ` Gregory Heytings via Emacs development discussions. 2020-10-17 12:13 ` Eli Zaretskii 2020-10-17 17:30 ` Drew Adams 0 siblings, 2 replies; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 11:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel [-- Attachment #1: Type: text/plain, Size: 4031 bytes --] >>> I know. I was just pointing out that there are several problems >>> (missing fonts is one of them, but not the only one), so before trying >>> to solve "the problem", we should be clear about which one it is and >>> try and figure out whether it's indeed the most common. >> >> A user has (usually) no idea of these "several problems", and knows >> even less how to fix them. For such users the problem is simply "Emacs >> displays gibberish". That is "the problem" IMO. Everything else are >> technicalities that very few know/understand/have the patience to deal >> with. >> >> So IMO for these users it would be much better to display characters >> with a low-resolution font, together with a warning (and perhaps a >> pointer to a short guide) (as a help-echo and/or in the echo area), >> instead of a tofu. > > Then the problem will become "Emacs uses an ugly font where other apps > don't", and we are none the wiser. > _All_ apps have that problem, it is _not_ an Emacs-specific problem. I provided two examples with apps that have a lot more available manpower than Emacs (Chromium and VS Code) in which that problem also exists. What _all_ apps do in that case is to display a tofu. > > IMO, we should try fixing whatever problems are there (and AFAIU there's > more than one) without using ugly fonts. For example, problems with > displaying Emoji are due to some missing infrastructure (see a separate > discussion about that), and once we add that, the result will be much > better than anything you could get with Unifont. > It's a very complex problem, which is why it exists in all apps. I don't know a single app in which that problem does not exist. FWIW, here is my solution for Emojis (on Debian, after installing the fonts-noto-color-emoji package): fc-match --format='%{charset}\n' NotoColorEmoji | tr ' ' '\n' | grep '^[^-][^-][^-][^-]' | grep -v '^200d$' | sed 's/^/#x/;s/-/ . #x/;s/^\(#[^#]*#[^#]*\)/!(\1)/;s/^\(.*\)$/(set-fontset-font "fontset-default" \1 "NotoColorEmoji")/' | tr '!' "'" This creates 154 calls to "set-fontset-font", and as a result https://unicode.org/Public/UNIDATA/emoji/emoji-data.txt is displayed nicely by Emacs. I'm sure you will tell me that you don't like that solution ;-) But I doubt it is possible to do really better, because Emojis are scattered across the whole Unicode code space. > > IOW, using Unifont is simply a kind of admission of defeat: we don't > really know why Emacs doesn't find a good font, so we take the easy path > of providing _some_ font that will always work, albeit show ugly glyphs. > I see no need to declare defeat, as we have facilities in Emacs to solve > these problems in a better way, once we understand them. We should > therefore try to understand the problems better, and once understood, > solve them properly. > The meaning of my proposal was, in fact, the exact opposite of an admission of defeat, it was to make Emacs better in that respect than all other apps. Displaying a tofu is an admission of defeat, and it's what all other apps do. They say to the user: "I don't know how to display that character, so I just give up without giving you any clue." Displaying a bitmap glyph with a warning message is doing something better: the users see the characters and get an indication on what they could do to see them better. Another example: I have no fonts to display tamil characters on my computer. Which means every app, including Emacs, displays tamil characters as a sequence of tofus. I attach three pictures of the same short tamil text displayed by Emacs, one with its current behavior (tamil-no-font.png), one if it used Unifont as a fallback (tamil-unifont.png), and one if a proper tamil font (the Debian package fonts-lohit-taml) is installed (tamil-good-font.png). I do agree (of course) that tamil-good-font.png is better than tamil-unifont.png, but I really can't understand how tamil-no-font.png could be considered better than tamil-unifont.png. [-- Attachment #2: Type: image/png, Size: 1618 bytes --] [-- Attachment #3: Type: image/png, Size: 690 bytes --] [-- Attachment #4: Type: image/png, Size: 1866 bytes --] ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 11:21 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 12:13 ` Eli Zaretskii 2020-10-17 13:09 ` Gregory Heytings via Emacs development discussions. 2020-10-17 17:30 ` Drew Adams 1 sibling, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 12:13 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 11:21:52 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > >> So IMO for these users it would be much better to display characters > >> with a low-resolution font, together with a warning (and perhaps a > >> pointer to a short guide) (as a help-echo and/or in the echo area), > >> instead of a tofu. > > > > Then the problem will become "Emacs uses an ugly font where other apps > > don't", and we are none the wiser. > > _All_ apps have that problem, it is _not_ an Emacs-specific problem. Let's keep the discussion in context, okay? The context was the complaints that Emacs displays tofu where other applications display characters from installed fonts (which aren't GNU Unifont). It is those use cases that I was talking about. Where Emacs behaves no worse than other apps is in a different category. More about that below. > FWIW, here is my solution for Emojis (on Debian, after installing the > fonts-noto-color-emoji package): > > fc-match --format='%{charset}\n' NotoColorEmoji | tr ' ' '\n' | grep '^[^-][^-][^-][^-]' | grep -v '^200d$' | sed 's/^/#x/;s/-/ . #x/;s/^\(#[^#]*#[^#]*\)/!(\1)/;s/^\(.*\)$/(set-fontset-font "fontset-default" \1 "NotoColorEmoji")/' | tr '!' "'" > > This creates 154 calls to "set-fontset-font", and as a result > https://unicode.org/Public/UNIDATA/emoji/emoji-data.txt is displayed > nicely by Emacs. I'm sure you will tell me that you don't like that > solution ;-) But I doubt it is possible to do really better, because > Emojis are scattered across the whole Unicode code space. The Emoji problem was already analyzed and a solution is in the works which will not look anywhere like the above (setting up the fontset is not enough, btw). Let's move on to problems for which we don't yet have a solution, okay? > > IOW, using Unifont is simply a kind of admission of defeat: we don't > > really know why Emacs doesn't find a good font, so we take the easy path > > of providing _some_ font that will always work, albeit show ugly glyphs. > > I see no need to declare defeat, as we have facilities in Emacs to solve > > these problems in a better way, once we understand them. We should > > therefore try to understand the problems better, and once understood, > > solve them properly. > > The meaning of my proposal was, in fact, the exact opposite of an > admission of defeat, it was to make Emacs better in that respect than all > other apps. Displaying a tofu is an admission of defeat, and it's what > all other apps do. Using Unifont is a defeat in the sense that we don't do better by finding a good font. The Unifont "solution" is already in Emacs, see the setting of fontset-default. So if you are willing to settle for Unifont, we already do that. IMO, we should try to find ways to do better than that. > Another example: I have no fonts to display tamil characters on my > computer. Which means every app, including Emacs, displays tamil > characters as a sequence of tofus. I attach three pictures of the same > short tamil text displayed by Emacs, one with its current behavior > (tamil-no-font.png), one if it used Unifont as a fallback > (tamil-unifont.png), and one if a proper tamil font (the Debian package > fonts-lohit-taml) is installed (tamil-good-font.png). I do agree (of > course) that tamil-good-font.png is better than tamil-unifont.png, but I > really can't understand how tamil-no-font.png could be considered better > than tamil-unifont.png. Do you read the Tamil script (I don't)? If not, we should ask someone who does what they think about the Unifont glyphs. (To my un-expert eyes, the right-most glyph looks completely unrecognizable with Unifont, but that's me.) In any case, it is never a bad idea to try find better ways of handling this situation than we already have. For starters, I'm not sure I understand what kinds of situation is it that the user wants to read Tamil text, but the system isn't ready for that wrt installed fonts. When we understand the relevant use case, we might be able to come up with useful features for them. For example, perhaps we should have a command to report on fonts suitable to display a certain script or a certain block of Unicode codepoints -- it should be easy to write such a command, and it could be advertised as something users should run when they are about to start using a new script or range of characters. We could then provide some specific advice in the text displayed by that command if no suitable fonts were found. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 12:13 ` Eli Zaretskii @ 2020-10-17 13:09 ` Gregory Heytings via Emacs development discussions. 2020-10-17 13:33 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 13:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel > > Let's keep the discussion in context, okay? The context was the > complaints that Emacs displays tofu where other applications display > characters from installed fonts (which aren't GNU Unifont). It is those > use cases that I was talking about. Where Emacs behaves no worse than > other apps is in a different category. More about that below. > That was not the meaning of Lars' message 24 hours ago: > > I think, over the years, the most common question users have that has an > easy-to-fix solution is: "Why is Emacs displaying boxes for some of > these characters I'm seeing?" The solution is "install some more > fonts", of course. > > But could Emacs be more helpful here? That is, could we somehow, > unobtrusively, tell the users this when Emacs is trying to display a > character that it has no fonts for? > > For added helpfulness, would it be possible for Emacs to be even more > specific? Like, say "sudo apt install fonts-noto-color-emoji > fonts-symbola", or whatever, depending on the system. > About the use cases you are talking about, I haven't seen cases where "Emacs displays tofu where other applications display characters from installed fonts". My experience is that Emacs behaves better than many other applications in this respect (except for the particular case of Emojis). > > The Emoji problem was already analyzed and a solution is in the works > which will not look anywhere like the above (setting up the fontset is > not enough, btw). Let's move on to problems for which we don't yet have > a solution, okay? > I was not aware that you were working on a solution to the Emoji problem before I read your last email. My (admittedly hacky) solution works fine, in fact it makes Emacs behave better than any other program (browser or editor) on my computer, so I don't understand why you write that it's not enough. I'll continue to use it, until the better solution arrives. >> The meaning of my proposal was, in fact, the exact opposite of an >> admission of defeat, it was to make Emacs better in that respect than >> all other apps. Displaying a tofu is an admission of defeat, and it's >> what all other apps do. > > Using Unifont is a defeat in the sense that we don't do better by > finding a good font. The Unifont "solution" is already in Emacs, see > the setting of fontset-default. So if you are willing to settle for > Unifont, we already do that. IMO, we should try to find ways to do > better than that. > My proposal was for the cases where _no_ suitable font exists. In that case it is by definition impossible to find a good font. And no, the Unifont solution is not already _in_ Emacs, because it requires to install a particular additional package/font (Unifont), which is something most users will not do. The meaning of my proposal was only to include it _in_ Emacs, in short, to use, when it exists, the Unifont glyph in produce_glyphless_glyph() instead of creating a tofu with a hexcode. (For example, C-h h should IMO not display a single tofu.) > > Do you read the Tamil script (I don't)? If not, we should ask someone > who does what they think about the Unifont glyphs. (To my un-expert > eyes, the right-most glyph looks completely unrecognizable with Unifont, > but that's me.) > I do not read the Tamil script, but when I compare this to the variety of fonts in the languages I read, I doubt a Tamil reader would be unable to understand that text because that right-most glyph is not exactly positioned as it should be. > > In any case, it is never a bad idea to try find better ways of handling > this situation than we already have. For starters, I'm not sure I > understand what kinds of situation is it that the user wants to read > Tamil text, but the system isn't ready for that wrt installed fonts. > This does happen in practice. For example when opening a source file with comments written in a foreign language. In that case I'm not necessarily interested in actually reading that text, but I'd like to see at least what these characters are/look like. Another case when this does happen in practice is (as Lars mentioned in his message) for Emojis, in which case I'd like to have at least an idea of what the Emoji represents. Yet another case would be when visiting a website written in a foreign language with eww, again I'm probably not interested in reading the text but seeing tofus is just ugly. And so forth. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 13:09 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 13:33 ` Eli Zaretskii 2020-10-17 16:09 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 13:33 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 13:09:58 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > > Let's keep the discussion in context, okay? The context was the > > complaints that Emacs displays tofu where other applications display > > characters from installed fonts (which aren't GNU Unifont). It is those > > use cases that I was talking about. Where Emacs behaves no worse than > > other apps is in a different category. More about that below. > > That was not the meaning of Lars' message 24 hours ago: That was not the only message in the thread. > About the use cases you are talking about, I haven't seen cases where > "Emacs displays tofu where other applications display characters from > installed fonts". My experience is that Emacs behaves better than many > other applications in this respect (except for the particular case of > Emojis). I invite you to read the various font- and fontset-related bug reports we have, and also relevant posts on Reddit and elsewhere out there. > > The Emoji problem was already analyzed and a solution is in the works > > which will not look anywhere like the above (setting up the fontset is > > not enough, btw). Let's move on to problems for which we don't yet have > > a solution, okay? > > I was not aware that you were working on a solution to the Emoji problem I'm not; Robert Pluim is. See bug#44020. > The meaning of my proposal was only to include it _in_ Emacs, in > short, to use, when it exists, the Unifont glyph in > produce_glyphless_glyph() instead of creating a tofu with a hexcode. As I wrote, this is not easily done, as font installation is a system-wide action, as the font needs to be known by the system-wide utilities and libraries we use for font searching. And I personally wouldn't do this for Unifont. It's UGLY. But we are repeating ourselves, so let's agree to disagree on this. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 13:33 ` Eli Zaretskii @ 2020-10-17 16:09 ` Gregory Heytings via Emacs development discussions. 2020-10-17 16:30 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 16:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel >> About the use cases you are talking about, I haven't seen cases where >> "Emacs displays tofu where other applications display characters from >> installed fonts". My experience is that Emacs behaves better than many >> other applications in this respect (except for the particular case of >> Emojis). > > I invite you to read the various font- and fontset-related bug reports > we have, and also relevant posts on Reddit and elsewhere out there. Alas, I could not find anything with your indications. >> The meaning of my proposal was only to include it _in_ Emacs, in short, >> to use, when it exists, the Unifont glyph in produce_glyphless_glyph() >> instead of creating a tofu with a hexcode. > > As I wrote, this is not easily done, as font installation is a > system-wide action, as the font needs to be known by the system-wide > utilities and libraries we use for font searching. > Apparently it's not clear, so I'll say one last time that the feature I propose does _not_ require to install Unifont system-wide. It is to include Unifont in Emacs (say in etc/unifont), and to offer it as an additional option for glyphless-char-display, along with hex-code, empty-box, thin-space, and zero-width. The bitmap data would be used to draw the glyph in produce_glyphless_glyph() . FYI, that feature is not "already in Emacs", as you said: when Unifont is installed, it takes precedence over some (but not all, I'm not sure why) of the better-looking available fonts. One example: DejaVu Sans has hebrew characters, but with Unifont installed hebrew characters are displayed with Unifont. By the way, while doing various experiments around that question, I found a bug in ftcrfont.c. If a buffer is displayed with a certain font, and that font is removed, Emacs segfaults when it redisplays that buffer. The bug is in ftcrfont_open, on line 237: ft_face = cairo_ft_scaled_font_lock_face (scaled_font); This line should be followed by a: if (!ft_face) { unblock_input (); /* further cleanup? */ return Qnil; } ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 16:09 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 16:30 ` Eli Zaretskii 2020-10-17 17:37 ` Gregory Heytings via Emacs development discussions. 2020-10-18 8:06 ` Lars Ingebrigtsen 0 siblings, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 16:30 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 16:09:09 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > > I invite you to read the various font- and fontset-related bug reports > > we have, and also relevant posts on Reddit and elsewhere out there. > > Alas, I could not find anything with your indications. Nonetheless, it's there. > >> The meaning of my proposal was only to include it _in_ Emacs, in short, > >> to use, when it exists, the Unifont glyph in produce_glyphless_glyph() > >> instead of creating a tofu with a hexcode. > > > > As I wrote, this is not easily done, as font installation is a > > system-wide action, as the font needs to be known by the system-wide > > utilities and libraries we use for font searching. > > Apparently it's not clear, so I'll say one last time that the feature I > propose does _not_ require to install Unifont system-wide. It is to > include Unifont in Emacs (say in etc/unifont), and to offer it as an > additional option for glyphless-char-display, along with hex-code, > empty-box, thin-space, and zero-width. The bitmap data would be used to > draw the glyph in produce_glyphless_glyph() . I don't understand this proposal. Are you saying Emacs can already use a font that is not installed? If so, can you tell how to do that? The way Emacs uses fonts is by using various system libraries, such as Fontconfig, to find fonts that match certain criteria (script, encoding, character codepoint, size, slant, etc.). How do you propose to do that if, for example, Fontconfig knows nothing about a font? > FYI, that feature is not "already in Emacs", as you said: when Unifont is > installed, it takes precedence over some (but not all, I'm not sure why) > of the better-looking available fonts. One example: DejaVu Sans has > hebrew characters, but with Unifont installed hebrew characters are > displayed with Unifont. This actually means that Unifont is more "in Emacs" than I thought. ;-) Anyway, did you check the coverage of Hebrew by DejaVu Sans? does it cover Hebrew? In any case, Emacs uses Fontconfig to tell which fonts cover what characters, so I'm guessing the answer is in what Fontconfig thinks. (Of course, this is a separate issue, and I'm not sure we should discuss it in this thread.) > By the way, while doing various experiments around that question, I found > a bug in ftcrfont.c. If a buffer is displayed with a certain font, and > that font is removed, Emacs segfaults when it redisplays that buffer. > The bug is in ftcrfont_open, on line 237: > > ft_face = cairo_ft_scaled_font_lock_face (scaled_font); > > This line should be followed by a: > > if (!ft_face) > { > unblock_input (); > /* further cleanup? */ > return Qnil; > } We had already such a patch submitted, but not installed for some reason I cannot understand, and it was just recently mentioned on bug-gnu-emacs (together with a few more places where such a test is needed). ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 16:30 ` Eli Zaretskii @ 2020-10-17 17:37 ` Gregory Heytings via Emacs development discussions. 2020-10-17 17:58 ` Eli Zaretskii 2020-10-18 8:06 ` Lars Ingebrigtsen 1 sibling, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 17:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel >> Apparently it's not clear, so I'll say one last time that the feature I >> propose does _not_ require to install Unifont system-wide. It is to >> include Unifont in Emacs (say in etc/unifont), and to offer it as an >> additional option for glyphless-char-display, along with hex-code, >> empty-box, thin-space, and zero-width. The bitmap data would be used >> to draw the glyph in produce_glyphless_glyph() . > > I don't understand this proposal. Are you saying Emacs can already use > a font that is not installed? If so, can you tell how to do that? > I don't (yet) know, but I'd be surprised if this could not be done. Emacs already creates glyphs dynamically for tofus, and already uses black-and-white bitmaps at least in fringes. > > The way Emacs uses fonts is by using various system libraries, such as > Fontconfig, to find fonts that match certain criteria (script, encoding, > character codepoint, size, slant, etc.). How do you propose to do that > if, for example, Fontconfig knows nothing about a font? > The proposal is not to change anything to the way Emacs uses fonts, but to change something to the way Emacs behaves when it does not find an appropriate font to display a character. In that case Emacs would display a "degraded" glyph (from Unifont), and would issue a warning that the user should install another font. >> FYI, that feature is not "already in Emacs", as you said: when Unifont >> is installed, it takes precedence over some (but not all, I'm not sure >> why) of the better-looking available fonts. One example: DejaVu Sans >> has hebrew characters, but with Unifont installed hebrew characters are >> displayed with Unifont. > > This actually means that Unifont is more "in Emacs" than I thought. ;-) > > Anyway, did you check the coverage of Hebrew by DejaVu Sans? does it > cover Hebrew? > Yes, DejaVu Sans covers Hebrew (100% coverage). ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 17:37 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 17:58 ` Eli Zaretskii 2020-10-17 18:36 ` Gregory Heytings via Emacs development discussions. 0 siblings, 1 reply; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 17:58 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 17:37:30 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > >> Apparently it's not clear, so I'll say one last time that the feature I > >> propose does _not_ require to install Unifont system-wide. It is to > >> include Unifont in Emacs (say in etc/unifont), and to offer it as an > >> additional option for glyphless-char-display, along with hex-code, > >> empty-box, thin-space, and zero-width. The bitmap data would be used > >> to draw the glyph in produce_glyphless_glyph() . > > > > I don't understand this proposal. Are you saying Emacs can already use > > a font that is not installed? If so, can you tell how to do that? > > I don't (yet) know, but I'd be surprised if this could not be done. > Emacs already creates glyphs dynamically for tofus No, Emacs doesn't create any glyphs dynamically for tofus, it simply uses a smaller font in a box it itself draws. See xterm.c:x_draw_glyphless_glyph_string_foreground for how this is done on X (w32 and ns do it very similarly). > > The way Emacs uses fonts is by using various system libraries, such as > > Fontconfig, to find fonts that match certain criteria (script, encoding, > > character codepoint, size, slant, etc.). How do you propose to do that > > if, for example, Fontconfig knows nothing about a font? > > The proposal is not to change anything to the way Emacs uses fonts, but to > change something to the way Emacs behaves when it does not find an > appropriate font to display a character. In that case Emacs would display > a "degraded" glyph (from Unifont), and would issue a warning that the user > should install another font. I don't see how this can be done without serious changes in the code that finds and uses fonts. We _need_ the Fontconfig functionality. > > Anyway, did you check the coverage of Hebrew by DejaVu Sans? does it > > cover Hebrew? > > Yes, DejaVu Sans covers Hebrew (100% coverage). And this is in "emacs -Q" and with DejaVu Sans the default font? ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 17:58 ` Eli Zaretskii @ 2020-10-17 18:36 ` Gregory Heytings via Emacs development discussions. 2020-10-17 18:50 ` Eli Zaretskii 0 siblings, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 18:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel >>>> Apparently it's not clear, so I'll say one last time that the feature >>>> I propose does _not_ require to install Unifont system-wide. It is >>>> to include Unifont in Emacs (say in etc/unifont), and to offer it as >>>> an additional option for glyphless-char-display, along with hex-code, >>>> empty-box, thin-space, and zero-width. The bitmap data would be used >>>> to draw the glyph in produce_glyphless_glyph() . >>> >>> I don't understand this proposal. Are you saying Emacs can already >>> use a font that is not installed? If so, can you tell how to do that? >> >> I don't (yet) know, but I'd be surprised if this could not be done. >> Emacs already creates glyphs dynamically for tofus > > No, Emacs doesn't create any glyphs dynamically for tofus, it simply > uses a smaller font in a box it itself draws. See > xterm.c:x_draw_glyphless_glyph_string_foreground for how this is done on > X (w32 and ns do it very similarly). > Yes, but Emacs draws the box itself, and I suppose that if it can draw a box, it could instead draw a small black-and-white (8x16 or 16x16) bitmap. Emacs already does this for fringe bitmaps AFAIU. >>> The way Emacs uses fonts is by using various system libraries, such as >>> Fontconfig, to find fonts that match certain criteria (script, >>> encoding, character codepoint, size, slant, etc.). How do you propose >>> to do that if, for example, Fontconfig knows nothing about a font? >> >> The proposal is not to change anything to the way Emacs uses fonts, but >> to change something to the way Emacs behaves when it does not find an >> appropriate font to display a character. In that case Emacs would >> display a "degraded" glyph (from Unifont), and would issue a warning >> that the user should install another font. > > I don't see how this can be done without serious changes in the code > that finds and uses fonts. We _need_ the Fontconfig functionality. > With the proposal, there is no need to find the font, it is already included, and only used as a fallback when no appropriate font has been found. Unifont is just a long sequence of small bitmaps, Emacs only has to pick the bitmap corresponding to a given character in that list and to draw it. For example, the character "A" in Unifont is the 8x16 bitmap "0000000018242442427E424242420000" which occupies only 16 bytes. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 18:36 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 18:50 ` Eli Zaretskii 2020-10-17 18:56 ` Eli Zaretskii 2020-10-17 19:18 ` Gregory Heytings via Emacs development discussions. 0 siblings, 2 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 18:50 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 18:36:47 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > >> I don't (yet) know, but I'd be surprised if this could not be done. > >> Emacs already creates glyphs dynamically for tofus > > > > No, Emacs doesn't create any glyphs dynamically for tofus, it simply > > uses a smaller font in a box it itself draws. See > > xterm.c:x_draw_glyphless_glyph_string_foreground for how this is done on > > X (w32 and ns do it very similarly). > > Yes, but Emacs draws the box itself, and I suppose that if it can draw a > box, it could instead draw a small black-and-white (8x16 or 16x16) bitmap. > Emacs already does this for fringe bitmaps AFAIU. But the "bitmap" in this case is a font glyph. So to get at that glyph, we would need to have the code that is already in the library we use for accessing fonts, is that what you have in mind? So we'd need to have the code which understands how font files are structured, and how to find in them the glyph(s) for a certain character given that character's codepoint, and how to know whether the font has a glyph for that character to begin with? For example, look at xftfont_open, which is one implementation of how to open a font. Count the number of functions and variables whose names begin with "Fc" -- those are references to the Fontconfig library. Under your proposal, we'd need to implement all that in our own code, is that right? > >> The proposal is not to change anything to the way Emacs uses fonts, but > >> to change something to the way Emacs behaves when it does not find an > >> appropriate font to display a character. In that case Emacs would > >> display a "degraded" glyph (from Unifont), and would issue a warning > >> that the user should install another font. > > > > I don't see how this can be done without serious changes in the code > > that finds and uses fonts. We _need_ the Fontconfig functionality. > > With the proposal, there is no need to find the font, it is already > included, and only used as a fallback when no appropriate font has been > found. Unifont is just a long sequence of small bitmaps, Emacs only has > to pick the bitmap corresponding to a given character in that list and to > draw it. For example, the character "A" in Unifont is the 8x16 bitmap > "0000000018242442427E424242420000" which occupies only 16 bytes. So we will code a special font "backend" that is tailored to what Unifont has in its files now, and on top of that support this only for a single size of the default font, i.e. no support for "C-x +", no support for specifying a different size in default-frame-alist, etc.? And then we will have to maintain this code when Unifont changes something in its files? I'm sorry, but this makes very little sense to me, especially with an ugly font such as Unifont. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 18:50 ` Eli Zaretskii @ 2020-10-17 18:56 ` Eli Zaretskii 2020-10-17 19:18 ` Gregory Heytings via Emacs development discussions. 1 sibling, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 18:56 UTC (permalink / raw) To: ghe; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 21:50:43 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > For example, look at xftfont_open, which is one implementation of how > to open a font. Count the number of functions and variables whose > names begin with "Fc" -- those are references to the Fontconfig > library. Under your proposal, we'd need to implement all that in our > own code, is that right? Correction: not only the Fc* functions (from Fontconfig), but also the Xft* functions (from libXft) -- the latter actually access the font files and extract data from them. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 18:50 ` Eli Zaretskii 2020-10-17 18:56 ` Eli Zaretskii @ 2020-10-17 19:18 ` Gregory Heytings via Emacs development discussions. 2020-10-17 19:33 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Gregory Heytings via Emacs development discussions. @ 2020-10-17 19:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, monnier, emacs-devel > But the "bitmap" in this case is a font glyph. So to get at that glyph, > we would need to have the code that is already in the library we use for > accessing fonts, is that what you have in mind? So we'd need to have > the code which understands how font files are structured, and how to > find in them the glyph(s) for a certain character given that character's > codepoint, and how to know whether the font has a glyph for that > character to begin with? > > For example, look at xftfont_open, which is one implementation of how to > open a font. Count the number of functions and variables whose names > begin with "Fc" -- those are references to the Fontconfig library. > Under your proposal, we'd need to implement all that in our own code, is > that right? > I don't understand why you think we would need something complex. We don't need it. Unifont has the simplest format you can imagine: a sequence of bitmaps. >> With the proposal, there is no need to find the font, it is already >> included, and only used as a fallback when no appropriate font has been >> found. Unifont is just a long sequence of small bitmaps, Emacs only >> has to pick the bitmap corresponding to a given character in that list >> and to draw it. For example, the character "A" in Unifont is the 8x16 >> bitmap "0000000018242442427E424242420000" which occupies only 16 bytes. > > So we will code a special font "backend" that is tailored to what > Unifont has in its files now, and on top of that support this only for a > single size of the default font, i.e. no support for "C-x +", no support > for specifying a different size in default-frame-alist, etc.? And then > we will have to maintain this code when Unifont changes something in its > files? I'm sorry, but this makes very little sense to me, especially > with an ugly font such as Unifont. > The format of Unifont hasn't changed since it was created, about 25 years ago, and it will not change in the future (because this format is part of its design principles). But you are so reluctant to this idea that I don't think it is useful to continue this discussion. I only tried to propose something to improve Emacs, so that it would behave in a more user-friendly way when it is asked to display a character for which it has no fonts. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 19:18 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 19:33 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 19:33 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel > Date: Sat, 17 Oct 2020 19:18:25 +0000 > From: Gregory Heytings <ghe@sdf.org> > cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > > > But the "bitmap" in this case is a font glyph. So to get at that glyph, > > we would need to have the code that is already in the library we use for > > accessing fonts, is that what you have in mind? So we'd need to have > > the code which understands how font files are structured, and how to > > find in them the glyph(s) for a certain character given that character's > > codepoint, and how to know whether the font has a glyph for that > > character to begin with? > > > > For example, look at xftfont_open, which is one implementation of how to > > open a font. Count the number of functions and variables whose names > > begin with "Fc" -- those are references to the Fontconfig library. > > Under your proposal, we'd need to implement all that in our own code, is > > that right? > > I don't understand why you think we would need something complex. We > don't need it. Unifont has the simplest format you can imagine: a > sequence of bitmaps. Even for such a simple file, and even if we believe the file will not change, there's a lot of code to write, maintain and test, code that already exists in the libraries we use. For example, how do you know which characters are in Unifont and which aren't? this is a very basic capability that any font backend used by Emacs is required to have. Even if we want to write code to access Unifont "by hand", we still need to do that within the framework of how Emacs deals with fonts. > > So we will code a special font "backend" that is tailored to what > > Unifont has in its files now, and on top of that support this only for a > > single size of the default font, i.e. no support for "C-x +", no support > > for specifying a different size in default-frame-alist, etc.? And then > > we will have to maintain this code when Unifont changes something in its > > files? I'm sorry, but this makes very little sense to me, especially > > with an ugly font such as Unifont. > > The format of Unifont hasn't changed since it was created, about 25 years > ago, and it will not change in the future (because this format is part of > its design principles). What about the contents -- do they also not change? If they do, we will need to know how to read the data and how to adapt to changes in the contents (e.g., when glyphs are added/removed from the font). > But you are so reluctant to this idea that I don't think it is useful to > continue this discussion. I'm reluctant to reinvent the wheel that others already invented, and to maintain code that is already maintained by experts in this area, yes. It is not an efficient use of our scarce resources. > I only tried to propose something to improve Emacs, so that it would > behave in a more user-friendly way when it is asked to display a > character for which it has no fonts. I appreciate the motivation, but the way to improve Emacs in this area is not by using Unifont, let alone "manually" handling it. Much better solutions exist, we just need to understand the problems well enough, find their solutions, and improve/extend Emacs to incorporate those solutions. Computer typography is a fast-advancing field of technology, we just need to take advantage of those advances in a timely manner. One reason for migrating our main font backends to HarfBuzz was that it allows us to follow those advances much more easily. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 16:30 ` Eli Zaretskii 2020-10-17 17:37 ` Gregory Heytings via Emacs development discussions. @ 2020-10-18 8:06 ` Lars Ingebrigtsen 2020-10-18 14:55 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-18 8:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Gregory Heytings, monnier, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> if (!ft_face) >> { >> unblock_input (); >> /* further cleanup? */ >> return Qnil; >> } > > We had already such a patch submitted, but not installed for some > reason I cannot understand, and it was just recently mentioned on > bug-gnu-emacs (together with a few more places where such a test is > needed). I seem to recall that the reason was that the patch doesn't cover the other places where the test is needed? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-18 8:06 ` Lars Ingebrigtsen @ 2020-10-18 14:55 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-18 14:55 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: ghe, monnier, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: Gregory Heytings <ghe@sdf.org>, monnier@iro.umontreal.ca, > emacs-devel@gnu.org > Date: Sun, 18 Oct 2020 10:06:48 +0200 > > >> if (!ft_face) > >> { > >> unblock_input (); > >> /* further cleanup? */ > >> return Qnil; > >> } > > > > We had already such a patch submitted, but not installed for some > > reason I cannot understand, and it was just recently mentioned on > > bug-gnu-emacs (together with a few more places where such a test is > > needed). > > I seem to recall that the reason was that the patch doesn't cover the > other places where the test is needed? The other places were identified in the discussion, and are quite easy to find by looking at the code. I'd write the code myself, but I have no access to a system where I can run the result, so I prefer that someone else does that. ^ permalink raw reply [flat|nested] 118+ messages in thread
* RE: Suggest installing more fonts? 2020-10-17 11:21 ` Gregory Heytings via Emacs development discussions. 2020-10-17 12:13 ` Eli Zaretskii @ 2020-10-17 17:30 ` Drew Adams 1 sibling, 0 replies; 118+ messages in thread From: Drew Adams @ 2020-10-17 17:30 UTC (permalink / raw) To: Gregory Heytings, Eli Zaretskii; +Cc: larsi, monnier, emacs-devel [Once again, had to add emacs-devel manually. `Reply All' wasn't good enough.] > I attach three pictures of the same > short tamil text displayed by Emacs, one with its current behavior > (tamil-no-font.png), one if it used Unifont as a fallback > (tamil-unifont.png), and one if a proper tamil font (the Debian package > fonts-lohit-taml) is installed (tamil-good-font.png). I do agree (of > course) that tamil-good-font.png is better than tamil-unifont.png, but I > really can't understand how tamil-no-font.png could be considered better > than tamil-unifont.png. (Caveat: Not following the details of this thread.) I think, at least for the case shown by those images, that showing the less-than-ideal, but presumably readable, chars is better than just showing tofus. However, in that case, it would be good if Emacs could also (optionally, in case notification would bother some users) notify you that you didn't have a font supporting some chars, and so Emacs used font Unifont as a fallback. If Emacs could further highlight or otherwise show which chars (or some of them) it's talking about, that would be even more helpful. IOW, if Emacs could (1) make it possible to read the text, showing more/all chars, even if with a poor font, AND (2) tell users that some chars underwent this display degradation because they don't have a font installed for them, AND (3) indicate which chars underwent the possible degradation, that would be an improvement. Other things being equal, that is. E.g., if UI or performance would be strongly negatively influenced, then trying to help this way might not be worth it in some cases. ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 23:02 ` Gregory Heytings via Emacs development discussions. 2020-10-17 7:46 ` Eli Zaretskii @ 2020-10-18 4:12 ` Richard Stallman 2020-10-18 14:45 ` Eli Zaretskii 1 sibling, 1 reply; 118+ messages in thread From: Richard Stallman @ 2020-10-18 4:12 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, monnier, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > A user has (usually) no idea of these "several problems", and knows even > less how to fix them. For such users the problem is simply "Emacs > displays gibberish". If we can reproduce that case, we might be able to implement changes that would detect some of the causes of the gibberish, and take action either to (1) provide a fallback substitute for something or (2) give a meaningful and useful error message. That would be a step forward, at least; and after that we could see what problems users still encounter. > So IMO for these users it would be much better to display characters with > a low-resolution font, together with a warning (and perhaps a pointer to a > short guide) (as a help-echo and/or in the echo area), instead of a tofu. I don't know what you mean by "tofu", but your idea of displaying the right character in the wrong font, rather than gibberish, sounds useful. The possible challenge would be deciding when to do this. When would users prefer this, and when would users prefer what Emacs does now? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-18 4:12 ` Richard Stallman @ 2020-10-18 14:45 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-18 14:45 UTC (permalink / raw) To: rms; +Cc: ghe, larsi, monnier, emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Sun, 18 Oct 2020 00:12:25 -0400 > Cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org > > > So IMO for these users it would be much better to display characters with > > a low-resolution font, together with a warning (and perhaps a pointer to a > > short guide) (as a help-echo and/or in the echo area), instead of a tofu. > > I don't know what you mean by "tofu", but your idea of displaying the > right character in the wrong font, rather than gibberish, sounds > useful. "Tofu" is the code of the character in hex, displayed in a box -- this is how we by default show on GUI frames characters for which Emacs couldn't find a suitable font. But that isn't gibberish, in any shape or form. It is one of the accepted ways of showing a character for which there's no font; other applications do the same (and don't bother to show any message about that, btw). ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 19:49 ` Stefan Monnier 2020-10-16 22:14 ` Gregory Heytings via Emacs development discussions. @ 2020-10-20 22:46 ` Stephen Leake 1 sibling, 0 replies; 118+ messages in thread From: Stephen Leake @ 2020-10-20 22:46 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> [ FWIW, I don't think replacing those tofu chars with some "ugly default" >>> is a good option: it's more work with very little benefit if any, since >>> the problem still remains largely unchanged. ] >> FWIW, I do not agree with this. > > I kind of guessed ;-) > >> It is much better from a end-user viewpoint to see something they can >> decypher, even if it has a non-optimal rendering, than to see a hex >> code in a box. > > [ What you describe is the "very little benefit" I referred to. ] > > I think most users won't be happy with the result in both cases, > so they'll still want to find a fix for the problem [ This is "the > problem still remains largely unchanged" that I referred to. ] I would be happier with an ugly but readable solution. This problem occurs most often for me when reading email (this list especially); the message is refering to some specific character that is involved in some problem. If I knew what the character was, I would not bother to track down the appropriate script/font. Apparently I can type C-x C-8 = to see what the character is by Unicode name, so that's a partial workaround. >>> - Does the problem only affect Emacs and not other applications? If so >>> why? If not, then what do other applications do about it? I'll have to remember to view a problematic message via Firefox, to see if it can display the character. -- Written from unceded ancestral homelands of the Huichiun, an Ohlone people,for which I pay <a href= ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-16 18:48 ` Stefan Monnier 2020-10-16 19:13 ` Eli Zaretskii 2020-10-16 19:42 ` Gregory Heytings via Emacs development discussions. @ 2020-10-17 6:31 ` Lars Ingebrigtsen 2020-10-17 9:08 ` Eli Zaretskii 2 siblings, 1 reply; 118+ messages in thread From: Lars Ingebrigtsen @ 2020-10-17 6:31 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > C- Fix the problem that makes Emacs fail to find the fonts when other > applications deal with it just fine. I agree with everything in this post, but just one comment here: There's two philosophies here, depending on the "class" of the application. The applications that are primarily concerned with displaying documents (Chrome, Firefox, Libreoffice) put a lot of work into this, and both have giant lists of fonts preinstalled, and are distributed with (some) fonts. Other apps, that are more bare-bones (like Terminal) just look at the default font and then tufo if the font doesn't have that glyph. Emacs is somewhere in the middle here, as usual. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: Suggest installing more fonts? 2020-10-17 6:31 ` Lars Ingebrigtsen @ 2020-10-17 9:08 ` Eli Zaretskii 0 siblings, 0 replies; 118+ messages in thread From: Eli Zaretskii @ 2020-10-17 9:08 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: monnier, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Sat, 17 Oct 2020 08:31:33 +0200 > Cc: emacs-devel@gnu.org > > There's two philosophies here, depending on the "class" of the > application. The applications that are primarily concerned with > displaying documents (Chrome, Firefox, Libreoffice) put a lot of work > into this, and both have giant lists of fonts preinstalled, and are > distributed with (some) fonts. > > Other apps, that are more bare-bones (like Terminal) just look at the > default font and then tufo if the font doesn't have that glyph. > > Emacs is somewhere in the middle here, as usual. A significant difference between Emacs and other apps is that Emacs doesn't use fixed lists of fonts, but instead relies on system font configurations to provide the fonts suitable for displaying some character. Thus, Emacs allows the users to install _any_ font that supports a character, and get that displayed, even if the font is not one of those known to the application in advance. I believe this makes Emacs more flexible and future-proof, but as usual, that power comes with a price. For that reason, I think it doesn't help too much to look at other applications, because their philosophy in this department is very different. We should instead identify the issues Emacs users encounter wrt fonts, and design and implement solutions for those issues, whether by improving documentation or by enhancing our font search and matching infrastructures. For example, the issues with Emoji are due to several fundamental issues we already identified (the fact that Emoji belong to a large and very heterogeneous "script" we call "symbol", for example) and are working on a solution. ^ permalink raw reply [flat|nested] 118+ messages in thread
end of thread, other threads:[~2020-10-25 15:19 UTC | newest] Thread overview: 118+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-10-16 10:54 Suggest installing more fonts? Lars Ingebrigtsen 2020-10-16 11:07 ` Eli Zaretskii 2020-10-16 11:30 ` Gregory Heytings via Emacs development discussions. 2020-10-16 12:50 ` Eli Zaretskii 2020-10-16 12:59 ` Gregory Heytings via Emacs development discussions. 2020-10-16 13:13 ` Eli Zaretskii 2020-10-16 14:38 ` Gregory Heytings via Emacs development discussions. 2020-10-16 15:48 ` Eli Zaretskii 2020-10-16 16:09 ` Gregory Heytings via Emacs development discussions. 2020-10-16 18:48 ` Eli Zaretskii 2020-10-16 19:40 ` Stefan Monnier 2020-10-17 6:57 ` Eli Zaretskii 2020-10-17 13:49 ` Stefan Monnier 2020-10-17 14:08 ` Eli Zaretskii 2020-10-17 15:04 ` Stefan Monnier 2020-10-17 15:18 ` Eli Zaretskii 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 14:08 ` Gregory Heytings via Emacs development discussions. 2020-10-16 15:34 ` Eli Zaretskii 2020-10-16 15:51 ` Gregory Heytings via Emacs development discussions. 2020-10-16 13:24 ` Lars Ingebrigtsen 2020-10-16 13:30 ` Rudolf Schlatte 2020-10-17 6:14 ` Lars Ingebrigtsen 2020-10-16 14:41 ` Eli Zaretskii 2020-10-17 6:23 ` Lars Ingebrigtsen 2020-10-17 8:55 ` Eli Zaretskii 2020-10-18 8:03 ` Lars Ingebrigtsen 2020-10-18 15:21 ` Eli Zaretskii 2020-10-19 8:31 ` Lars Ingebrigtsen 2020-10-19 14:50 ` Eli Zaretskii 2020-10-20 10:28 ` Lars Ingebrigtsen 2020-10-20 14:31 ` Eli Zaretskii 2020-10-21 10:46 ` Lars Ingebrigtsen 2020-10-21 11:31 ` Michael Albinus 2020-10-21 11:58 ` Stefan Kangas 2020-10-21 14:54 ` Eli Zaretskii 2020-10-21 16:03 ` tofu-help-mode (was: Suggest installing more fonts?) Stefan Monnier 2020-10-22 12:07 ` tofu-help-mode Lars Ingebrigtsen 2020-10-22 15:21 ` tofu-help-mode Stefan Monnier 2020-10-23 10:46 ` tofu-help-mode Lars Ingebrigtsen 2020-10-21 17:46 ` Suggest installing more fonts? Michael Albinus 2020-10-21 18:14 ` Eli Zaretskii 2020-10-22 7:27 ` Michael Albinus 2020-10-22 13:09 ` Eli Zaretskii 2020-10-23 16:53 ` Michael Albinus 2020-10-23 18:13 ` Eli Zaretskii 2020-10-25 11:47 ` Michael Albinus 2020-10-25 15:19 ` Eli Zaretskii 2020-10-21 17:25 ` Juri Linkov 2020-10-21 11:59 ` Basil L. Contovounesios 2020-10-21 12:05 ` Lars Ingebrigtsen 2020-10-21 12:31 ` Stephen Berman 2020-10-21 14:47 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus 2020-10-22 2:34 ` Eli Zaretskii 2020-10-22 12:34 ` Rasmus 2020-10-22 13:35 ` Eli Zaretskii 2020-10-21 20:19 ` Rasmus 2020-10-22 11:32 ` Lars Ingebrigtsen 2020-10-22 12:02 ` Gregory Heytings via Emacs development discussions. 2020-10-22 12:08 ` Lars Ingebrigtsen 2020-10-22 12:29 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:31 ` Eli Zaretskii 2020-10-23 3:49 ` Richard Stallman 2020-10-23 6:59 ` Eli Zaretskii 2020-10-23 8:28 ` Andreas Schwab 2020-10-23 11:01 ` Eli Zaretskii 2020-10-23 15:50 ` Andreas Schwab 2020-10-23 16:38 ` Stefan Monnier 2020-10-23 18:03 ` Eli Zaretskii 2020-10-23 18:43 ` Robert Pluim 2020-10-23 19:31 ` Eli Zaretskii 2020-10-24 9:35 ` Robert Pluim 2020-10-23 10:45 ` Lars Ingebrigtsen 2020-10-23 11:07 ` Eli Zaretskii 2020-10-23 14:59 ` Stefan Monnier 2020-10-23 17:56 ` Eli Zaretskii 2020-10-23 18:13 ` Stefan Monnier 2020-10-23 18:23 ` Eli Zaretskii 2020-10-23 18:36 ` Stefan Monnier 2020-10-23 18:18 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:16 ` Eli Zaretskii 2020-10-22 13:40 ` Gregory Heytings via Emacs development discussions. 2020-10-22 13:52 ` Eli Zaretskii 2020-10-22 14:20 ` Gregory Heytings via Emacs development discussions. 2020-10-22 15:50 ` Eli Zaretskii 2020-10-16 18:48 ` Stefan Monnier 2020-10-16 19:13 ` Eli Zaretskii 2020-10-16 19:37 ` Stefan Monnier 2020-10-17 6:37 ` Eli Zaretskii 2020-10-17 13:44 ` Stefan Monnier 2020-10-16 19:42 ` Gregory Heytings via Emacs development discussions. 2020-10-16 19:49 ` Stefan Monnier 2020-10-16 22:14 ` Gregory Heytings via Emacs development discussions. 2020-10-16 22:35 ` Stefan Monnier 2020-10-16 23:02 ` Gregory Heytings via Emacs development discussions. 2020-10-17 7:46 ` Eli Zaretskii 2020-10-17 11:21 ` Gregory Heytings via Emacs development discussions. 2020-10-17 12:13 ` Eli Zaretskii 2020-10-17 13:09 ` Gregory Heytings via Emacs development discussions. 2020-10-17 13:33 ` Eli Zaretskii 2020-10-17 16:09 ` Gregory Heytings via Emacs development discussions. 2020-10-17 16:30 ` Eli Zaretskii 2020-10-17 17:37 ` Gregory Heytings via Emacs development discussions. 2020-10-17 17:58 ` Eli Zaretskii 2020-10-17 18:36 ` Gregory Heytings via Emacs development discussions. 2020-10-17 18:50 ` Eli Zaretskii 2020-10-17 18:56 ` Eli Zaretskii 2020-10-17 19:18 ` Gregory Heytings via Emacs development discussions. 2020-10-17 19:33 ` Eli Zaretskii 2020-10-18 8:06 ` Lars Ingebrigtsen 2020-10-18 14:55 ` Eli Zaretskii 2020-10-17 17:30 ` Drew Adams 2020-10-18 4:12 ` Richard Stallman 2020-10-18 14:45 ` Eli Zaretskii 2020-10-20 22:46 ` Stephen Leake 2020-10-17 6:31 ` Lars Ingebrigtsen 2020-10-17 9:08 ` Eli Zaretskii
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.