QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2170|回复: 5

这个fonts.conf中究竟是哪段实现了算法生成斜体嘞?

[复制链接]
发表于 2004-8-20 21:13:37 | 显示全部楼层 |阅读模式
[code:1]<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts.conf file to configure system font access -->
<fontconfig>

<!--
        The intent of this standard configuration file is to be adequate for
        most environments.  If you have a reasonably normal environment and
        have found problems with this configuration, they are probably
        things that others will also want fixed.  Please send any suggested
        changes to [email protected] so that future releases can include
        such changes.

        Note that the normal 'make install' procedure for XFree86 is to
        replace any existing fonts.conf file with the new version.  Place
        any local customizations in local.conf which this file references.

        Keith Packard
-->

<!-- Font directory list configured on Thu Apr  3 13:42:53 CST 2003 -->

        <dir>/usr/X11R6/lib/X11/fonts/TTF</dir>
        <dir>/usr/X11R6/lib/X11/fonts/Type1</dir>
        <dir>/usr/X11R6/lib/X11/fonts/truetype</dir>
        <dir>/usr/system/fonts</dir>
        <dir>~/.fonts</dir>

<!--
  Enable sub-pixel rendering
        <match target="font">
                <test qual="all" name="rgba">
                        <const>unknown</const>
                </test>
                <edit name="rgba" mode="assign"><const>rgb</const></edit>
        </match>
-->

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>mono</string>
                </test>
                <edit name="family" mode="assign">
                        <string>monospace</string>
                </edit>
        </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans serif</string>
                </test>
                <edit name="family" mode="assign">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans</string>
                </test>
                <edit name="family" mode="assign">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Mark common families with their generics so we'll get
  something reasonable
-->

<!--
  Serif faces
-->
        <alias>
                <family>Times New Roman</family>
                <family>Times</family>
                <family>Nimbus Roman No9 L</family>
                <family>Luxi Serif</family>
                <family>Simsun</family>
                <family>Kochi Mincho</family>
                <family>AR PL SungtiL GB</family>
                <family>AR PL Mingti2L Big5</family>
                <family>Baekmuk Batang</family>
                <default><family>serif</family></default>
        </alias>
<!--
  Sans-serif faces
-->
        <alias>
                <family>Tahoma</family>
                <family>Verdana</family>
                <family>Helvetica</family>
                <family>Arial</family>
                <family>Nimbus Sans L</family>
                <family>Luxi Sans</family>
                <family>Simsun</family>
                <family>Kochi Gothic</family>
                <family>AR PL KaitiM GB</family>
                <family>AR PL KaitiM Big5</family>
                <family>Baekmuk Dotum</family>
                <default><family>sans-serif</family></default>
        </alias>
<!--
  Monospace faces
-->
        <alias>
                <family>Courier</family>
                <family>Courier New</family>
                <family>Andale Mono</family>
                <family>Luxi Mono</family>
                <family>Nimbus Mono L</family>
                <family>NSimSun</family>
                <default><family>monospace</family></default>
        </alias>
<!--
  If the font still has no generic name, add sans-serif
-->
        <match target="pattern">
                <test qual="all" name="family" compare="not_eq">
                        <string>sans-serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>monospace</string>
                </test>
                <edit name="family" mode="append_last">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Load per-user customization file
-->
        <include ignore_missing="yes">~/.fonts.conf</include>

<!--
  Load local system customization file
-->
        <include ignore_missing="yes">local.conf</include>

<!--
  Alias well known font names to available TrueType fonts
-->
        <alias>
                <family>Times</family>
                <accept><family>Times New Roman</family></accept>
        </alias>
        <alias>
                <family>Helvetica</family>
                <accept><family>Verdana</family></accept>
        </alias>
        <alias>
                <family>Arial</family>
                <accept><family>Verdana</family></accept>
        </alias>
        <alias>
                <family>Courier</family>
                <accept><family>Courier New</family></accept>
        </alias>

<!--
  Provide required aliases for standard names
-->
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Times New Roman</family>
                        <family>Nimbus Roman No9 L</family>
                        <family>Luxi Serif</family>
                        <family>Times</family>
                        <family>Simsun</family>
                        <family>Kochi Mincho</family>
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>Baekmuk Batang</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Tahoma</family>
                        <family>Verdana</family>
                        <family>Nimbus Sans L</family>
                        <family>Luxi Sans</family>
                        <family>Arial</family>
                        <family>Helvetica</family>
                        <family>SimSun</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>AR PL KaitiM Big5</family>
                        <family>Baekmuk Dotum</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Andale Mono</family>
                        <family>Courier New</family>
                        <family>Luxi Mono</family>
                        <family>Nimbus Mono L</family>
                        <family>NSimSun</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>Baekmuk Dotum</family>
                </prefer>
        </alias>

