Windows 10 一週年更新版本下使用 MacType 渲染

在 Windows 10 系統下使用 4k 螢幕並放大到 200% 時,可以很直觀的發現 ClearType 的字體渲染比 Windows 7 時好看多了,盡管依然比不上 Mac OSX,但還算看得過眼,故一直沒在電腦上安裝 MacType 渲染字體。直到七月底 Windows 10 的免費升級方案截止前,才把所有舊的電腦、筆電升上 Windows 10,印入眼簾的就是難看的可以的系統。

這幾天在升級 Windows 10 一週年更新版本(版本 1607、OS 組建:14393.10)時,順帶把 MacType 找出來安裝,想當然原先的版本自 2013 之後原開發者就沒有繼續維護,更新的時候頻繁當機、出狀況也是很正常的,後來才在 github 找到原來是 EasyHook 版本過舊的原因。

所以,在安裝使用 MacType 前務必先進行 Windows 10 的大更新,已經安裝的話也請在大版本更新前停用、移除再執行升級。(不然就只能按著電源鍵強制關機,恢復先前版本了

注意

MacType 原開發者 FlyingSnow 已於 2016 年的 8 月 30 日起推出 2016 後繼版本的更新,為避免與原文混淆,我獨立將相關內容更新在頁底第五、第六章節,之前原文內容,不予更改。Windows 10 使用者建議直接改用最新版本

零、關於 MacType

開始之前,先簡單的介紹一下 MacType,MacType 是由 FlyingSnow 延續 GDI++ 開源專案的字體渲染軟體,直白的說就是替 Windows 的使用者在網頁瀏覽、系統界面、一般程式中呈現更好看的字體顯示效果。

誠如前面提到 MacType 是延續 GDI++ 開源專案而來,侷限當然就是只能渲染 GDI+ 的程式。所以對 Windows 7 之後,採用微軟開發的新字體渲染引擎 DirectWrite 方案的程式像是微軟自己的 UWP APP、Office 系列程式一直沒有直接的解決辦法,最大眾化的差異就體現在 Chrome 52 版拿掉禁止 DirectWrite 功能後,呈現出一片模糊的效果。(幸好在 Firefox 上不是問題

令人雀躍的是,現在可以透過第後面提到的第三方開發 patch 擁有初步的解決方案。

所以在這篇方法下,MacType 能幫我們做到的事情包括渲染 Windows 中使用 GDI+ 引擎顯示的軟體,以及在不修改系統的情況下快速更替使用的系統字體、讓 DirectWrite 的 Grid-fitting 功能不執行避免中文字筆劃被省略、改變

一、安裝 MacType

1、原開發者 FlyingSnow 的 Google Project 網站有提到,但並沒有放置最後一個 2013 的 MacType 版本(版本號:2013.1231.0),可以從「糖果の無人小島」找到打包好的版本,也可以從這邊下載單純的安裝檔。(原開發者已經更新,見最後一段

2、下載完後,直接安裝即可,裡面沒有包廣告軟體之類,沒有什麼特別需要設定的地方,不過我個人建議在 Windows 10 環境下,不要安裝在「Program Files」和「Program Files(x86)」兩個資料夾下,以避免後續調整的 ini 檔在 Windows 10 重新啟動或更新時會失效;安裝完之後先到安裝的資料夾,打開 MacTray 選「停用」並「退出」。

二、用新的 EasyHook 避免系統出錯

前面提到原先的 MacType 由於 EasyHook 版本過舊的緣故,會導致 Windows 10 在更新過程中遇到問題,這部份有兩個解決方案,一個是 wspl 提出的更換 EasyHook 2.7 的辦法;另一個則是日本開發者 しらいと(slight_jp)的 MacTypePatch 方案。前者比較正規,後者則是前面提到處理初步解決 DirectWrite 無法渲染的辦法,兩個選一個就好了。

wspl 的方案

wspl 在他的「mactype-hack」計畫中提到的方案是將 EasyHook 的版本更新,使用他提供的方法是:

  1. 頁面下載最新版本 Binaries 的 EasyHook(現在最新的是 v2.7.6035.0
  2. 解壓縮後,從裡面的「NetFX4.0」裡找到 EasyHook32.dll、EasyHook64.dll
  3. 將 EasyHook32.dll、EasyHook64.dll 重新命名成 EasyHK32.dll、EasyHK64.dll
  4. 把這兩個檔案丟到 MacType 資料夾去取代同名檔案。

採用他這個方法後,更新就不會遇到問題,並且在 MacType 中的「註冊表兼容模式」以及「獨立托盤模式」都可以使用了。

しらいと(slight_jp)的方案

しらいと(slight_jp)在他的「MacTypeでDirectWriteの設定を変えるパッチ」中更進一步的提供了可以修改 Windows 10 DirectWrite 設定的能力,使用他 patch 的方法是:

  1. 他的發佈頁下載最新的 MacTypePatch(現在最新版本是 1.18
  2. 解壓縮後將資料夾內的 EasyHK32.dll、EasyHK64.dll 檔案複製貼上到 MacType 的安裝資料夾中
  3. 將「win8.1 or later」資料夾內的 UserParams.ini 檔案,同樣丟到 MacType 的安裝資料夾
  4. 如果 Windows 10 是 32-bit 的話:
    • 將 EasyHK32.dll 也複製貼上到「C:\Windows\System32\」資料夾內;
  5. 如果 Windows 10 是 64-bit 的話:
    • 將 EasyHK32.dll 丟到「C:\Windows\SysWOW64\」資料夾裡,
    • 並且將 EasyHK64.dll 丟到「C:\Windows\System32\」資料夾裡。
    • 這邊看仔細,我並沒有寫錯

使用這個方法除了原本使用 GDI 渲染字體的部份會依照原來的設定檔渲染,採用 DirectWrite 的渲染字體的設定檔也會依照 UserParams.ini 渲染,此外當然也可以透過修改這個檔案自己調整 DirectWrite 渲染方式。

也就是說用這個方法能夠渲染閹割掉「關閉 DirectWrite 功能」的 Chrome 52 及之後版本的瀏覽頁面,需要注意的是這個方法只支援「註冊表加載模式」以及「服務加載模式」。

MacType 載入方式選擇

しらいと(slight_jp)的 MacType patch 在 8 月 30 號 Matype 原作者 FlyingSnow 更新了主程式後,依然繼續推出新的版本,喜歡他的 patch 效果,可自行到他的頁面下載後續更新替換。到我更新這篇文最新的 1.18 版為止和新舊版 MacType 主程式都相容。

三、MacType Beta

第三方作者 SU2LIN 基於 FreeType 開發的 MacType Beta 可以從他 blog 內連結下載,我使用了一陣子沒有什麼問題,在他的頁面上提供兩個 patch,一個是 MacType_dev_20160216 另一個是四月二十四號發佈的 Crash fixed 更新(跟 EasyHook 的部份重複,這可以不用下),使用方法:

  1. 先完成上面提到的安裝 MacType 和替換 EasyHook 步驟
  2. 下載 MacType_dev_20160216.zip,並解壓縮
  3. 將 MacType.dll、MacType64.dll 替換掉之前 MacType 安裝資料夾內的同名檔案

點兩下開啟 MacType 安裝資料夾內的 MacWiz.exe,選擇你喜歡的加載方式和設定文檔就大功告成了。

其中載入方式我喜歡用「服務加載」;設定文檔可以用自己喜歡的字體(這真的很重要)參考內建修改就行了,嫌麻煩的話,前面提到「糖果の無人小島」打包好的版本中,Candy Type LCD Lite、Candy Type Sharp Fix 設定都是很平衡的選擇,然後記得重開機~

四、用 MacType 渲染 Firefox

在完成好 MacType 安裝、更新 EasyHook、使用 MacType Beta 後,接下來就是最後 Firefox 設定的部份了:

  1. 在 Firefox 網址列,複製貼上 about:config,進入修改 prefs.js 檔頁面
  2. 在搜尋框中,複製貼上 gfx.direct2d.disabled,修改此偏好的值為 true。
  3. 不想停掉硬體加速,在Firefox 52 之後版本要多一個步驟,在搜尋框中貼上 gfx.content.azure.backends,把偏好從 direct2d1.1,skia,cairo 改為direct2d1.1,cairo,skia,或著直接刪掉 skia。
  4. 關閉重開 Firefox,這樣應該就可以看到渲染的結果了。

有人問上面第二步驟為什麼要把 gfx.direct2d.disabled 改成 true,那是因為一般啟用硬體加速後(在工具 > 選項 > 進階裡),MacType 渲染會失效,而透過此方法可以在不失去圖層加速的情況下讓 MacType 渲染字體。

Windows 10 一週年更新版本下使用 MacType 渲染B

參考上圖,如果直接關掉硬體加速,在 about:support 裡面 H264 等解碼會顯示無,下方 AzureContentBackend 會顯示 cairo。

其他程式的渲染方式可以參考 wspl/mactype-hack 在 github 頁面的內容,他還提供了像是 Atom、*Chromium、Microsoft Visual Studio、PyCharm 和 Universal Windows Application ......等程式的處理方式,如果有需要可以參考看看,也順便給他個 star 這樣。

五、原開發者 2016 全新版本的 MacType

MacType 的原始開發者 FlyingSnow 已於 2016 年 8 月 30 日開始一連更新了四個版本,這波更新不僅整合了しらいと(silight-jp)的程式碼(只整合到 1.13,後續要自己下載 patch 修正),啟用了對 DirectWrite 的支援(甚至 gamma 值可調),並支援各個版本的 Metro 類程式,以及和 Windows 10 的相容性。到 9 月 7 日的今天最新的版本是 1.2016.904.0 。

全新的 MacType 2016 各版本中,我只有短暫測試過作者發佈的 1.20160830.0 的版本,囿於 Chrome 套件崩潰以及 Edge 頻繁當掉,在主力的電腦上又恢復成前面一到三章節介紹的 2013 版本,故並不保證其效果。

昨日觀看 1.2016.904.0 討論頁面,似乎穩定性已經有所提昇,剛剛裝到另一台筆電上,Chrome 53 可以正常使用了,也沒遇到其他特殊問題才更新此篇,使用者可以依測試看看前面一到三章節提的方法或是全新版本那個比較符合需求。

下載位置:
使用應注意:

a.安裝新版本前必須完全移除舊版的 MacType,包括設定檔和前面提過的任何 patch,如舊版採用前面提過的しらいと(slight_jp)方案,sys32 和 sysWOW64 目錄下添加的 .dll 也要刪除。

b.安裝位置必須裝到 Program Files 下,才有辦法渲染系統界面。建議沒有特殊原因就採用「註冊表加載模式」(是說我用托盤模式也沒問題就是了)。

c.設定檔方面只有 default.ini 有啟動 directwrite,其它設定檔請手動修改 ini 檔設定,要使用 Directwrite 渲染,設定檔內必須增加 Directwrite = 1 值 ,大型程式最好是先使用設定檔內的 [unload dll] 排除,測試時在加回,避免找不到錯誤。

六、Windows 10 創意者更新後使用 MacType 方法

微軟在 2017 年 4 月 12 日開始推送 Windows 10 的第二波大版本更新「創意者更新」(Creators Update,版本 1703,OS 組建 15063.138)後,MacType 可能會出現安裝完成後,登入沒有字的情況。

解決辦法是更新前先移除 MacType(已經更新了也可以在設定那邊移除,重開機即可,不用重灌),並採用 FlyingSnow 去年所提供的全新版本 MacType 1.2016.904.0(參考章節五),並下載新做的臨時 patch MacType CTP 170307 W10,直接解壓縮覆蓋在安裝資料夾就行了。

到這邊其實就已經可以正常使用了,而在我的主力筆電上裝上章節二提到的しらいと(slight_jp)做的 easyhook 方案 MacType Unofficial Patch 效果會更好,不過也建議在多裝這額外 patch 前先備份系統下的 EasyHK32.dll、EasyHK64.dll,以方便自己選擇要不要加上這個額外的 patch。

2017 年 6 月 28 日更新

最新版本是 MacType 1.2017.628.0,備份好自己的 ini 設定檔,完全移除重開機後再安裝即可,不用裝其他額外的東西。 新的預設 ini 檔跟過去有些不一樣,可以比對自己的設定檔做修改。

新的版本中比較值得注意的是效能改進、微軟內建的 Edge 瀏覽器不能被渲染、DirectWrite 下熱替換字體取消、DirectWrite 參數部份可以調整,以及令人歡欣鼓舞的 Chrome 和 Firefox 渲染支援(Windows 10 才有,之前自己設定檔取消掉的就快加回來吧!

詳細更新細節可以參考開發者在極限社區的兩個發佈頁:

You may also like...

  • 宇都宮Liko

    k大,原作者有更新了:http://www.mactype.net/

    • 我在極限社區有看到作者發了新的版本,試用了 2016.830.0 那個版本,效果不如 20160216 版 + しらいと(slight_jp)的方案,特別是 Chrome 套件會崩潰,所以就換回舊版了。他最近四天更新了三次,還在調整當中,我等穩一點再裝好了。

      • 新版 MacType 的部份,添加上去了。

  • eerr

    大大請問 我是WIN7的 用了MacType 每次開機都有會有兩個記事本 內容是[MacType]
    AutoRun=0
    AutoEnable=0
    AutoUnload=0
    這個應該是啟動的通知吧

    請問能否從哪設定把他關閉 讓他開機不會跑出啊?

    • 沒遇過這個情況,不太清楚。把 AutoEable=1 試試看?

  • 林莫

    能請教一下,我目前安裝: MacType 1.2016.904.0
    系統上基本上都正常使用,ini 選擇:Candy Type Sharp Fix。字體選擇: Tsentsiu HG

    用在Chrome真的奇怪,很不舒服找了許多文章暫時搭配Stylish半接受第一次使用覺得太亮眼感覺。

    http://i.imgur.com/09p9JGM.jpg

    書籤名稱、圖片上呈現上覺得不美觀、這部分可以渲染到嗎,無法解決

    • 現在好像也只能渲染到部份 UI,反而是網頁的部份沒辦法渲染,如果覺得字體看不順眼,可以到 Mactype 安裝資料夾裡附的一個叫 MacTuner.exe 的程式慢慢修,我印象中可以調粗更平滑。

      我 ini 是用 CandyType LCD Fix,效果如下圖:https://i.imgur.com/dLDbsBo.png

      也不知道什麼原因,同樣的設定看起來比 Firefox 淡蠻多,但沒什麼時間,加上也不知道是不是 bug, 加上 Chrome 也不是閱讀主力就沒管他了。

      • 林莫

        字體部分你有沒有啥建議,長時間看起來比較舒服。

        文泉驛微米黑、思源黑體 在系統上我都覺得正常在網頁再都很怪異。目前這個字體只有簡體中文字還行英文和一些符號看起來就不舒服(習慣當中)、可以推薦看看。

  • 江家志

    HI,請問你UWP界面都有渲染成功嗎? 就是像按視窗鍵後 那些動態磚的程式 謝謝

    • UWP 要用新版 + 使用注意 b 才會成功喔~

      • 江家志

        http://tieba.baidu.com/p/4831851517 我是參考這位大陸朋友的教學做的 不過UWP還是渲染失敗
        我有試過註冊表跟服務都一樣(茶
        ————————————————–
        補上檔案擺放位置以及UWP渲染顯示 http://imgur.com/a/C3Oeu

        • 你直接問他應該比較快吧。我也是知其然不知其所以然,沒有能力幫人 debug 的。

          • 江家志

            OK THX,只能說微軟可不可以把字體渲染這部分做好點(吶喊

            雖然UWP程式沒在用 但是看了就很不爽XD

            明明slight_jp的PATCH就都擺對位置了=口=

          • 的確是這樣,沒道理 apple 可以做的這麼漂亮,微軟辦不到。大概是開發人員都看字母不太在乎方塊字體使用者的感受吧。

  • An-Zhi Zhang

    大大有一段打錯了
    2. 解壓縮後,從裡面的「NetFX4.0」裡找到 EasyHook32.dll、EasyHook64.lib

    應該是 EasyHook64.dll 才對,因為拷貝lib檔,程式開啟後一直出現錯誤訊息

    • 已經修正那句,感謝你的提醒~

  • 林家瑋

    請問CTP的補丁 裡面的EasyHook32 和 64 要分別像 日版補丁這樣丟進windows裡面嗎?

    • 不用~

      • 林家瑋

        那在請問大大 是有使用CTP補丁 加上 Unofficial path 嗎?

        • 我在 WIN 10 的創意者更新後,新版+CTP補丁一定要才不會缺字。しらいと(slight_jp)的 patch 建議裝前先備份,不喜歡他的效果還可以裝回來。

  • Samuel

    請問一下,我試著安裝新版的mactype,可是安裝程式一直出現 file does not exist: C:WINDOWSsystem32EasyHK64.dll 奇怪的是,我用檔案總管看的確是沒有這個dll檔,但是如果用貼上的方式,它又告訴我已經有舊版的在,要不要替換。就算我選擇貼上替換了,安裝程式還是告訴我沒有這個dll檔,檔案總管的確也看不到。請問這是什麼樣的情形?應該如何解決?

    • 備份你的 ini 檔,進安全模式移除舊版和已經安裝的新版,再重新裝一次看看。

      • Samuel

        謝謝!再請教一個問題,要備份的ini檔是mactype裡面的ini檔嗎?

        • 對呀,就是個人設定檔,一般來說在 C:Program FilesMacTypeini 裡

          • Samuel

            好!謝謝!我下午試試看。有問題再請教您!

          • Samuel

            結果還是不行。安全模式裡面的程式集已看不到Mactype,回來正常模式安裝時還是告訴我一樣的訊息… 但奇怪的是檔案總管裡也看不到,複製貼上的時候卻說裡面有這個檔案… 請問還有別的方法可以解決嗎?

          • Samuel

            再貼一次… 結果還是不行。安全模式裡面的程式集已看不到Mactype,回來正常模式安裝時還是告訴我一樣的訊息… 但奇怪的是檔案總管裡也看不到,複製貼上的時候卻說裡面有這個檔案… 請問還有別的方法可以解決嗎?

          • 這樣我還真不知道,重灌看看?

          • Samuel

            工作用的電腦重灌太辛苦,就只好先放著,之後再看看了… 我猜想可能是我沒有先移除Mactype,而先升級了創作者所造成的。也不知道是太好運還是運氣太不好,升級的時候沒有出問題,反倒是之後看到您的文章,想更新Mactype的時候才出現這樣的狀況…

          • 這樣講不通,特別是進到安全模式也找不到檔案。一般直接升級應該是無法渲染或者缺字。你在安全模式裡有辦法移除所有版本的 MacType,然後重裝 MacType 1.2016.904.0 嗎?

Top