我有一个等宽字体(PT Mono
),更喜欢在IDE编程中使用。字体只有Regular
其他所有字体,Bold
并且Italic
是通过倾斜和“加粗”字体而派生的Regular
。问题在于“加粗”字符比常规字符宽,因此IDE窗口中的源代码字符串现在由非等宽字符组成。
如何控制字体的“加粗”,使其不会变得比常规字体更宽?
该问题在下面的屏幕截图中显示(PT Mono
,没有专用的粗体)。查看“ unsigned char”和“ sizeof”两个词如何从其正确位置移出。
这是另一个示例,Droid Sans Mono
(没有专用的粗体)。
这里是一个示例,其中的字体具有专用的粗体版本(Liberation Mono
)。粗体和常规对齐完美。
因此,在没有提供粗体的情况下,问题绝对是轻浮的粗体渲染。字体引擎是罪魁祸首。
UPD:有一个文件/etc/fonts/conf.avail/90-synthetic.conf
,如果从中引用该文件,则会/etc/fonts/conf.d/
调整字体引擎以对不具有粗体版本的字体执行合成加粗处理。如果从删除了与此文件的符号链接/etc/fonts/conf.d/
,则粗体消失。这并不是真正想要的,但是至少可以解决等宽字体不是等宽字体的情况(请参见下文PT Mono
)。仍然需要对加粗进行微调(通过配置文件或freetype2
补丁来进行)。
mbaitoff,我将其发布为您的更新的补充,而不是作为答案
如果用户创建名为的文件~/.fonts.conf
:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<test name="spacing" compare="eq">
<const>mono</const>
</test>
<edit name="embolden" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
然后,应用程序可以使用粗体等宽字体(如果可用),并且如果使用的字体没有粗体字体,则禁用“合成粗体化”。
这只是替代方法,结果略有不同
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句