<!--
Artificial oblique for fonts without an italic or oblique version
-->

        <match target="font">
                <!-- check to see if the font is roman -->
                <test name="slant">
                        <const>roman</const>
                </test>
                <!-- check to see if the pattern requested non-roman -->
                <test target="pattern" name="slant" compare="not_eq">
                        <const>roman</const>
                </test>
                <!-- multiply the matrix to slant the font -->
                <edit name="matrix" mode="assign">
                        <times>
                                <name>matrix</name>
                                <matrix><double>1</double><double>.2</double>
                                        <double>0</double><double>1</double>
                                </matrix>
                        </times>
                </edit>
                <!-- pretend the font is oblique now -->
                <edit name="slant" mode="assign">
                        <const>oblique</const>
                </edit>
        </match>

<!--
Add by [email protected]
Artificial bold for fonts without a bold version
-->
        <match target="font">
                <test name="weight">
                        <const>medium</const>
                </test>
                <test target="pattern" name="weight" compare="not_eq">
                        <const>medium</const>
                </test>
                <edit name="weight" mode="assign">
                        <const>bold</const>
                </edit>
        </match>

<!--
  Add by [email protected]
  Disable "Global Advance" for all mono spacing fonts
-->
        <match target="font">
                <test name="spacing">
                        <const>mono</const>
                </test>
                <edit name="globaladvance">
                        <bool>false</bool>
                </edit>
        </match>
<!--
This expression is added by Akito Hirai<[email protected]> for convenience.
It can be used to make artificial bold versions in client libraries/applications.
-->
        <match target="font">
                <test name="weight">
                        <const>medium</const>
                </test>
                <test target="pattern" name="weight" compare="more">
                        <const>medium</const>
                </test>
                <edit name="weight" mode="assign">
                        <if>
                                <more>
                                        <name>spacing</name>
                                        <const>proportional</const>
                                </more>
                                <const>demibold</const> <!-- for monospace    -->
                                <const>bold</const>     <!-- for proportional -->
                        </if>
                </edit>
        </match>

<match target="font">
        <test name="pixelsize" compare="less_eq">
                <double>16</double>
        </test>
        <test name="pixelsize" compare="more_eq">
                <double>8</double>
        </test>
        <edit name="antialias" mode="assign">
                <bool>false</bool>
        </edit>
</match>
<match target="font">
        <test name="size" compare="less_eq">
                <double>16</double>
        </test>
        <test name="size" compare="more_eq">
                <double>8</double>
        </test>

        <edit name="antialias" mode="assign">
                <bool>false</bool>
        </edit>
</match>

<match target="font">
        <test target="pattern" name="lang" compare="contains">
                <string>zh-tw</string>
                <string>zh-cn</string>
                <string>ja</string>
                <string>ko</string>
        </test>
        <test name="spacing" compare="eq">
                <const>mono</const>
        </test>
        <edit name="globaladvance" mode="assign">
                <bool>false</bool>
        </edit>
</match>
<match target="font">
        <test target="pattern" name="lang" compare="contains">
                <string>zh-tw</string>
                <string>zh-cn</string>
                <string>ja</string>
                <string>ko</string>
        </test>
        <edit name="spacing">
                <const>proportional</const>
        </edit>
        <edit name="globaladvance">
                <bool>false</bool>
        </edit>
</match>

<match target="font">
        <test name="family" compare="eq">
                <string>SimHei</string>
        </test>
        <edit name="antialias" mode="assign">
                <bool>true</bool>
        </edit>
</match>

        <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
