[英]Font changes (but shouldn't) when switching to other split subwindow in emacs
在.emacs中,我为汉字设置了较大的字体,但想为平假名和片假名保留较小的字体:
(set-fontset-font "fontset-default" 'han "Sazanami Gothic:size=18")
(set-fontset-font "fontset-default" '(#x3000 . #x30ff) "Sans")
在加载文件等时有效
当我使用水平拆分窗口并切换到其他子窗口时,我离开的子窗口中的平假名字体有时会变为大字体。 那是因为unicode范围重叠,并且不遵守定义的顺序吗? 我应该如何正确指定范围,即可以将范围排除在'han外,还是需要寻找'han的定义并手动更正范围?
通常,诸如缓冲区背景和缓冲区前景之类的字体是全局更改的-是以每帧为基础或以所有帧为单位- 而不是以每个缓冲区或每个窗口为基础。 以下是两个仅影响一个缓冲区的示例:
(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))
作为一种解决方法(未试用),您可以尝试使用字体锁定将一个不同的面孔应用到所讨论的字符上(假设您可以使用正则表达式或函数轻松地将它们定位为字体锁定对象)。 脸部可以指定字符大小。
要回答我自己的问题:我用cons'd范围替换了“ han(脚本名称符号)”
'(#x3400 . #x4dff) '(#x4e00 . #x9fff) '(#x20000 . #x2bfff)
在3个不同的调用中访问CJK unicode块。 这样可行。
显然,使用脚本名称符号和范围的重叠字体定义有些不确定性,因此我有时会得到一个,有时会得到另一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.