2015-03-13 59 views
0

我目前正在開發一款應用程序,在wine下運行linux,需要使用CJK字體顯示(僅顯示,不輸入)文本。有趣的是,微軟字體以某種方式相互鏈接,例如: 如果我使用winetricks來安裝Tahoma,並運行它,它會顯示無法顯示的字符框,然後當我安裝所需的字體時,例如:MingLiu,正確的文本,即使我只選擇Tahoma作爲默認字體。葡萄酒中的字體識別?

我認爲的結論是,不知何故,Microsoft字體在嘗試渲染不能呈現的字符時會互相鏈接,不知何故就像這樣: 「嘗試使用Tahoma,如果它無法呈現某些字符,呈現他們使用其他可以使用的字體(例如:MingLiu),同時仍然使用Tahoma渲染拉丁字符「。奇怪的是,當我使用不是微軟的其他CJK字體時,例如:Hanazono(http://fonts.jp/hanazono/),即使Hanazono可以渲染一些需要顯示的字符,也不會發生這種情況。如果我選擇Tahoma或任何其他字體,即使Hanazono出現在當前的wineprefix中,它也將永遠無法呈現CJK字符。

  1. 開始用乾淨WINEPREFIX(我用winetricks刪除所有wineprefixes)
  2. 從winetricks,安裝宋體
  3. 運行應用程序
  4. ,我用它來複制這種 「現象」 的步驟

  5. 注意無法呈現的亂碼或框字符
  6. 關閉應用程序,將所需字體(例如:MingLiu)複製到wineprefix目錄中的windows/Fonts目錄
  7. 重新運行該應用
  8. 通知的完美呈現字符
  9. 重複步驟1-4
  10. 關閉應用,複製替代字體,應該能夠正確地呈現文本(例如:Hanazono)到窗戶/字體目錄在WINEPREFIX目錄
  11. 重新運行該應用程序
  12. 注意的還是亂碼或箱子字符

我真的不知道從哪裏開始,以瞭解這一問題的方法,無論是某種葡萄酒專長,還是某種特定字體的瑣事。最簡單的解決方案是嵌入Microsoft字體,但由於它會引發法律問題,我更喜歡使用我可以自由使用的第三方字體。任何信息都會有幫助,謝謝。

回答

0

今天Goggling,然後我發現這篇文章:https://msdn.microsoft.com/en-us/library/ms901083.aspx

看來,(所使用的術語來定義我找的特性)「字體鏈接」定義一些註冊表值的作品,並嘗試在註冊表編輯器後,加入在HKLM軟件 - 微軟WindowsNT的-FontLink-SystemLink命名爲「幻覺記憶三世」新多串價值,用價值:

HanaMinA.ttf, HanaMinA 
HanaMinB.ttf, HanaMinB 

我能夠幻覺記憶三世與Hanazono字體鏈接到渲染CJK字符幻覺記憶SANs可以不渲染。

應該指出的是,這個實驗只適用於葡萄酒,因爲在Windows中,字體鏈接以「自動」的方式工作,而不需要人工定義註冊表,這可能會導致相同的文本呈現中的錯誤導向在運行時看起來相同紅酒。