-
Notifications
You must be signed in to change notification settings - Fork 6
/
linux fonts.html
220 lines (181 loc) · 8.39 KB
/
linux fonts.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>linux fonts</title>
<link rel="stylesheet" href="templates/SyntaxHighlighter.css"></link>
<link rel="stylesheet" href="templates/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script language="javascript" src="templates/shCore.js"></script>
<script language="javascript" src="templates/shBrushCpp.js"></script>
<script language="javascript" src="templates/shBrushJScript.js"></script>
<script language="javascript" src="templates/shBrushPhp.js"></script>
<script language="javascript" src="templates/shBrushJava.js"></script>
<script language="javascript" src="templates/shBrushXml.js"></script>
<script language="javascript" src="templates/shBrushCss.js"></script>
<script language="javascript" src="templates/shBrushObjectiveC.js"></script>
<script language="javascript" src="templates/vimwiki.js"></script>
</head>
<body>
<div class="navbar">
<div class="navbar-container">
<a class="brand" href="index.html">NieNet</a>
<div class="nav-collapse">
<ul class="nav">
<li><a href="index.html">主页</a></li>
<li><a href="about.html">关于</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
<div id="content">
<h2 id="toc_0.1">关于Linux字体</h2>
<p>
以前没有关注Linux的字体。最近遇到好几个关于字体的问题,特地了解了字体的相关知识。下面,首先列出遇到的问题:
</p>
<ul>
<li>
在fedora下,中文字体在很多地方表现得很糟糕,很不美观。一个最大的问题,就是在chrome浏览器下的中文字体表现的很差,笔画不清晰,很多字体发虚。
<li>
IDE工具NetBeans打开文件,中文无法显示,用“口”字代替。这里,首先得明白一点,NetBeans这个IDE是使用JAVA开发的,也就是说NetBeans是一个JAVA应用程序。
</ul>
<p>
自己以前对字体没有什么基本的概念,下面就将学习内容做一些笔记。
</p>
<h2 id="toc_0.2">字体大小显示等的调节</h2>
<p>
特别折腾,安装了基于ubuntu的Linux deepin,安装完之后发现显示效果很不好,主要问题是问题看上去很模糊,大小也不合适。自己摸索着主要从下面几个方面去配置。
</p>
<h3 id="toc_0.2.1">显示器分辨率</h3>
<p>
字体不好看,不够清晰,不一定是字体种类,字体大小等的问题。显示器的分辨率也很重要。例如,原来配置是在13寸的笔记本上,现在换成了23寸的显示器。显示效果就很差了。这个需要设置Linux系统显示器分辨率的输出。我发现,Linux一般很难自己检测好显示器的分辨率,设置好。
</p>
<p>
例如,现在我23寸的显示器,Linux系统给我设置的分辨率是1280×800,显示效果当然不好。查看和设置的命令如下:
</p>
<pre>
xrandr //查看Linux系统设置的分辨率
xrandr -s 1920*1080 //设置输出的分辨率
</pre>
<h3 id="toc_0.2.2">关于WQY字体</h3>
<p>
字体全部设置为了文泉驿等宽微米黑,大小为13。个人感觉,最重要是显示器的分辨率,对显示效果起到了决定性的作用。
</p>
<pre>
[root@localhost yum.repos.d]# yum -C list wqy*
Loaded plugins: presto, refresh-packagekit
Available Packages
wqy-bitmap-fonts.noarch 1.0.0-0.1.rc1.fc12 updates-ftp.sjtu.edu.cn
wqy-microhei-fonts.noarch 0.2.0-0.2.beta.fc12 updates-ftp.sjtu.edu.cn
wqy-unibit-fonts.noarch 1.1.0-7.fc12 Everything-ftp.sjtu.edu.cn
wqy-zenhei-fonts.noarch 0.8.38-3.fc12 Everything-ftp.sjtu.edu.cn
</pre>
<p>
wqy-bitmap-fonts.noarch wqy点阵宋体
wqy-unibit-fonts wqy Unibit等宽字体
wqy-zenhei-fonts wqy正黑体
</p>
<h2 id="toc_0.3">NetBeans中文字体</h2>
<p>
缺省的NetBeans在使用Swing的缺省字体,大小为11。IDE工具NetBeans打开文件,中文显示为方框的原因:
</p>
<p>
NetBeans是一个Java应用程序,Java程序启动的时候会去在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样就能够解决问题了。
</p>
<p>
Netbeans是一个java应用程序,所以在安装时,肯定会在你的系统中安装有java development kit (jdk) 或 java runtime environment (jre) 的安装包。可以通过NetBeans的配置文件查看到其运行时jre所在的位置。在NetBeans安装目录的etc/netbeans.conf文件中,可以看到需要的jre的位置如下所示:
</p>
<pre>
# Default location of JDK, can be overridden by using --jdkhome <dir>:
netbeans_jdkhome="/usr/lib/jvm/jre"
</pre>
<p>
下面你需要做的,就是配置好这个JRE中的字体,让这个JRE支持中文字体。那么,怎么让jre支持中文字体,或者说找到系统中的中文字体呢?
</p>
<h3 id="toc_0.3.1">jrd的中文支持</h3>
<p>
按Sun的文档描述,jre在一个操作系统的字体配置文件,根据下列信息来确定。jre 使用按下列顺序第一个找到的文件作为系统的字体配置文件:
</p>
<pre>
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
</pre>
<p>
其中,JavaHome是JRE 的目录;OS表示操作系统的种类的字符串,对 Windows,为 “98″, “2000″, “Me”, “XP”, “2003″.对Solaris,为空.对Linux,为 “Sun”, “RedHat”, “Turbo”, “SuSE”;Version 表示操作系统版本的字符串。另外,上面的文件以 .properties 为扩展名的为文本文件,以 .bfc 结尾的是二进制文件。
</p>
<p>
按照这个文档的说明,我们可以按照下面的方法来配置中文字体。
</p>
<ol>
<li>
确定系统的发布版类型,判别方法是 /etc 目录下的 release 文件:
<pre>
/etc/redhat-release => RedHat
/etc/sun-release => Sun
/etc/turbolinux-release => Turbo
/etc/SuSE-release => SuSE
</pre>
</ol>
<p>
按这种判断方法,Fedora 等发源于 RedHat 的发布版都属于 RedHat 类。如果 /etc 目录下不存在上面 4 个文件的任何一个,则 OS 为空。
</p>
<ol>
<li>
拷贝 JavaHome/lib/fontconfig.OS.properties.src 为 JavaHome/lib/fontconfig.OS.properties。如对于 Fedora:
<pre>
cp fontconfig.RedHat.properties.src fontconfig.RedHat.properties
</pre>
</ol>
<p>
对于不属于上面 4 类的发布版,不妨拷贝 RedHat 的配置文件为 fontconfig.properties:
</p>
<pre>
cp fontconfig.RedHat.properties.src fontconfig.properties
</pre>
<ol>
<li>
编辑上述 .properties 文件,在文件的“Font File Names”一节里,找到在下面一行:
<pre>
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/chinese/TrueType/zysong.ttf
</pre>
</ol>
<p>
将“=”号以后的中文字体文件名,改为本系统上存在的一个中文字体文件名。您如果愿意,可以修改其他几行,为繁体中文、日语、韩语等您可能用到的语言设置合适的字体。
</p>
<p>
经过这么简单的修改,Java 的图形界面程序就可以正确地显示中文了。
</p>
<p>
上面介绍的是设置中文字体的标准的做法。另外,还有一个“偷懒”的做法。这就是:不需要修改任何文件,只要创建一个新目录:
</p>
<pre>
JavaHome/lib/fonts/fallback/
</pre>
<p>
然后把中文字体的 TTF 文件拷贝到这个目录里就 OK 了!
</p>
<p>
其实不只netbeans,我们经常会发现在Linux下,很多其它的java应用程序的中文会变成一个一个的“口”字,都是同样的原因。解决的办法也是一样的。
</p>
<h2 id="toc_0.4">字体格式</h2>
<p>
我在linux中双击字体文件名就看到了, 包括几乎所有字体格式, 如pfb, ttf, otf, pfa, pcf等, 但无法看到afm, 和tfm格式的.
</p>
</div>
</div>
<footer>
<p id="legal">Copyright © 2012 NIE-YONG. All Rights Reserved.</p>
</footer>
<a class="go2top" style="display: none;"><span></span></a>
</body>
<script language="javascript">
dp.SyntaxHighlighter.HighlightAll('code');
</script>
</html>