的软件源安装相关优化编写翻译过的书体渲染引擎库,本文给出的章程能够在Fedora等大多数发行版本下利用

本办法仅针对利用FreeType的Linux桌面环境。Windows用户请移步至《用MacType革新简书的读书效果》

Fedora 贰四 Linux 环境下促成 Infinality 字体渲染增强及 Java 字体渲染革新的措施,fedorainfinality

Fedora 二四 Linux 桌面环境暗许字体渲染引擎 freetype 及字体配置工具
fontconfig 选择的是未经优化的编写翻译及安装,字体渲染效果比较差。而一些
Linux 发行版的桌面字体渲染看起来很好,甚至能够接近苹果 Mac OS X
系统的成效,实际上是对 freetype
字体渲染引擎举办了改动的原因。为此,大家得以通过安装 Infinality 的改版
freetype 及 fontconfig 软件包来兑现基于 Infinality
的字体渲染效果。Infinality 是三个从事于革新 Fedora 等主流 Linux
操作系统字体渲染效果的消除方案,包罗重新优化编译过的 freetype
库,fontconfig 配置包等。原 Infinality
网址已经很久未有再立异了,但近来又有新的开发人士在 github 上一而再展开
Infinality 的耗费,并为 Fedora 23/二肆 提供了打包好的 repo 软件源。新的
Infinality 官网(其实是新笔者的博客)网站为
https://danielrenninghoff.com,可以访问其官网了解有关 Infinality
近年来的现实性支出情状及开发者以往的安顿。下边介绍在 Fedora 2肆 上的
Infinality 安装配置情势:

一、安装 Infinality 的 repo 软件源,使用上面包车型地铁授命:

# dnf install http://rpm.danielrenninghoff.com/infinality/fedora/$(rpm -E %fedora)/noarch/infinality-ultimate-repo-$(rpm -E %fedora)-1.noarch.rpm

二、通过 Infinality
的软件源安装相关优化编写翻译过的字体渲染引擎库,使用下边包车型客车命令:

# dnf install --allowerasing cairo-infinality-ultimate fontconfig-infinality-ultimate freetype-infinality-ultimate

只顾,那里运用了 dnf 的 –allowerasing 参数,申明你所设置的 Infinality
字体渲染引擎库与系统暗中同意安装的库是相冲突的,通过 –allowerasing
参数能够使 dnf 卸载相应冲突的老库再设置新的 Infinality 库。

3、安装 Infinality 优化过的书体。Infinality
专门提供了1组优化过的字体,合营 Infinality
字体渲染引擎将能完毕万分好的效用。这组字体包罗 CJK
中国和东瀛韩字体,且均放置了相比好的 hinting 微调音讯,使用上边包车型地铁授命:

# dnf install --allowerasing ibfonts-meta-base ibfonts-meta-extended-lt ibfonts-meta-extended

只顾,那将会自行安装很多相关的字体包。

四、删除 VL Gothic 及
naver-nanumgothic(名字大概拼写不准,但大体是那般)日文字体。由于
Infinality 暗中同意的 fontconfig
配置会将日文字体优先级拉长排列在汉语字体前面,这会招致千千万万顺序特别是
Java
程序私下认可的国语展现应用日文字体,会造成字型难看且出现方框(日文汉字数量少,导致汉语突显不完全)。所以最简便的点子正是剔除那四个暗中认可安装的日文字体,使用上边的命令:

# dnf remove vlgothic-fonts naver-nanumgothic-fonts

亟需小心的是,Infinality 官网服务器的拜访也许相比慢,会造成 dnf
安装软件包时出错,能够多试三遍直至安装成功。安装收尾后,可在
/usr/share/doc 目录下找到五个目录:freetype-infinality-ultimate 和
fontconfig-infinality-ultimate。那四个目录中都有 README
等自述文件比较详细地介绍了 Infinality
优化编写翻译字体渲染引擎库的有关安插格局。遵照其文书档案表明,我们须求实践以下操作:

