我在让 Netbeans 字体看起来不错时遇到了问题,自从我尝试 Ubuntu ~8 以来,这一直是一个问题。出于某种原因,字体看起来好像没有仅在 Netbeans 中获得子像素平滑,对于其余的应用程序,它们看起来很完美。
看看截图有多丑:
不仅仅是代码区域,应用程序中的每个字体都是这样的。我环顾四周,显然.bashrc
将以下行添加到文件中应该可以解决问题,但在我的情况下它没有:
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'
Run Code Online (Sandbox Code Playgroud)
它认为它可能只影响基于 Java 的应用程序,但我还没有能够测试另一个 Java 应用程序来检查字体。
有谁知道我能做些什么来解决这个问题?如何让 Netbeans 使用系统字体?
nem*_*m75 38
正如评论中所述,这是 Linux 上的 Java Swing 应用程序的问题。Swing 确实使用了 Gnome 的字体平滑设置(停用、灰度或子像素)——尽管它忽略了提示设置。它总是使用完整的提示,并且如果您运行的 Ubuntu 很少或没有字体提示(正如大多数人所做的那样,因为很少提示是默认设置),这将使字体看起来与其他应用程序有很大不同。像 Eclipse 这样的 SWT 应用程序很好,但如果你喜欢 Netbeans,这对你没有帮助。
警告:对于以下解决方法,我只讨论编辑器字体,因为在 IDE 中这对我来说很重要。您也可以将其应用于菜单字体等,但这可能有点过头了。
我在这里找到的唯一可用解决方案:使用 Fontforge 编辑您选择的编辑器字体并从字体本身中删除所有提示信息,然后将其另存为新字体并在 Netbeans 中使用。
sudo apt-get install fontforge
edit -> Select -> Select all
选择所有字符element -> font info
打开字体信息.fonts
在您家中的目录中,通过file -> generate fonts
,确保使用 Ubuntu 读取的格式(请参阅下一步)fc-cache -rv
- 遵循其输出以确保您的新字体文件已被选中(例如.sfd
,不会但.ttf
会)。不,不完美,是的,有点麻烦,但仍然是一个不同的世界。希望有帮助。
小智 18
添加
--laf Nimbus -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)
或者
-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
Run Code Online (Sandbox Code Playgroud)
在default_options
文件中字符串的末尾netbeans.config
。您可以在$NETBEANS_PATH/etc/
文件夹中找到它。从系统首选项中缩小您的应用程序字体。
字体的抗锯齿在 Ubuntu Java Swing 应用程序中无法正常工作。
添加:
-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)
到netbeans_default_options
字符串末尾的 netbeans.config 。
您可以在 $NETBEANS_HOME/etc/ 文件夹中找到配置文件(例如/home/<user_name>/<netbeans_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"
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老问题,但在我寻求同样的问题时,我在这里尝试了所有技巧,但没有运气。我以为我将不得不忍受 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
Run Code Online (Sandbox Code Playgroud)安装无限补丁
$ sudo add-apt-repository ppa:no1wantdthisname/ppa
$ sudo apt-get update
$ sudo apt-get install fontconfig-infinality
Run Code Online (Sandbox Code Playgroud)
之后我不得不做以下事情:
$ sudo rm /etc/fonts/conf.avail/52-infinality.conf
$ sudo ln -s /etc/fonts/infinality/infinality.conf /etc/fonts/conf.avail/52-infinality.conf
Run Code Online (Sandbox Code Playgroud)
要像字体渲染一样使用 Windows 7,请执行以下操作:
$ sudo /etc/fonts/infinality/infctl.sh setstyle win7
Run Code Online (Sandbox Code Playgroud)
在 /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
Run Code Online (Sandbox Code Playgroud)
在.../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 编辑器字体,它看起来很棒。
根据要求的屏幕截图:(实际文本比此捕获更清晰。捕获中的某些内容稍微模糊了它)。
归档时间: |
|
查看次数: |
78947 次 |
最近记录: |