summaryrefslogtreecommitdiff
path: root/lisp/international/fontset.el
diff options
context:
space:
mode:
authorYuuki Harano <masm+github@masm11.me>2021-11-11 00:39:53 +0900
committerYuuki Harano <masm+github@masm11.me>2021-11-11 00:39:53 +0900
commit4dd1f56f29fc598a8339a345c2f8945250600602 (patch)
treeaf341efedffe027e533b1bcc0dbf270532e48285 /lisp/international/fontset.el
parent4c49ec7f865bdad1629d2f125f71f4e506b258f2 (diff)
parent810fa21d26453f898de9747ece7205dfe6de9d08 (diff)
downloademacs-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.el212
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.