# cp /usr/share/doc/freetype-infinality-ultimate/infinality-settings-generic /etc/profile.d/infinality-settings-generic.sh
# cp /usr/share/doc/freetype-infinality-ultimate/infinality-settings.sh /etc/X11/xinit/xinitrc.d
# chmod a+x /etc/X11/xinit/xinitrc.d/infinality-settings.sh

上述多个是最主要的书体渲染效果配置文件,具体的布署表明能够打开那多少个文本看中间的叙说。一般而言,相比较适宜的铺排是将
/etc/profile.d/infinality-settings-generic.sh 文件中第 7四 行的
XFT_SETTINGS 变量中的 Xft.hinting 设置为 1,将 Xft.hintstyle 设置为
hintslight,将第 7一5 行的 USE_STYLE 设置为
INFINALITY(作者推荐设置)或然UBUNTU。将/etc/X11/xinit/xinitrc.d/infinality-settings.sh 文本中第 3五行的 INFINALITY_FT 设置为 ultimate肆(比作者推荐的 ultimate叁越来越黑更平整一点)。

就算如此 Infinality 优化字体渲染软件包安装后会自带1些 fontconfig
配置,但是对于中文字体来说,大家期待 Infinality 提供的 Noto Sans CJK SC
中文字体可以拥有最高优先级,大家能够创制三个名为6伍-0-nonlatin-custom.conf 的公文文件,放置于 /etc/fonts/conf.d
目录下,该文件的内容如下:<?xml version=”1.0″?>

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="pattern">
        <test qual="any" name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>Noto Sans CJK SC</string>
            <string>Droid Sans Fallback</string>
        </edit>
    </match> 

    <match target="pattern">
        <test qual="any" name="family">
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>Noto Sans CJK SC</string>
            <string>Droid Sans Fallback</string>
        </edit>
    </match>

    <match target="pattern">
        <test qual="any" name="family">
            <string>monospace</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>Dejavu Sans Mono</string>
            <string>Noto Sans CJK SC</string>
            <string>Droid Sans Fallback</string> 
        </edit>
    </match> 
</fontconfig>

对此 Java 程序而言,在 Linux
环境下其字体渲染总是比系统原生字体渲染效果要差。主要缘由在于 Oracle
官方的 Java 内建了一套私有的书体渲染引擎,不可能使用系统的 freetype 及
fontconfig 配置,且渲染效果相比差,属于和微软 cleartype
相似的渲染效果。OpenJDK 则利用的是 freetype
字体渲染引擎,不过默许并不读取系统 fontconfig
配置,且字体渲染的设置是固定的,也周围于微软 cleartype
效果,所以也不太理想。最棒的章程就是,对 OpenJDK
源代码进行需要的改动,使之能够使用系统 freetype
字体渲染引擎的还要,能够读取当前系统 fontconfig 配置,并以此灵活调整
Java 中 freetype 的书体微调效果。假使自个儿编写翻译 OpenJDK 的话难度较大,而
Infinality 已经提供了针对 freetype 及 fontconfig 优化编写翻译打包好的
OpenJDK 软件包(最近基于 OpenJDK 八u玖2 版本代码),因而可透过 dnf 直接从
Infinality 软件源下载安装,使用下边包车型客车命令:

# dnf install –allowerasingjava-1.8.0-openjdk-infinality-ultimate
java-1.8.0-openjdk-infinality-ultimate-headless
java-1.8.0-openjdk-infinality-ultimate-devel
个中,前七个软件包是 OpenJDK JRE 的不可缺少软件包,最终2个软件包是 OpenJDK
JDK 的必备软件包(若是用来做 Java
开发的话)。注意,不要设置java-一.八.0-openjdk-infinality-ultimate-accessibility
软件包,因为这几个软件包是 OpenJDK 为 GTK+/GNOME ATK 组件提供的接口,而
ATK 已经被抛弃了,尽管设置了
java-壹.捌.0-openjdk-infinality-ultimate-accessibility
后会导致运转很多特大型 Java Swing 程序出现谬误(尤其是在 Swing 使用 GTK+
本地主旨时)。Infinality 优化过的 OpenJDK 安装后,其具体位置及系统中多少个Java 怎么样切换当前环境变量的题材,可参看 Linux 下的 alternatives
命令及其应用表明,alternatives 命令是特意用于在 Linux
中为同时安装存在的同名但不一致版本的多个软件拓展切换使用而规划的,比如系统中同时设置了不一致版本的
Java(JDK 或 JRE)就能够使用 alternatives
来拓展当下使用版本的切换操作,很有益。

