Package: emacs;
Reported by: Rodrigo Morales <rodrigo-mailing-lists <at> morales.pe>
Date: Sat, 12 Oct 2024 19:12:01 UTC
Severity: normal
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Rodrigo Morales <rodrigo-mailing-lists <at> morales.pe> To: 73777 <at> debbugs.gnu.org Subject: bug#73777: set-fontset-font doesn't set :size for specific characters when using some fonts Date: Sat, 12 Oct 2024 14:10:25 -0500
I am using GNU Emacs 29.4 in Ubuntu 22.04.5 LTS. Today, I was trying to change the font size for the character =“= (#x201C, LEFT DOUBLE QUOTATION MARK) using the sexp shown below. I noticed an inconsistency: that sexp only sets the size for the character =“= when specific fonts are used. #+BEGIN_SRC elisp (set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50)) #+END_SRC In the section below, I describe minimal reproducible experiments. In the experiments, I use the file =/tmp/a.txt= containing the contents of the code block below: #+HEADER: :tangle /tmp/a.txt #+BEGIN_SRC text a “ b #+END_SRC ** Experiment 1 (:size for #x201C is not set): Set :size for #x201C I started Emacs using the command shown below: #+HEADER: :eval no #+BEGIN_SRC sh ./src/emacs -Q /tmp/a.txt #+END_SRC The code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.is/9LxOH #+BEGIN_SRC text a: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x44) “: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x209) b: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x45) #+END_SRC Then, I evaluated the sexp shown below. Upon evaluating it, the size of the character “ (#x201C, LEFT DOUBLE QUOTATION MARK) didn't seem to increase. The second code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.ph/rVZSt #+begin_src elisp (set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50)) #+end_src #+BEGIN_SRC text a: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x44) “: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x209) b: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x45) #+END_SRC ** Experiment 2 (:size for #x201C is not set): Pass "Noto Sans Mono 10" to set-frame-font, then set :size for #x201C I started Emacs using the command shown below: #+HEADER: :eval no #+BEGIN_SRC sh ./src/emacs -Q /tmp/a.txt #+END_SRC First, I evaluated the sexp shown in the first code block below. The second code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.ph/PVc8q #+begin_src elisp (set-frame-font "Noto Sans Mono 10" nil t) #+end_src #+BEGIN_SRC text a: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x44) “: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x209) b: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x45) #+END_SRC Then, I evaluated the sexp shown below. Upon evaluating it, the size of the character “ (#x201C, LEFT DOUBLE QUOTATION MARK) didn't seem to increase. The second code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.is/AIuP0 #+begin_src elisp (set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50)) #+end_src #+BEGIN_SRC text a: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x44) “: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x209) b: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x45) #+END_SRC ** Experiment 3 (:size for #x201C is set): Pass "Fixed 5" to set-frame-font, then set :family and :size for #x201C I started Emacs using the command shown below: #+HEADER: :eval no #+BEGIN_SRC sh ./src/emacs -Q /tmp/a.txt #+END_SRC First, I evaluated the sexp shown in the first code block below. The second code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.is/v4Sr9 #+begin_src elisp (set-frame-font "Fixed 5" nil t) #+end_src #+BEGIN_SRC text a: ftcrhb:-Misc-Fixed-regular-normal-normal-*-7-*-*-*-c-50-iso10646-1 (#x62) “: ftcrhb:-Misc-Fixed-medium-normal-normal-ja-13-*-*-*-c-120-iso10646-1 (#x3A3) b: ftcrhb:-Misc-Fixed-regular-normal-normal-*-7-*-*-*-c-50-iso10646-1 (#x63) #+END_SRC Then, I evaluated the sexp shown below. Upon evaluating it, the size of the character “ (#x201C, LEFT DOUBLE QUOTATION MARK) significantly increased. The second code block below shows the font reported for each character by calling =what-cursor-position= with a prefix argument. Screenshot: https://archive.is/KYRGd #+begin_src elisp (set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50)) #+end_src #+BEGIN_SRC text a: ftcrhb:-Misc-Fixed-regular-normal-normal-*-7-*-*-*-c-50-iso10646-1 (#x62) “: ftcrhb:-GOOG-Noto Sans Mono-regular-normal-normal-*-50-*-*-*-*-0-iso10646-1 (#x209) b: ftcrhb:-Misc-Fixed-regular-normal-normal-*-7-*-*-*-c-50-iso10646-1 (#x63) #+END_SRC ** Conclusion When the default font is not changed (see experiment 1) or is set using =(set-frame-font "Noto Sans Mono 10" nil t)= (see experiment 2), the sexp =(set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50))= didn't seem to increase the size of the character “ (#x201C, LEFT DOUBLE QUOTATION MARK). When the default font is set using =(set-frame-font "Fixed 5" nil t)= (see experiment 3), the sexp =(set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50))= significantly increased the size of the character “ (#x201C, LEFT DOUBLE QUOTATION MARK). To me, the expected behavior is that =(set-fontset-font t ?“ (font-spec :family "Noto Sans Mono" :size 50))= sets =:family= and =:size= for “ (#x201C, LEFT DOUBLE QUOTATION MARK) regardless of the font that is being used.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.