等宽字体在 eclipse 中不是等距的,为什么?

等宽字体在 eclipse 中不是等距的,为什么?

我最近升级到了 Ubuntu 12.04,我发现在使用 eclipse 编辑源代码时,等宽字体显示的粗体字符实际上比非粗体字符更粗。因此,等宽字体实际上不是等宽字体。(所有字符的空格相同)

这是一个已知问题吗?我是否遗漏了什么?

我怎样才能使它再次变为等宽?

答案1

我在使用 Monospace 时也遇到了类似的问题。

作为一种解决方法,我已改用 Bitstream Vera Sans Mono,它看起来非常相似,但没有粗体问题。

如果您没有,您可以通过以下方式安装它sudo apt-get install ttf-bitstream-vera

答案2

等宽字体指的是所有固定宽度字体。还有一种特定的等宽字体,称为等宽字体. 假设您指的是特定的 Monospace 字体。

我在 Ubuntu 12.04 下使用 Libreoffice/Openoffice 中的等宽字体来对齐序列。我注意到了同样的问题:粗体等宽字体比相同大小的常规等宽字体更宽,尽管它们仍然是等宽的,即固定宽度。见图

在此处输入图片描述

要寻找替代方案,请查看这篇文章十大编程字体。 我用无言的似曾相识或者快递新品,常规字体和粗体字体的宽度相同。至少 Inconsolata 有与 Monospace 相同的问题。

答案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

相关内容