在设置了 Infinality 优化过的 Java 后,运行 Java Swing 程序将会发觉 Swing
中的字体渲染已经完全与系统原生字体渲染完全1致,且能够跟随系统原生字体渲染调整而生成了。

http://www.bkjia.com/Linuxjc/1162768.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/1162768.htmlTechArticleFedora 二4 Linux 环境下促成 Infinality
字体渲染增强及 Java 字体渲染改良的法门,fedorainfinality Fedora 二四 Linux
桌面环境默许字体渲染引擎 freetype 及…

近来几天作者在多少个Linux发行版本之间纠结了长久,因为字体渲染效果对于本身这么些追求美观的疑病症伤者来说,仿佛喝水一致重要。在参考了各样半拉子教程之后,终于总计出了1套可靠的章程。本文给出的措施能够在Fedora等超越50%批发版本下行使,但是可能在Ubuntu那些非主流发行版本上效果不明了。那里以Fedora的一声令下为例实行讲解。

第三要安不忘忧的是infinality插件。有的发行版本,例如Red Banner(不幸已破产),是预装了那几个插件的;还有的版本例如Arch,能够在软件仓Curry找到infinality;还有Fedora,私下认可源未有那么些软件包,不过幸而infinality官方网址提供了针对性Fedora的源,从那一个源里安装freetype-infinality软件包即可。

rpm -Uvh http://www.infinality.net/fedora/linux/infinality-repo-1.0-1.noarch.rpm
sudo yum install freetype-infinality

然后要忧盛危明字体。小编引入安装三种字体,文泉驿飞米黑和尊重书宋。

到现在多数批发版本要么自带文泉驿字体,要么在软件源里提供,别的也得以机关下载。文泉驿飞米黑的软件包名往往是wqy-microhei。Fedora自带了那一个字体。

是因为方正字库的版权问题,那里不提供方正书宋的下载。然则能够迂回一下,由于WPS
for
Linux
自带1类别方正字体,因而安装WPS也是个科学的主意。未来就连奥地利人写的Fedora
tweak tool,都自带Kingsoft Office(WPS在境外的名字)了。

利用管理员权限编辑/etc/fonts/infinality/styles.conf.avail/linux/20-aliases-default-linux.conf文件。

sudo vi /etc/fonts/infinality/styles.conf.avail/linux/20-aliases-default-linux.conf

威尼斯人官网,把它改成像那一个样子(注意本人在种种西方文字字体下添加了预备的普通话字体):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

    <!-- ##Style: linux -->

    <!-- ******************************************************************  -->
    <!-- *************************** ALIASES ******************************  -->
    <!-- ******************************************************************  -->

    <!-- Default fonts - Linux Appearance -->
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>DejaVu Sans</family>
            <family>WenQuanYi Micro Hei</family>
        </prefer>
    </alias>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Liberation Serif</family>
            <family>FZShuSong-Z01</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Liberation Mono</family>
            <family>WenQuanYi Micro Hei Mono</family>
        </prefer>
    </alias>

</fontconfig>

下一场用管理员权限执行/etc/fonts/infinality/infctl.sh改变配置文件为linux。

sudo sh /etc/fonts/infinality/infctl.sh setstyle

最后,在浏览器的装置中,将无衬线字体制更始为文泉驿飞米黑,衬线字体改为方正书宋,全部的配置就做到了。重启桌面吧。

美中相差的是在那里甲骨文依旧略显娇嫩。能够告诉自身怎么调整特定字体的渲染吗?

相关文章