kde會缺字

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

文章Edward G.J. Lee » 週三 5月 31, 2006 1:05 pm

さかな 寫:啊呀這不錯。THX a lot~
有一個特別規則:字族名稱 (family) 分為兩種約束:強和弱(strong and weak)。(譯註:binding怎麼翻?) 強字族名稱比字型所支援的語言 (lang) 更為優先,弱字族名稱反之。 在文件指定的字型都不在電腦裡的時候,這可以讓語言引導字型的選擇。

譯者似乎還滿注重譯詞是否雅緻,既然如此,可否獻曝一下
binding不妨翻作「親族關係」
strong, weak 就可叫做「近、遠」
近親字族與遠親字族

這樣似乎會讓使用者誤認為「近、遠」是字族本身的特性,但那其實是 fontconfig match 哪個字型(字族)時的優先性。

fontconfig 的重點是依使用者的設定及語系 match 所需要的字型,就是找到有這些語系的字的字型來供應用軟體使用。語意上可能可以說是「強行指定」(strong binding)及「非強行指定」(weak binding),只不過在翻譯上是否適當我就沒有把握了。

代碼: 選擇全部
<match target="font" >
 <match target="pattern" >
  <test compare="eq" name="family" >
   <string>serif</string>
  </test>
  <edit mode="assign" binding="strong" name="family" >
   <string>Times New Roman</string>
   <string>HanWangMingMedium</string>
   <string>HAN NOM A</string>
   <string>HAN NOM B</string>
   <string>DFSongStd</string>
   <string>Kochi Mincho</string>
   <string>Baekmuk Batang</string>
   <string>Simsun (Founder Extended)</string>
  </edit>
 </match>
</match>


像這樣就是強行指定 serif 時是使用 Times New Roman,其他語系的字型則依以上所排列的順序來 match。

許多的困擾可能就是出在這些 fontconfig 的設定檔上。一般使用者會優先使用 GUI 的工具,但目前設定的細節還不夠細,所以會有一些盲點,必需回歸到最底層的 fonconfig 的設定檔上。
LGJ
道隱於小成,言隱於榮華。(莊子.齊物論)
頭像
Edward G.J. Lee
榮譽學長
榮譽學長
 
文章: 211
註冊時間: 週一 11月 10, 2003 9:24 pm
來自: 鄉下

文章Leira » 週二 6月 06, 2006 1:52 pm

LGJ兄,我也遇到了KDE缺字的问题,
我的设置是将Sans,Serif,Monospace等字体的alias到中文字体上,来实现中文显示的。事实上,不加这些alias,我的GTK2的程序(如Firefox,gedit)运行的好好的,也都能显示中文,而且在选择具体的字体名,而不是Sans,Serif,Monospace的情况下也能显示中文。我的理解似乎是fontconfig对于任何字体,在遇到该字体没有的unicode码时,都能够找到相应的种文字体中的字替换。但是我不明白,为什么同样的设置对于GTK2 OK,但对KDE就有问题呢?
加上了上面的alias设置,我现在的KDE系统使用的事Sans字体,已经能够显示中文了,但是对于一些应用预设的字体不是Sans的,中文就显示成方块了。 我想,对于fontconfig的设置文件,应该可以对所有的字体alias到中文字体的吧?我指的不是挨个去alias,而是同类似match的语法。

不好意思,现在是在公司的windows机器上回复,不能贴出更多的配置信息,希望没有对阅读造成困难~
Leira
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週四 4月 06, 2006 2:29 pm

文章Edward G.J. Lee » 週二 6月 06, 2006 7:50 pm

Leira 寫:LGJ兄,我也遇到了KDE缺字的问题,
我的设置是将Sans,Serif,Monospace等字体的alias到中文字体上,来实现中文显示的。事实上,不加这些alias,我的GTK2的程序(如Firefox,gedit)运行的好好的,也都能显示中文,而且在选择具体的字体名,而不是Sans,Serif,Monospace的情况下也能显示中文。我的理解似乎是fontconfig对于任何字体,在遇到该字体没有的unicode码时,都能够找到相应的种文字体中的字替换。但是我不明白,为什么同样的设置对于GTK2 OK,但对KDE就有问题呢?

詳細細節我並不清楚,可能要請教一下 KDE 的開發人員。我猜想,可能是 KDE 除了 fontconfig 外,也有他自己處理 lang 的機制,而這兩個機制沒有配合好的關係。

而 gtk2/gnome2 他對語系則是依系統的 i18n 機制來判斷。

加上了上面的alias设置,我现在的KDE系统使用的事Sans字体,已经能够显示中文了,但是对于一些应用预设的字体不是Sans的,中文就显示成方块了。 我想,对于fontconfig的设置文件,应该可以对所有的字体alias到中文字体的吧?我指的不是挨个去alias,而是同类似match的语法。

是可以用 language tag 來總的去設定。
代碼: 選擇全部
edt1023:~$ fc-list :lang=zh-tw
新細明體,PMingLiU:style=Regular
王漢宗中隸書繁,HanWangLiSuMedium:style=Regular
HanWangMingMedium:style=Bold
cwTeX 粗黑體,cwTeXHeiBold:style=Medium
王漢宗顏楷體繁,HanWangYanKai:style=Regular
文鼎PL新宋,AR PL New Sung:style=Regular
王漢宗中明體繁,HanWangMingMedium:style=Regular
cwTeX 仿宋體,cwTeXFangSong:style=Medium
cwTeX 明體,cwTeXMing:style=Medium
cwTeX 楷書,cwTeXKai:style=Medium
細明體,MingLiU:style=Regular
文鼎PL細上海宋,AR PL Mingti2L Big5:style=Regular,Reguler
王漢宗細圓體繁,HanWangYenLight:style=Regular
HAN NOM A:style=Regular
cwTeX 圓體,cwTeXYen:style=Medium

所以,可以以 zh-tw 這個 language tag 來做以上所有字型的設定。

但是問題出在 fontconfig 對 language tag 的判斷是屬於比較嚴格的,所以某語系缺某一定程度的字的話,就不會列入該 language 的字型了。
LGJ
道隱於小成,言隱於榮華。(莊子.齊物論)
頭像
Edward G.J. Lee
榮譽學長
榮譽學長
 
文章: 211
註冊時間: 週一 11月 10, 2003 9:24 pm
來自: 鄉下

文章Tetralet » 週三 6月 07, 2006 12:09 am

Leira 寫:但是我不明白,为什么同样的设置对于GTK2 OK,但对KDE就有问题呢?

GTK+2 使用了一些機制,
讓應用程式在顯示字串時,
若預設的字型無法顯示某些字時,
會抓其它的字型來補齊。

但 QT 就沒有這些機制了,
所以建議將 QT Based 的應用程式和一些較齊全的 Unicode 字型搭配使用。

但 GTK+2 的速度也因這個機制被拖慢了不少。
魚與熊掌吧?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

上一頁

回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客