-->
                <blank>
                        <int>0x0020</int>       <!-- SPACE -->
                        <int>0x00a0</int>       <!-- NO-BREAK SPACE -->
                        <int>0x00ad</int>       <!-- SOFT HYPHEN -->
                        <int>0x115f</int>       <!-- HANGUL CHOSEONG FILLER -->
                        <int>0x1160</int>       <!-- HANGUL JUNGSEONG FILLER -->
                        <int>0x1680</int>       <!-- OGHAM SPACE MARK -->
                        <int>0x2000</int>       <!-- EN QUAD -->
                        <int>0x2001</int>       <!-- EM QUAD -->
                        <int>0x2002</int>       <!-- EN SPACE -->
                        <int>0x2003</int>       <!-- EM SPACE -->
                        <int>0x2004</int>       <!-- THREE-PER-EM SPACE -->
                        <int>0x2005</int>       <!-- FOUR-PER-EM SPACE -->
                        <int>0x2006</int>       <!-- SIX-PER-EM SPACE -->
                        <int>0x2007</int>       <!-- FIGURE SPACE -->
                        <int>0x2008</int>       <!-- PUNCTUATION SPACE -->
                        <int>0x2009</int>       <!-- THIN SPACE -->
                        <int>0x200a</int>       <!-- HAIR SPACE -->
                        <int>0x200b</int>       <!-- ZERO WIDTH SPACE -->
                        <int>0x200c</int>       <!-- ZERO WIDTH NON-JOINER -->
                        <int>0x200d</int>       <!-- ZERO WIDTH JOINER -->
                        <int>0x200e</int>       <!-- LEFT-TO-RIGHT MARK -->
                        <int>0x200f</int>       <!-- RIGHT-TO-LEFT MARK -->
                        <int>0x2028</int>       <!-- LINE SEPARATOR -->
                        <int>0x2029</int>       <!-- PARAGRAPH SEPARATOR -->
                        <int>0x202a</int>       <!-- LEFT-TO-RIGHT EMBEDDING -->
                        <int>0x202b</int>       <!-- RIGHT-TO-LEFT EMBEDDING -->
                        <int>0x202c</int>       <!-- POP DIRECTIONAL FORMATTING -->
                        <int>0x202d</int>       <!-- LEFT-TO-RIGHT OVERRIDE -->
                        <int>0x202e</int>       <!-- RIGHT-TO-LEFT OVERRIDE -->
                        <int>0x202f</int>       <!-- NARROW NO-BREAK SPACE -->
                        <int>0x205f</int>       <!-- MEDIUM MATHEMATICAL SPACE -->
                        <int>0x2060</int>       <!-- WORD JOINER -->
                        <int>0x2061</int>       <!-- FUNCTION APPLICATION -->
                        <int>0x2062</int>       <!-- INVISIBLE TIMES -->
                        <int>0x2063</int>       <!-- INVISIBLE SEPARATOR -->
                        <int>0x206A</int>       <!-- INHIBIT SYMMETRIC SWAPPING -->
                        <int>0x206B</int>       <!-- ACTIVATE SYMMETRIC SWAPPING -->
                        <int>0x206C</int>       <!-- INHIBIT ARABIC FORM SHAPING -->
                        <int>0x206D</int>       <!-- ACTIVATE ARABIC FORM SHAPING -->
                        <int>0x206E</int>       <!-- NATIONAL DIGIT SHAPES -->
                        <int>0x206F</int>       <!-- NOMINAL DIGIT SHAPES -->
                        <int>0x3000</int>       <!-- IDEOGRAPHIC SPACE -->
                        <int>0x3164</int>       <!-- HANGUL FILLER -->
                        <int>0xfeff</int>       <!-- ZERO WIDTH NO-BREAK SPACE -->
                        <int>0xffa0</int>       <!-- HALFWIDTH HANGUL FILLER -->
                        <int>0xfff9</int>       <!-- INTERLINEAR ANNOTATION ANCHOR -->
                        <int>0xfffa</int>       <!-- INTERLINEAR ANNOTATION SEPARATOR -->
                        <int>0xfffa</int>       <!-- INTERLINEAR ANNOTATION TERMINATOR -->
                </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
-->
                <rescan>
                        <int>30</int>
                </rescan>
        </config>

</fontconfig>
[/code:1]
发表于 2004-8-20 23:04:53 | 显示全部楼层
[code:1]<!--
Artificial oblique for fonts without an italic or oblique version
-->

        <match target="font">
                <!-- check to see if the font is roman -->
                <test name="slant">
                        <const>roman</const>
                </test>
                <!-- check to see if the pattern requested non-roman -->
                <test target="pattern" name="slant" compare="not_eq">
                        <const>roman</const>
                </test>
                <!-- multiply the matrix to slant the font -->
                <edit name="matrix" mode="assign">
                        <times>
                                <name>matrix</name>
                                <matrix><double>1</double><double>.2</double>
                                        <double>0</double><double>1</double>
                                </matrix>
                        </times>
                </edit>
                <!-- pretend the font is oblique now -->
                <edit name="slant" mode="assign">
                        <const>oblique</const>
                </edit>
        </match> [/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-8-21 09:27:46 | 显示全部楼层
看不懂啊……
回复

使用道具 举报

发表于 2004-8-21 16:39:23 | 显示全部楼层
http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=1184
回复

使用道具 举报

 楼主| 发表于 2004-8-22 12:50:16 | 显示全部楼层
官方手册和ericcheng的详解早就打印下来琢磨过了。。。
反正还是不懂
回复

使用道具 举报

发表于 2004-8-22 22:22:25 | 显示全部楼层
嘿嘿,俺也不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 00:00 , Processed in 0.236612 second(s), 24 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表