如何调整 Konsole 中的字体基线

今天安装了暗黑源中的苹果字体和微软字体后出现了这种状况
,请问有办法调整吗?

最后我还是删除了这几个字体,就恢复正常了。

从来不乱安装字体的路过。。 Linux 显示字体我够用了。 打印字体总觉得有点缺憾。 文鼎简报宋毕竟是个报宋,笔画太细了一点。

  1. 我不觉得文鼎简报宋是微软或苹果分发的字体。更不觉得上面的字体是文鼎简报宋。
  1. 试试在 konsole 中显式地把字体指定为中文字体。

Konsole 中似乎是无法显式的指定中文字体的,至少我没发现。但是 gnome-terminal 可以。另外,卸载那些字体后,微米黑基线依然有问题,只是一般情况下难以察觉。



左边是 Gnome-terminal,右边是 Konsole。中文采用的都是微米黑,英文是 Ubuntu Mono
仔细观察第二行底部(以下划线为基准),可以发现左边的中国更高一些,而右边的中国更低。
而顶部以 linux 的 l 的顶端为基准,可以发现左边的国比 l 高,右边则略低。

两个终端都采用 60 号字

  1. 打开 ~/.kde4/share/apps/konsole/Shell.profile,[Apperance] 下面有:

Font=Liberation Sans,11,-1,5,50,0,0,0,0,0

改成

Font=WenQuanYi Micro Hei Mono,11,-1,5,50,0,0,0,0,0

即可。

  1. 很明显是 Ubuntu Mono 这种渣渣字体的基线有问题,而不是我大文泉驿。


自己看基线去吧。

1赞

那请问我能在 Konsole 够单独设定中英文字体么?(似乎整个 KDE 都不可以,至少在图形界面不可以,火狐倒是可以)

我觉得文泉驿的英文字体部分就是没有 ubuntu 好看。

而且为什么 Gnome-terminal 和 Konsole 效果截然不同呢?如何能够达到 Gnome-terminal 这样的效果,在哪里可以设置呢

并且我在其他程序里面,也是选用这两个字体,但很少出现这种问题,比如 Qt-creator、TeXStudio、Gedit 等就没有问题。

即使 Ubuntu 字体有问题,这是有办法解决的。何况 KDE 是用 Qt 开发的,而 Qt-creator、TeXStudio 都是 qt 程序,这个问题解决起来应该不会很难。

不过我显然是没有时间去开发 KDE 的,纸上谈兵而已。。。

