Netbeans 中的字体很丑陋 - 我怎样才能让它使用系统字体?

Netbeans 中的字体很丑陋 - 我怎样才能让它使用系统字体?

我无法让 Netbeans 字体看起来好看,自从我尝试 Ubuntu ~8 以来,这一直是一个问题。出于某种原因,字体看起来似乎只有在 Netbeans 中没有获得子像素平滑,对于其余应用程序,它们看起来很完美。

看看截图有多丑:

在此处输入图片描述

不仅仅是代码区域,应用程序中的每个字体都是这样。我四处寻找,似乎在文件中添加以下行.bashrc应该可以解决问题,但在我的例子中却没有:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

我认为它可能只会影响基于 Java 的应用程序,但我还无法测试另一个 Java 应用程序来检查字体。

有人知道我该怎么做才能解决这个问题吗?如何让 Netbeans 使用系统字体?

答案1

正如评论中所述,这是 Linux 上 Java Swing 应用程序的一个问题。Swing 确实使用 Gnome 的字体平滑设置(停用、灰度或子像素)——但它忽略了提示设置。它始终使用完整提示,如果您运行的 Ubuntu 几乎没有或根本没有字体提示(大多数人都这样做,因为小提示是默认设置),这将使字体看起来与其他应用程序中的字体有很大不同。Eclipse 等 SWT 应用程序很好,但如果你喜欢 Netbeans,这对你没有帮助。

警告:对于以下解决方法,我仅讨论编辑器字体,因为在 IDE 中,这对我来说很重要。您也可以将其应用于菜单字体等,但这可能有点过分。

我发现的唯一可用的解决方案这里:使用 Fontforge 编辑您选择的编辑器字体并从字体本身中删除所有提示信息,然后将其保存为新字体并在 Netbeans 中使用它。

  1. sudo apt-get install fontforge
  2. 发射字体
  3. 打开您选择的字体
  4. Ctrl+Aedit -> Select -> Select all选择所有字符
  5. 提示 ⇒ 清晰的指示
  6. Ctrl++Shift或打开字体F信息element -> font info
  7. 重命名字体(例如,重命名为原始名称 + '_nohints')
  8. 通过将编辑的字体保存到.fonts主目录中,file -> generate fonts确保使用 Ubuntu 可以读取的格式(参见下一步)
  9. 清除字体缓存fc-cache -rv- 按照其输出以确保您的新字体文件已被选取(例如.sfd没有但确实.ttf被选取)。
  10. 运行 Netbeans 并使用您创建的字体作为编辑器字体

不,不是完美的,是的,有点麻烦,但还是有很大的不同。希望这能有所帮助。

答案2

添加

--laf Nimbus -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd

或者

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal

default_options在文件字符串的末尾netbeans.config。您可以在$NETBEANS_PATH/etc/文件夹中找到它。从系统偏好设置中将应用程序字体调小。

来源

答案3

我知道这是一个老问题,但在我寻找同样的问题时,我尝试了这里的所有技巧,但都没有成功。我以为我只能忍受 netbeans 中糟糕的文本了。

然后我发现了这个: http://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-472038

基本上:Ubuntu 13.10、Netbeans (7.3)、Freetype 的 Infinality 字体补丁、OpenJDK7,以及用于修复 Swings 糟糕字体处理的补丁。而且它“刚好起作用”!!!

如果该链接失效,请复制到此处:

  1. 安装 freetype

    $ sudo apt-get install libfreetype6
    
  2. 安装 finality 补丁

    $ sudo add-apt-repository ppa:no1wantdthisname/ppa
    $ sudo apt-get update
    $ sudo apt-get install fontconfig-infinality
    

    之后我必须做以下事情:

    $ sudo rm /etc/fonts/conf.avail/52-infinality.conf
    $ sudo ln -s /etc/fonts/infinality/infinality.conf /etc/fonts/conf.avail/52-infinality.conf
    

    要使用类似 Windows 7 的字体渲染,请执行以下操作:

    $ sudo /etc/fonts/infinality/infctl.sh setstyle win7
    

    在 /etc/profile.d/infinality-settings.sh 中将 USE_STYLE 设置为“WINDOWS7”

  3. 安装字体固定 OpenJDK

    $ sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    

    .../etc/netbeans.conf

    netbeans_default_options包括: -J-Dawt.useSystemAAFontSettings=lcd-J-Dsun.java2d.xrender=true"

    并设置 netbeans_jdkhome="/usr/lib/jvm/java-1.7.0-openjdk-amd64"

这使我的 Netbeans 字体从 1990 年代可接受的字体变成了现代的出色字体。现在我可以使用 Inconsolata 作为我的 Netbeans 编辑器字体,它看起来很棒。

按要求截取的屏幕截图:(实际文本比此屏幕截图更清晰。屏幕截图中的某些内容使其略微模糊)。 在此处输入图片描述

答案4

字体还不错。

然而,这是一个 Java 应用程序,并且是处理字体的一种特殊方式。

如果你只想更改字体大小,你可以使用以下命令启动 Netbeans“--fontsize”参数

netbeans --fontsize 12

如果要更改字体类型,则更改环境参数会更加困难,这篇文章解释得很好:

https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts

这是适用于 ArchLinux 的,但我认为它也可以在 Ubuntu 上运行,因为 Java 是一种通用软件。

相关内容