Изменения шрифта (но не должны) при переключении на другое подокно split в emacs
В.emacs я установил больший шрифт для кандзи, но хочу сохранить меньший шрифт для хираганы и катаканы:
(set-fontset-font "fontset-default" 'han "Sazanami Gothic:size=18")
(set-fontset-font "fontset-default" '(#x3000 . #x30ff) "Sans")
Это работает при загрузке файлов и т. Д.
Когда я использую окно, разделенное по горизонтали, и переключаюсь на другое подокно, шрифт Hiragana в подокне, которое я оставляю, иногда меняется на большой шрифт. Это потому, что диапазоны Юникода перекрываются, а порядок определений не соблюдается? Как мне правильно указать диапазоны, то есть можно ли исключить диапазон из "хана" или мне нужно выследить определение "хана" и исправить диапазоны вручную?
3 ответа
Чтобы ответить на мой собственный вопрос: я заменил 'han (символ имени скрипта) на диапазоны cons'd
'(#x3400 . #x4dff) '(#x4e00 . #x9fff) '(#x20000 . #x2bfff)
на блоки Unicode CJK в 3 разных вызовах. Это работает.
Видимо, перекрывающиеся определения шрифтов с использованием символов и диапазонов имен сценариев оцениваются несколько недетерминированно, поэтому я иногда получаю одно, а иногда и другое.
В общем, шрифты, такие как фон буфера и передний план буфера, изменяются глобально - либо для каждого кадра, либо для всех кадров - не для каждого буфера или для каждого окна. Ниже приведены два примера того, как повлиять только на один буфер:
(defun buffer-background-red ()
(interactive)
(setq buffer-face-mode-face `(:background "red"))
(buffer-face-mode 1))
(defun zoom ()
(interactive)
(setq buffer-face-mode-face `(:height 375))
(buffer-face-mode 1))
В качестве обходного пути (непроверенного) вы можете попытаться использовать font-lock, чтобы применить другое лицо к рассматриваемым символам (при условии, что вы можете легко назначить их для font-lock, используя регулярное выражение или функцию). Лицо может указать размер символа.