Keep It Simple, Stupid.

荒野无灯weblog

NetBeans IDE 7 中使用英文字体中文变方块的解决办法

发现NetBeans IDE 有一点不太好的地方就是,代码高亮那里设置所有语言的默认字体为英文字体后,中文无法显示了(直接显示为方块)。
GOOGLE了下,找到一种解决方案。
经测试,在jre\lib\fonts\目录下面创建fallback目录,并copy一个宋体或者微软雅黑字体到该目录下,这种方法无效。
NB的默认字体为monospaced,我们用就这个来开刀。
Fonts & Colors –》 Syntax 里设置所有语言的字体为 monospaced 14 .

一,windows下面
先确定NB使用的是哪个jre ,在 netbeans.conf 文档中可以看到我使用的是”D:\software\Java\jdk\jre
然后:

cd /d D:\software\Java\jdk\jre\lib
copy fontconfig.properties.src fontconfig.properties
vim fontconfig.properties

修改如下几处,将chinese-ms936映射为微软雅黑字体,将Monospaced逻辑字体的英文映射为Monaco字体:

allfonts.chinese-ms936=Microsoft Yahei

monospaced.plain.alphabetic=Monaco
monospaced.bold.alphabetic=Monaco Bold
monospaced.italic.alphabetic=Monaco Italic
monospaced.bolditalic.alphabetic=Monaco Bold Italic

sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb

上面的sequence那里主要是把 alphabetic和chinese-ms936的顺序调换了一下,对于中文字体的搜索顺序是先搜chinese-ms936,而chinese-ms936是用allfonts的雅黑(Microsoft Yahei)来显示英文的,因此,如果不调换这二者的顺序,我们对于monospaced的映射基于上是白忙活了(结果是英文也是用雅黑显示了 :arrow: )。

然后在最后添加:

filename.Monaco=MONACO.TTF
filename.Monaco_Bold=MONACO.TTF
filename.Monaco_Italic=MONACO.TTF
filename.Monaco_Bold_Italic=MONACO.TTF

我们在映射逻辑字体到物理字体时,我们给出的物理字体名称Java要知道这个字体对应的是哪个字体文件,因此有必要加上上面四句。

二,linux下面(Archlinux)

cd /opt/java/jre/lib
cp fontconfig.properties.src fontconfig.properties
vim fontconfig.properties

目前我的配置如下:

# %W% %E%
#
# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
#

# Version

version=1

# Component Font Mappings
#allfonts.chinese-cn-iso10646=-arphic-ar pl uming cn-light-r-normal--*-%d-*-*-c-*-iso10646-1
allfonts.chinese-cn-iso10646=-wenquanyi-microhei-medium-r-normal--*-%d-*-*-p-*-iso10646-1
#wqy-microhei.ttc -misc-wenquanyi micro hei-medium-r-normal--0-0-0-0-p-0-

serif.plain.latin-1=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.bold.latin-1=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.latin-1=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.bolditalic.latin-1=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1

sansserif.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1

monospaced.plain.latin-1=-dejavu-dejavu sans mono-medium-r-normal--*-%d-*-*-m-*-iso10646-1
monospaced.bold.latin-1=-dejavu-dejavu sans mono-bold-r-normal--*-%d-*-*-m-*-iso10646-1
monospaced.italic.latin-1=-dejavu-dejavu sans mono-medium-o-normal--*-%d-*-*-m-*-iso10646-1
monospaced.bolditalic.latin-1=-dejavu-dejavu sans mono-bold-o-normal--*-%d-*-*-m-*-iso10646-1

dialog.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1

dialoginput.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1

# Search Sequences

sequence.monospaced=latin-1,chinese-cn-iso10646
sequence.allfonts=latin-1
sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-cn-iso10646
sequence.allfonts.UTF-8.en.US=latin-1,chinese-cn-iso10646
#sequence.allfonts.GBK=latin-1,chinese-gbk

# Exclusion Ranges

# Font File Names
filename.-arphic-ar_pl_uming_cn-light-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/TTF/uming.ttc
filename.-wenquanyi-microhei-medium-r-normal--*-%d-*-*-p-*-iso10646-1=/home/admin/.fonts/wqy-microhei.ttc

filename.-dejavu-dejavu_sans_mono-medium-r-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono.ttf
filename.-dejavu-dejavu_sans_mono-bold-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono.ttf
filename.-dejavu-dejavu_sans_mono-medium-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-Oblique.ttf
filename.-dejavu-dejavu_sans_mono-bold-r-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf
filename.-dejavu-dejavu_sans_mono-bold-o-normal--*-%d-*-*-m-*-iso10646-1=/usr/share/fonts/TTF/DejaVuSansMono-BoldOblique.ttf

# AWT X11 font paths

关于字体配置文件,sun ,嗯,不对,应该说oracle :roll: 网站上有说明:http://download.oracle.com/javase/1.5.0/docs/guide/intl/fontconfig.html

本文参考:
Netbeans 6.9 设置中文字体 和英文字体
Java5/6中的字体自定义设置与美化(Linux/Windows)

Tagged in :

All Comments (0)
Gravatar image
No Comments