我最近升级到了 Ubuntu 12.04,我发现在使用 eclipse 编辑源代码时,等宽字体显示的粗体字符实际上比非粗体字符更粗。因此,等宽字体实际上不是等宽字体。(所有字符的空格相同)
这是一个已知问题吗?我是否遗漏了什么?
我怎样才能使它再次变为等宽?
答案1
我在使用 Monospace 时也遇到了类似的问题。
作为一种解决方法,我已改用 Bitstream Vera Sans Mono,它看起来非常相似,但没有粗体问题。
如果您没有,您可以通过以下方式安装它sudo apt-get install ttf-bitstream-vera
。
答案2
答案3
看起来 12.04 中的字体配置将 Droid Sans Mono 设置为默认的等宽字体(参见 /etc/fonts/conf.d/60-droid-sans-mono-fonts.conf),并且正如 OP 所描述的,该字体的粗体版本中的字形与普通版本中的字形宽度不同。
要更改系统默认的等宽字体,请创建包含如下内容的 /etc/fonts/local.conf:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
</prefer>
</alias>
</fontconfig>
这样,您就不必记得更改所使用的每个工作区中的 Eclipse 编辑器字体。
答案4
我在使用 OpenJDK 8 时遇到了同样的问题。对于“常规”/“普通”样式,名为“Monospaced”的字体被正确映射到“DejaVu Sans Mono”,但对于“粗体”,则映射为其他字体(可能自动加粗),即使直接使用“DejaVu Sans Mono”也可以做到正确的事情。
解决方案是修复~/.java/fonts/*/fcinfo*.properties
。它确实包含(以及许多其他内容):
monospaced.1.0.file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
monospaced.3.0.file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Oblique.ttf
将这些改为以下之后,一切都很好:
monospaced.1.0.file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf
monospaced.3.0.file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono-BoldOblique.ttf