IosevkaCC 字体 12 号显示不清楚

以前没用过这个字体,用12号发现普通字母上面好像少了一点。用14号字体没有这个毛病,但是屏幕小不想用大号的字体,请问这个字体都是这样吗?我看有很多变种。

13 号字体又不能中英文对齐,真是两难啊

14 号字体没毛病

image

是不是只有高分屏才能正常显示?看来只能换电脑才能解决了

有个对齐中英文的,Inziu Iosevka。可以试试。

1 个赞

那个已经 Deprecate 了,现在是这个:

换成更纱黑体后问题解决,谢谢!

image

哇,原来那个已经deprecated了,怪不得aur上好长时间没更新了。

字体是不错,但是在windows下比我原来用source code pro 和微软雅黑慢,还挺明显的

Iosevka 对我来讲唯一的问题是 Release Notes 由于字符间距的原因变丑了

已解决:更纱黑体 Sarasa Mono SC have ligature, Em dashes (——) are half width.

我用的时候挺好,好像没有这个问题,更纱黑体试试看

1 个赞

卧槽,这个banner帅

1 个赞

Durarara!!


Banner 出处,中文译名『无头骑士巽聞綠』

1 个赞

WTF! 不懂你在说什么

我发现换字体还有除虫的功效,妈蛋的被emacs的一个bug折磨了一天(emacs 崩溃),然后换了字体症状立马消失了,原来中英文两种字体混着用,通过 hack 的方式求得等宽确实是有问题的。

知道有这回事就算大字体文件卡我也不会再换回去了,受不了无缘无故的bug

以后就认准更纱黑体了

对更纱黑体唯一不满的一点是 unicode 字符的对齐仍然没有解决

更纱黑体的作者认为这个应该是 org-mode 那边去解决:

能不能拜托 @xuchunyang 大神帮忙把这个 issue 提一下,或者干脆解决了 :laughing:

不清楚什么情况,没有安装你提到的字体,也无法尝试。

看来Emacs把希腊字母当成两个字符宽度了

从你的截图似乎能推测出这个结论,但是 Emacs / Org 默认认为希腊字母是一个字符宽度

(char-width ?Ω)
;; => 1

难道你那边不是吗?

1 个赞

貌似可以改成两个字符宽度(但这么做没意义吧?!)

(aset char-width-table ?Ω 2)

改成之后就会出现你提到的问题

1 个赞

好奇怪啊,我这边是两个字符宽度,Windows系统 emacs 27 更纱黑体

这是 bug 吧?

还是说 mac 上的 emacs 把这个问题修复了?

发现 (emacs) Language Environments 会影响字符宽度,我的系统是英文的,Emacs 默认也是英文环境,但如果我改用 Chinese-GBK 环境的话,Ω 就会从一个字符宽度变成两个字符宽度。

current-language-environment
;; => "English"

(char-width ?Ω)
;; => 1

(set-language-environment "Chinese-GBK")
;; => t

(char-width ?Ω)
;; => 2
1 个赞

原来如此,这应该是根源了。

我在网上搜到一个解决办法

  (defun blaenk/set-char-widths (alist)
    (while (char-table-parent char-width-table)
      (setq char-width-table (char-table-parent char-width-table)))
    (dolist (pair alist)
      (let ((width (car pair))
            (chars (cdr pair))
            (table (make-char-table nil)))
        (dolist (char chars)
          (set-char-table-range table char width))
        (optimize-char-table table)
        (set-char-table-parent table char-width-table)
        (setq char-width-table table))))


  ;; argument is an alist of width and list of RANGEs,
  ;; which is the same as the RANGE that set-char-table-range accepts
  (blaenk/set-char-widths
   `((1 . (,(string-to-char "α")))))

但是他这个代码貌似是有问题的,比如我这里改了希腊字母 α 的宽度,但是实际效果是所有希腊字母的宽度都被改了!所以用这个函数的时候要小心它的副作用。这个函数也接受范围参数,但是目前看来不需要指定范围了。

显示不清楚(缺点少画)就是屏幕像素不够。

假设在 6x6 的空间设计 0 字,要求:1.圆角;2.中间画斜线以区分0和O

6  #### 
5 #    #
4 #  # #
3 # #  #
2 #    #
1  #### 
+-123456

把它放到 5x6 的空间中,就必须要做出选择了,是削减顶/底部:

5 #    #
4 #  # #
3 # #  #
2 #    #
1  #### 
+-123456

还是削减中间:

6  #### 
5 #    #
3 # #  #
2 #    #
1  #### 
+-123456

刚好差一两个像素的情况下,换成高分(2x)屏可以解决问题。继续压缩空间,也是会突破极限的。

3 个赞

貌似是用 use-cjk-char-width-table 改的,不过我没看明白究竟是怎么改的?不知道有没有可能是 Bug?假如这就是预期想要得到的结果,那么希腊字母在中文中显示成全角是惯例么?