当前位置: 首页>>技术教程>>正文


Netbeans中的丑陋字体 – 如何让它使用系统字体?

, ,

问题描述

我在让Netbeans字体看起来很好看时遇到了问题,自从我尝试Ubuntu~8以来,这一直是个问题。由于某种原因,字体看起来只是在Netbeans中没有得到亚像素平滑,对于其他应用程序,它们看起来很完美。

看看截图是多么丑陋:

fonts,netbeans,ubuntu

它不仅仅是代码区域,而且应用程序中的每种字体都是这样的。我环顾四周,显然在.bashrc文件中添加以下行应该解决问题,但在我的情况下它没有:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

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

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

最佳解决思路

正如评论中所述,这是Linux上的Java Swing应用程序的问题。 Swing确实使用了Gnome的字体平滑设置(停用,灰度或子像素) – 但它忽略了提示设置。它总是使用完全提示,如果你运行Ubuntu很少或没有字体提示(因为大多数人做的,因为很少暗示是默认设置)这将使字体显得与其他应用程序显著不同。像Eclipse这样的SWT应用程序很好,但如果你喜欢Netbeans,这对你没有帮助。

警告:对于以下解决方法,我只谈论编辑器字体,因为在IDE中,’s what’对我很重要。您也可以将它应用于菜单字体等,但这可能有点超过顶部。

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

  1. sudo apt-get install fontforge

  2. 启动Fontforge

  3. 打开您选择的字体

  4. Ctrl + Aedit -> Select -> Select all选择所有字符

  5. 提示⇒清除说明

  6. Ctrl + Shift + Felement -> font info打开字体信息

  7. 重命名字体(例如原始名称+ ‘_nohints’)

  8. 通过file -> generate fonts将编辑后的字体保存在家中的.fonts目录中,确保使用Ubuntu读取的格式(参见下一步)

  9. 清除字体缓存fc-cache -rv – 按照其输出确保您的新字体文件被拾取(例如.sfd不会,但.ttf会这样做)。

  10. 运行Netbeans并使用您创建的字体作为编辑器字体

不,不完美,是的,有点麻烦,但仍然是一个不同的世界。希望有所帮助。

次佳解决思路

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

要么

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

到文件:netbeans.config。您可以在$ NETBEANS_HOME /etc /文件夹中找到它。从系统首选项中缩小应用程序字体。

Source

第三种解决思路

我知道这是一个老问题,但在我寻求同样的问题时,我在这里尝试了所有的技巧而没有运气。我以为我只能忍受netbeans中可怕的文字。

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

基本上:Ubuntu 13.10,Netbeans(7.3),Infinality字体补丁到freetype,OpenJDK7,以及补丁来修复Swings惨淡的字体处理。它”just worked” !!!

如果链接死亡,请在此处复制:

  1. 安装freetype

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

    $ 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编辑器字体,它看起来很棒。

按要求进行屏幕截图:(实际文本比此捕获更清晰。捕获中的某些内容略微模糊)。

fonts,netbeans,ubuntu

第四种思路

字体的anti-aliasing在Ubuntu Java Swing应用程序中无法正常工作。

加:

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

netbeans_default_options字符串末尾的netbeans.config。

您可以在$ NETBEANS_HOME /etc /文件夹中找到配置文件(例如/home/<user_name>/<neatbeans_folder>/etc/netbeans.conf)

例:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd"

第五种思路

字体不是那么糟糕..

但是,这是一个Java应用程序,并作为处理字体的特殊方式。

如果只想更改字体大小,可以使用“–fontsize” parameter启动Netbeans:

netbeans --fontsize 12

如果你想改变字体类型,那么改变环境参数会有点困难,本文解释得非常好:

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

这是针对ArchLinux的,但我认为它也适用于Ubuntu,因为Java是一个通用软件。

第六种思路

我在Ubuntu 12.04和Netbeans 7.2上遇到了同样的问题。

我尝试将-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd添加到netbeans.conf但它没有解决问题。

然后我看到了有关Netbeans bug 215785线高的问题评论。在netbeans.conf中将编辑器行高设置为1.0以及AA设置解决了我的问题。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1067.html,未经允许,请勿转载。