diff options
author | Yuuki Harano <masm+github@masm11.me> | 2021-11-11 00:39:53 +0900 |
---|---|---|
committer | Yuuki Harano <masm+github@masm11.me> | 2021-11-11 00:39:53 +0900 |
commit | 4dd1f56f29fc598a8339a345c2f8945250600602 (patch) | |
tree | af341efedffe027e533b1bcc0dbf270532e48285 /lisp/international/fontset.el | |
parent | 4c49ec7f865bdad1629d2f125f71f4e506b258f2 (diff) | |
parent | 810fa21d26453f898de9747ece7205dfe6de9d08 (diff) | |
download | emacs-4dd1f56f29fc598a8339a345c2f8945250600602.tar.gz emacs-4dd1f56f29fc598a8339a345c2f8945250600602.tar.bz2 emacs-4dd1f56f29fc598a8339a345c2f8945250600602.zip |
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs into feature/pgtk
Diffstat (limited to 'lisp/international/fontset.el')
-rw-r--r-- | lisp/international/fontset.el | 212 |
1 files changed, 121 insertions, 91 deletions
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 3deaff96774..7c3a7cd1a9e 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -157,7 +157,9 @@ (armenian #x531) (hebrew #x5D0) (vai #xA500) - (arabic #x628) + ;; U+06C1 prevents us from using bad fonts, like DejaVu Sans, + ;; for Arabic text. + (arabic #x628 #x6C1) (syriac #x710) (thaana #x78C) (devanagari #x915) @@ -191,7 +193,7 @@ (kanbun #x319D) (han #x5B57) (yi #xA288) - (javanese #xA980) + (javanese #xA980) (cham #xAA00) (tai-viet #xAA80) (hangul #xAC00) @@ -209,9 +211,10 @@ (deseret #x10400) (shavian #x10450) (osmanya #x10480) - (osage #x104B0) + (osage #x104B0) (elbasan #x10500) (caucasian-albanian #x10530) + (vithkuqi #x10570) (linear-a #x10600) (cypriot-syllabary #x10800) (palmyrene #x10860) @@ -220,79 +223,85 @@ (lydian #x10920) (kharoshthi #x10A00) (manichaean #x10AC0) - (hanifi-rohingya #x10D00) - (yezidi #x10E80) - (old-sogdian #x10F00) - (sogdian #x10F30) - (chorasmian #x10FB0) - (elymaic #x10FE0) + (hanifi-rohingya #x10D00) + (yezidi #x10E80) + (old-sogdian #x10F00) + (sogdian #x10F30) + (chorasmian #x10FB0) + (elymaic #x10FE0) + (old-uyghur #x10F70) (mahajani #x11150) (sinhala-archaic-number #x111E1) (khojki #x11200) (khudawadi #x112B0) (grantha #x11305) - (newa #x11400) + (newa #x11400) (tirhuta #x11481) (siddham #x11580) (modi #x11600) (takri #x11680) - (dogra #x11800) + (dogra #x11800) (warang-citi #x118A1) - (dives-akuru #x11900) - (nandinagari #x119a0) - (zanabazar-square #x11A00) - (soyombo #x11A50) + (dives-akuru #x11900) + (nandinagari #x119a0) + (zanabazar-square #x11A00) + (soyombo #x11A50) (pau-cin-hau #x11AC0) - (bhaiksuki #x11C00) - (marchen #x11C72) - (masaram-gondi #x11D00) - (gunjala-gondi #x11D60) - (makasar #x11EE0) + (bhaiksuki #x11C00) + (marchen #x11C72) + (masaram-gondi #x11D00) + (gunjala-gondi #x11D60) + (makasar #x11EE0) (cuneiform #x12000) (cuneiform-numbers-and-punctuation #x12400) + (cypro-minoan #x12F90) (egyptian #x13000) (mro #x16A40) + (tangsa #x16A70 #x16AC0) (bassa-vah #x16AD0) (pahawh-hmong #x16B11) - (medefaidrin #x16E40) - (tangut #x17000) - (tangut-components #x18800) - (khitan-small-script #x18B00) - (nushu #x1B170) + (medefaidrin #x16E40) + (tangut #x17000) + (tangut-components #x18800) + (khitan-small-script #x18B00) + (nushu #x1B170) (duployan-shorthand #x1BC20) + (znamenny-musical-notation #x1CF00 #x1CF42 #x1CF50) (byzantine-musical-symbol #x1D000) (musical-symbol #x1D100) (ancient-greek-musical-notation #x1D200) (tai-xuan-jing-symbol #x1D300) (counting-rod-numeral #x1D360) - (nyiakeng-puachue-hmong #x1e100) - (wancho #x1e2c0) + (nyiakeng-puachue-hmong #x1e100) + (toto #x1E290) + (wancho #x1e2c0) (mende-kikakui #x1E810) - (adlam #x1E900) - (indic-siyaq-number #x1ec71) - (ottoman-siyaq-number #x1ed01) + (adlam #x1E900) + (indic-siyaq-number #x1ec71) + (ottoman-siyaq-number #x1ed01) (mahjong-tile #x1F000) - (domino-tile #x1F030))) + (domino-tile #x1F030) + (emoji #x1F300 #x1F600))) (defvar otf-script-alist) -;; The below was synchronized with the latest Aug 16, 2018 version of +;; The below was synchronized with the latest Oct 8, 2020 version of ;; https://docs.microsoft.com/en-us/typography/opentype/spec/scripttags (setq otf-script-alist '((adlm . adlam) - (ahom . ahom) - (hluw . anatolian) - (arab . arabic) + (ahom . ahom) + (hluw . anatolian) + (arab . arabic) (armi . aramaic) (armn . armenian) (avst . avestan) (bali . balinese) (bamu . bamum) - (bass . bassa-vah) + (bass . bassa-vah) (batk . batak) (bng2 . bengali) (beng . bengali) - (bhks . bhaiksuki) + (bhks . bhaiksuki) (bopo . bopomofo) (brah . brahmi) (brai . braille) @@ -301,10 +310,11 @@ (byzm . byzantine-musical-symbol) (cans . canadian-aboriginal) (cari . carian) - (aghb . caucasian-albanian) + (aghb . caucasian-albanian) (cakm . chakma) (cham . cham) (cher . cherokee) + (chrs . chorasmian) (copt . coptic) (xsux . cuneiform) (cprt . cypriot) @@ -312,29 +322,31 @@ (dsrt . deseret) (deva . devanagari) (dev2 . devanagari) - (dogr . dogra) - (dupl . duployan-shorthand) + (diak . dives-akuru) + (dogr . dogra) + (dupl . duployan-shorthand) (egyp . egyptian) - (elba . elbasan) + (elba . elbasan) + (elym . elymaic) (ethi . ethiopic) (geor . georgian) (glag . glagolitic) (goth . gothic) - (gran . grantha) + (gran . grantha) (grek . greek) (gujr . gujarati) (gjr2 . gujarati) - (gong . gunjala-gondi) + (gong . gunjala-gondi) (guru . gurmukhi) (gur2 . gurmukhi) (hani . han) (hang . hangul) (jamo . hangul) - (rohg . hanifi-rohingya) + (rohg . hanifi-rohingya) (hano . hanunoo) - (hatr . hatran) + (hatr . hatran) (hebr . hebrew) - (hung . old-hungarian) + (hung . old-hungarian) (phli . inscriptional-pahlavi) (prti . inscriptional-parthian) (java . javanese) @@ -344,77 +356,79 @@ (kana . kana) ; Hiragana (kali . kayah-li) (khar . kharoshthi) + (kits . khitan-small-script) (khmr . khmer) - (khoj . khojki) - (sind . khudawadi) + (khoj . khojki) + (sind . khudawadi) (lao\ . lao) (latn . latin) (lepc . lepcha) (limb . limbu) (lina . linear_a) (linb . linear_b) - (lisu . lisu) - (lyci . lycian) - (lydi . lydian) - (mahj . mahajani) - (maka . makasar) - (marc . marchen) + (lisu . lisu) + (lyci . lycian) + (lydi . lydian) + (mahj . mahajani) + (maka . makasar) + (marc . marchen) (mlym . malayalam) (mlm2 . malayalam) (mand . mandaic) - (mani . manichaean) - (gonm . masaram-gondi) + (mani . manichaean) + (gonm . masaram-gondi) (math . mathematical) - (medf . medefaidrin) + (medf . medefaidrin) (mtei . meetei-mayek) - (mend . mende-kikakui) + (mend . mende-kikakui) (merc . meroitic) (mero . meroitic) - (plrd . miao) - (modi . modi) + (plrd . miao) + (modi . modi) (mong . mongolian) - (mroo . mro) - (mult . multani) + (mroo . mro) + (mult . multani) (musc . musical-symbol) (mym2 . burmese) (mymr . burmese) - (nbat . nabataean) - (newa . newa) + (nbat . nabataean) + (newa . newa) (nko\ . nko) - (nshu . nushu) + (nshu . nushu) + (hmnp . nyiakeng-puachue-hmong) (ogam . ogham) (olck . ol-chiki) - (ital . old_italic) - (xpeo . old_persian) - (narb . old-north-arabian) - (perm . old-permic) - (sogo . old-sogdian) + (ital . old-italic) + (xpeo . old-persian) + (narb . old-north-arabian) + (perm . old-permic) + (sogo . old-sogdian) (sarb . old-south-arabian) (orkh . old-turkic) (orya . oriya) (ory2 . oriya) - (osge . osage) + (osge . osage) (osma . osmanya) - (hmng . pahawh-hmong) - (palm . palmyrene) - (pauc . pau-cin-hau) + (hmng . pahawh-hmong) + (palm . palmyrene) + (pauc . pau-cin-hau) (phag . phags-pa) - (phli . inscriptional-pahlavi) + (phli . inscriptional-pahlavi) (phnx . phoenician) - (phlp . psalter-pahlavi) - (prti . inscriptional-parthian) + (phlp . psalter-pahlavi) + (prti . inscriptional-parthian) (rjng . rejang) (runr . runic) (samr . samaritan) (saur . saurashtra) (shrd . sharada) (shaw . shavian) - (sidd . siddham) - (sgnw . sutton-sign-writing) + (sidd . siddham) + (sgnw . sutton-sign-writing) (sinh . sinhala) - (sogd . sogdian) + (sogd . sogdian) (sora . sora-sompeng) - (soyo . soyombo) + (soyo . soyombo) (sund . sundanese) (sylo . syloti_nagri) (syrc . syriac) @@ -427,19 +441,21 @@ (takr . takri) (taml . tamil) (tml2 . tamil) - (tang . tangut) + (tang . tangut) (telu . telugu) (tel2 . telugu) (thaa . thaana) (thai . thai) (tibt . tibetan) (tfng . tifinagh) - (tirh . tirhuta) + (tirh . tirhuta) (ugar . ugaritic) (vai\ . vai) - (wara . warang-citi) - (yi\ \ . yi) - (zanb . zanabazar-square))) + (wcho . wancho) + (wara . warang-citi) + (yezi . yezidi) + (yi\ \ . yi) + (zanb . zanabazar-square))) ;; Set standard fontname specification of characters in the default ;; fontset to find an appropriate font for each script/charset. The @@ -740,6 +756,7 @@ shavian osmanya osage + vithkuqi cypriot-syllabary phoenician lydian @@ -748,22 +765,27 @@ manichaean chorasmian elymaic + old-uyghur makasar dives-akuru cuneiform-numbers-and-punctuation cuneiform egyptian + tangsa bassa-vah pahawh-hmong medefaidrin + znamenny-musical-notation byzantine-musical-symbol musical-symbol ancient-greek-musical-notation tai-xuan-jing-symbol counting-rod-numeral + toto adlam mahjong-tile - domino-tile)) + domino-tile + emoji)) (set-fontset-font "fontset-default" script (font-spec :registry "iso10646-1" :script script) nil 'append)) @@ -794,11 +816,16 @@ (#x1D7EC #x1D7F5 mathematical-sans-serif-bold) (#x1D7F6 #x1D7FF mathematical-monospace))) (let ((slot (assq (nth 2 math-subgroup) script-representative-chars))) + ;; Add both ends of each subgroup to help filter out some + ;; incomplete fonts, e.g. those that cover MATHEMATICAL SCRIPT + ;; CAPITAL glyphs but not MATHEMATICAL SCRIPT SMALL ones. (if slot - (if (vectorp (cdr slot)) - (setcdr slot (vconcat (cdr slot) (vector (car math-subgroup)))) - (setcdr slot (vector (cadr slot) (car math-subgroup)))) - (setq slot (list (nth 2 math-subgroup) (car math-subgroup))) + (setcdr slot (append (list (nth 0 math-subgroup) + (nth 1 math-subgroup)) + (cdr slot))) + (setq slot (list (nth 2 math-subgroup) + (nth 0 math-subgroup) + (nth 1 math-subgroup))) (nconc script-representative-chars (list slot)))) (set-fontset-font "fontset-default" @@ -904,6 +931,9 @@ (set-fontset-font "fontset-default" symbol-subgroup "-*-fixed-medium-*-*-*-*-*-*-*-*-*-iso10646-1" nil 'prepend)) + ;; This sets up the Emoji codepoints to use prettier fonts. + (set-fontset-font "fontset-default" 'emoji + '("Noto Color Emoji" . "iso10646-1") nil 'prepend) ;; Append CJK fonts for characters other than han, kana, cjk-misc. ;; Append fonts for scripts whose name is also a charset name. |