我无法让 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 中使用它。
sudo apt-get install fontforge
- 发射字体
- 打开您选择的字体
- Ctrl+A或
edit -> Select -> Select all
选择所有字符 - 提示 ⇒ 清晰的指示
- Ctrl++Shift或打开字体F信息
element -> font info
- 重命名字体(例如,重命名为原始名称 + '_nohints')
- 通过将编辑的字体保存到
.fonts
主目录中,file -> generate fonts
确保使用 Ubuntu 可以读取的格式(参见下一步) - 清除字体缓存
fc-cache -rv
- 按照其输出以确保您的新字体文件已被选取(例如.sfd
没有但确实.ttf
被选取)。 - 运行 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 糟糕字体处理的补丁。而且它“刚好起作用”!!!
如果该链接失效,请复制到此处:
安装 freetype
$ sudo apt-get install libfreetype6
安装 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”
安装字体固定 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 是一种通用软件。