name="属性" compare="eq|not_eq|less|less_eq|more|more_eq|contains|not_contains"> 值 any 指的是说, 只要字型的该属性 list 之中有一项有符合要 test 的值, test 就会成立。all 的话要 list 之中所有的都符合,first 要第一个符合, not_first 要除了第一个以外有符合的。通常只会用到 any, 预设也是 any. name 里面填的就是前面所提的属性, 如 name="family". compare 是比较的条件, eq 是相等, less 是小于, 以此类推。 所包住的那个值就是要用来比较的值,包括: int, double, string, matrix, bool 等等。一旦 test 的条件都成立, 就会进行到 edit 的阶段,代表编辑符合条件上述 test 条件的属性:
属性" mode="assign|assign_replace|prepend|append|prepend_first|append_last"> 值 注意在 fontconfig 中, 属性 (property) 可以是一个 list, 亦即一个属性可有许多的值。 assign 是说把 match 到的值取代掉, assign_replace 是说把该 list 的所有值取代成指定的值, prepend 则是插在 list 中被 match 到的那个值的前头, 以此类推。
fonts.conf 里面有一个范例:
true Times Times New Roman 这个 pattern match 是说, 当 prefer_outline 的值是 true 的时候, 而且字型的 family 又叫做 Times, 那么就把它的 family list 前面加入 Times New Roman。这样做的原因是, Times 本身是点阵字, 如果希望在许多应用程序指定用 Times 显示时, 不要用点阵字显示, 而要用 Times New Roman 这个 TrueType 字型显示, 这样可以把 Times New Roman 的优先权提在 Times 的前面。 Family matching 是另一种 match 方法,它的用法和 pattern matching 差不多,只是它是针对个别字型的属性作修改,用法是:
Gtk2 可以使用两组特殊的 alias: Sans 和 Serif. Sans 是无衬线的意思,也就是如 Arial, Verdana 等等边缘是方的字。Serif 则是有衬线的字,如 Times. 由于 fontconfig 有字型取代的机制, 可以修改 /etc/fonts/fonts.conf 里面的这一段:
相关: Screenshot
Bitstream Vera Sans Helvetica Arial Verdana Nimbus Sans L Luxi Sans Kochi Gothic PMingLiU AR PL KaitiM GB AR PL KaitiM Big5 Baekmuk Dotum SimSun sans-serif
与这一段:
sans-serif Bitstream Vera Sans Verdana Nimbus Sans L Luxi Sans Arial Helvetica Kochi Gothic PMingLiU AR PL KaitiM GB AR PL KaitiM Big5 Baekmuk Dotum SimSun
把想要加入替换 list 的字型加进去。排愈前面的字型, 在当他有符合要显示的语言的文字的时候就会被用上,如我把 PMingLiU 设在文鼎字型前面,PMingLiU 就会在需要显示中文的时候优先被选到。当然严格来说,PMingLiU 并不能算是 Sans-serif 而要算是 serif, 但因为我要跟 Bitstream Vera Sans 搭配,故放在一起。 Q. 我遇到了奇怪的问题,可是不知从何找起,怎么办?