!](http://i1317.photobucket.com/albums/t638/redhatlinux10/DejaVuSansMonoinkonsole_zpsd7e19476.png)
](http://s1317.photobucket.com/user/redhatlinux10/media/DejaVuSansMonoinkonsole_zpsd7e19476.png.html)

我安装了 mirror.bjtu.edu.cn/opensuse-underground/noarch/apple-fonts-10.6.8-0.noarch.rpm 包后,并没有出现楼主那种严重不对齐的现象。
我的字体是 DejaVu Sans Mono
楼主的吹毛求疵的精神值得学习,不过我个人认为 openSUSE 的字体效果已经足够了。

  1. 不可能。直接用 fontconfig 进行全局设置,可以实现。但是实现不了 Ubuntu Mono 和文泉驿一起用基线还不出问题,原因往下看。
  2. 这是你个人的问题。开源世界想要满足个人需求很容易也很困难。很容易是你可以自己开发。很难是你没法强迫别人开发。

你现在面临的问题是: 你喜欢的英文字体的基线有问题。 (我前面已经说了是 Ubuntu Mono 的问题,bruce 也已经证实了)

所以你有几个选择:

  1. 参与开发 Ubuntu Mono。

  2. Hack Ubuntu Mono 的基线。

  3. 自己拼接一套字。
    (2/3 请自行研究,提示是需要 fontforge,基线的英文是 baseline)

  4. 因为一个是 GNOME 一个是 KDE,两伙人开发的。你我两个人对于 Ubuntu Mono 的认知都不同,你觉得他们两伙人对于“效果”的认知就一定要相同?何况你犯的错误是:是字体本身的问题,不要让无关程序来改。konsole 的功用是一个终端而不是一个字体预览器。

如果一定要达到很简单,参与开发 konsole。

看,无论什么问题都有解决方案。只是成本多高而已,想要世界适应自己需要很强悍的能力。

我发现从暗黑源安装了 apple-fonts 和 microsoft-yahei-fonts 这两个包之后,firefox 的字体显示效果改变了,难看的不行啊,赶紧把这两包给卸载了,吓得不轻!
补充:猜测是 rpm 包中有脚本,修改了系统配置。

哈哈哈,你终于也中招了。不过 Firefox 字体设置很方便的。你肯定是由于使用了某些没有明确定义的字体导致的,比如说 sans-serif serif monospace,安装字体后,这些模煳的字体就 Fallback 到了你的新安装的字体上去了。如果你明确指定了字体,那么就不会发生这种情况。

可是问题在于很多地方是无法单独指定中文部分字体的,比如 Konsole,除非你编辑配置文件。然而这样的话又必须使用它的英文字体。简而言之就是中英文字体被绑定在一起了,缺乏灵活度。当然你也可以通过修改系统字体配置调整这些模煳的字体的映射关系,可是这样太累了。。。。

其实我感觉字体设置的图形界面做成火狐那样有那么难么。KDE 开发者大多是英语世界的人,只用一种字体就够了,而不用像 CJK 人们一样苦逼的编辑配置文件。退一步,终端不像浏览器和排版软件那样注重美观,大部分人凑合用就行了。

心比天高,命比纸薄

确实是这样的。

对苏的看法不能完全认同,你能给出什么证据吗?在专业的排版软件里面是完全没有这些问题的,至少说明 KDE 在排版上没有 Gnome, Qt, Office, TeX 等程序好。
我猜测可能任何字体都有一些控制高度的参数,或者至少是能够通过某种手段读取这些参数的,然后 KDE 程序直接忽略了这些参数,采取某个" 默认值" 比如说 0,如果字体的参数和默认值不一样,就挂了。

这是 Libre office Writer 里面的渲染效果,基线是一样高的。


我是说 Linux 自带的中文字体已经足够好了,唯一的缺点就是文鼎简报宋是报宋不是书宋,但是一般也没有太大必要去装微软或者苹果分发的字体。

但是这和这个问题的核心无关,所以就造成误解了。

同意。请问怎么修改字体 fallback 时候的优先级

来自我的 MI 2S 上的 Tapatalk

  1. 我说 Ubuntu Mono 的基线有问题,这个论点是你和 bruce 提供的论据。

1.1 文泉驿和 Ubuntu Mono 一起在 Konsole 用,基线对不齐。(by you)
1.2 文泉驿和 Dorid Sans Mono 一起用,基线对齐。(by bruce)

这就是论据。你想推翻我的论点很容易,基于这个论据推出第二种可能即可。我知道第二种可能是什么,但是我不会告诉你。只有你推翻了我的论点后,我才会继续证明。或者你也可以不认同我的论点,继续自己研究就好。

  1. 我不参与由猜测引发的讨论,那是谈玄。技术论坛不谈玄。请问你有什么论据支撑你所说的?否则这连一个论点都不是,自然没有技术讨论的必要。

你现在这种猜测给人一种你供职于文鼎 / 方正这些大字体公司,对字体了如指掌的感觉。但我知道那不是真的。

所以抱歉,我不会在虚幻的泡泡里跟你技术讨论。我反驳成功这一点,要花很多的时间精力去阅读相关技术内容,到时你再“猜测”一个就把我的时间精力荒废了。

  1. 专业的排版软件?

3.1 GNOME 不是“专业的排版软件”吧?
3.2 KDE 基于 Qt。你想说 KDE 开发者故意或无意把 Qt 字体渲染给改残废了?

真的,在技术论坛请不要拍脑袋。至少第二点是需要相关截图作为论据的。

何况这个主题要解决的是“Konsole 下文泉驿和 Ubuntu Mono 一起用,字体基线对不齐”的问题,可不是解决“Konsole 为什么比不上专业排版软件”的问题。即使你强行吹替,要解决第二个问题,为什么要解决呢?Linux 精神可不是大而全,而是在自己专注的领域里做到最好。如此推广,你可能最终要处理的是通用的某个字体渲染库。非常之底层,我帮不上你。

最后,你前面是中文 + 英文等宽字体,后面是两个英文字体,甚至有一个不是等宽的。Konsole 处理的是等宽字体,你拿 LibreOffice Writer 出来,两者能够处理的字体类型十分的不一样。你已经犯了移花接木的错误。

猜测无效。

这两个包都是我打包的。

源代码就是字体文件。

spec file 在这里:

apple-fonts.spec (2.04 KB)

没有任何脚本。

你们遇到的其实是一个最基本的 fontconfig 问题。

真的,技术论坛不要拍脑袋。

我拿 LM Roman 和 Ubuntu Mono 做比较,是想说明二者是可以通过某种手段对齐的。LM Roman 是 LaTeX 的默认字体,也是我在 writwr 里面用的我默认英文字体。猜测应该不会有问题,而且这个我也可以拿 Droid Mono 系列字体去比较,随便选的而已。我只是一个学物理的学生,至少目前不可能去开发。我只是反馈一个问题并且说明这个问题是可解的,我也不打算去解决,因为我目前无法解决。即使我不是专业人员我不可以通过逻辑推断得出某些结论么?KDE 中的 Kile,kate 似乎没有问题,所以我确实有点说得太泛了一点。但是我以前在用 ubuntu 的时候有时候在某些字体里面 kile 无法显示下划线,然后又无法像 konsole 一样调节行间距。我没说除了 writer 和 tex 的是专业排版软件,不过我写的时候没有断好句。

来自我的 MI 2S 上的 Tapatalk

其实我也不知道什么是基线 (滥用专有名词?),我所说的基线的概念就是一种模糊的关于字体的高度的概念。所以可以把基线改成" 高度" 或者类似的概念。

来自我的 MI 2S 上的 Tapatalk