Gnome 终端中引号暗的第一个标记

Gnome 终端中引号暗的第一个标记

我大量使用 GNOME 终端,并且遇到了一个渲染问题:对于较低的缩放比例,gnome 会将'引号的第一个刻度渲染"得比其他刻度更暗,如下图所示:

在此处输入图片描述

这对我来说很困难,因为我无法快速"区分'

这种异常渲染在放大后会消失。在 中不会发生这种情况xterm。如链接所示,对于不同的字体选择和一些其他颜色,它仍然存在。我使用的是 Ubuntu 16.04 和 GNOME Term 3.18.3。

有人知道这个问题的根源是什么吗?

答案1

GNOME 终端仅使用 Pango 进行字体渲染,就像所有 GTK+ 应用程序一样。

它使用的字体是矢量字体,在稍大的尺寸下看起来不错,但在小尺寸下可能会出现这样的问题。字形被设想在分辨率更高的表面上绘制,然后缩小并抗锯齿到所需的大小。

缩小后,两个刻度之间的水平偏移量差值可能会变成非整数,比如说 2.2 个像素(或任何其他值)。由于这个非整数偏移量,抗锯齿会产生不同的实际屏幕像素映射。

让我们举一个类似但假设的例子。假设字符单元宽度为 6 像素,符号"定义为字体中的两个矩形。想象一下,gnome-terminal首先在 6 * 1024 = 6144 像素宽的画布上绘制符号,每个像素变为“开”(前景色)或“关”(背景色),中间没有值。第一个刻度恰好从坐标(基于 0)1024 到 2047 落下,而第二个刻度恰好从 3300 到 4323 落下。

现在让我们按 1024 倍缩小。第一个刻度恰好落在像素 1(基于 0,即“第二个”像素)上,无需抗锯齿。给定的像素将完全是前景的颜色,其相邻像素将完全是背景的颜色。

第二个刻度部分(78%)落在像素 3 上,部分(22%)落在像素 4 上。那么,这些像素应该如何点亮?请阅读抗锯齿子像素渲染了解这里使用的一些技巧,但无论你用软件做什么,它都无法看起来像落在像素上的那么清晰。

xterm 支持(并默认为)位图字体,即没有抗锯齿功能的字体,每个像素都恰好是前景或背景颜色。这些字体均设计为特定尺寸,不用于缩放。

我认为 GNOME 终端从未支持过位图字体。它曾经有一个禁用抗锯齿的选项,但现在也没有了。(它可能是否仍然可以通过使用一些 Pango 或 Fontconfig 魔法来使用,我不知道。)

缓解该问题的一些想法:

  • 选择支持位图字体的终端仿真器。(作为 GNOME 终端开发人员,我个人不推荐此选项 :-D。)

  • 尝试其他字体。

  • 使用对比度更高的配色方案(例如,避免在黑色上使用深蓝色)。

  • 增大字体大小。

  • 如果(或无论何时)可行,请用分辨率更高的显示器替换您的显示器。(例如,我的 15 英寸笔记本电脑分辨率为 1366x768,大约一年前坏了,于是我买了一台 15 英寸 1920x1080 的显示器。这确实带来了不同,我再也不会使用较低的分辨率了。而且这还远不是市场上最先进的。)

相关内容