使用高 DPI 时如何修复 IntelliJ IDEA 中的字体抗锯齿?

Blo*_*oke 80 fonts anti-aliasing jvm intellij-idea

我使用了更高的 DPI 设置,这使得 IntelliJ(实际上是 Android Studio)确实弄乱了字体

我使用MacType,它可以在其他地方精美地呈现我的字体,但我猜 Java VM 以某种方式拦截了它或其他什么,这让我很伤心。

gua*_*ari 113

我在一个高 dpi 显示器上,我让它与完美的字体渲染一起工作,要实现这一点,您需要:

  • (在 Linux 上)安装并使用Oracle JDK(我使用的是 1.7)而不是OpenJDK(使用 fontfix 打补丁的对我来说也没用)。看看如何做到这一点

  • 通过添加以下行来编辑您在Bin安装文件夹中找到的.vmoptions配置文件(例如,studio.vmoptions和 64bit studio64.vmoptionsWebStorm.exe.vmoptions等,根据您安装的 IDE 版本):
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • 从您要使用的字体中删除提示信息,然后在IntelliJ IDEA首选项中选择新字体(设置 -> 编辑器 -> 字体);
    如果您不知道如何执行此操作,请安装FontForge,然后:

    1. FontForge 中打开你的字体
    2. 通过选择所有字形Ctrl+A并清除所有提示(提示 -> 清除提示)
    3. 再次选择字形并使用提示 -> 清除说明
    4. 使用不同的名称保存字体(文件 - > 生成字体)
    5. 安装新字体,在IDEA中选择

如果您遵循上述提示,并且在快速滚动代码时遇到延迟(这有时可能发生在未优化 gpu 驱动程序的 Linux 发行版上),请尝试
-Dsun.java2d.xrender=true
.vmoptions文件中删除该行。

最后,这是结果的屏幕截图:

IDE截图


(此处使用的字体是主 IDE 的LucidaMACUbuntu Mono 的字体,其中删除了代码编辑器的提示信息)

  • @Pace 要删除模糊字体,您需要禁用该应用程序的显示缩放(右键单击其图标,选择“属性”,转到“兼容性”选项卡并选中“在高 DPI 设置下禁用 DPI 缩放”,对于 Win8 中的 x64 应用程序- 您应该编辑相关注册表项的标志:打开 Regedit.exe,转到 `HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers` 并添加一个字符串值 _REG_SZ_,其名称是应用程序的完整路径可执行文件,其值为 _HIGHDPIAWARE_) ;) (10认同)
  • 惊人的!也适用于 Windows :)) 谢谢:* (4认同)
  • 无法清除 font forge 中字体的提示和说明...之后我尝试保存它们时出现错误...我做错了什么 (3认同)
  • 哇。一年后仍然有用。JetBrains 需要将其设为默认值或至少执行一些自动检测。没有这些设置的模糊性使 IntelliJ 看起来很糟糕且无法使用。 (2认同)