[討論] iOS7 中文字體說明與問題統計

看板 iOS
作者 pttlulu (LuLu總裁)
時間 2014-02-04 15:45:25
留言 22則留言 (17推 0噓 5→)

iOS7 中文字體說明與問題統計 ( 手機排版請見諒 ) 前面有點囉唆,且文章有點長,這篇主要是針對中文字體,希望大家能耐心看一下。 =============== 怕還是有人不知道,所以寫在最前面: 關於 LINE 字體 LINE 已經可以直接使用你的中文字體,方法如下: 加入軟體源:apt.iphone4.tw 安裝:LINE Chinese Font ( 感謝皮樂的開發 ) =============== 在 iOS7 放出 JB 工具以來也一個多月了,中文字體的修改上一直以來遇到不少問題,像是特定 App 閃退、缺字等等,現階段其實已算穩定,只有一小部份特定情況仍無法解決。 我先稍微說明一下一開始到現在的做法調整過程,並且會提出現階段有收到的問題回報。 在 iOS6 時期,中文字體只有兩個檔案: STHeiti-Light.ttc STHeiti-Medium.ttc 每個 TTC 字集檔都包含 5 個 TTF 格式字體,當時在改字體的時候,用的工具是 TTF tools、 Font Creator 5.2 版。過程小複雜,簡單地說,要把你想換的字體複製成 5 個,再將他們內部的 Naming 替換成與原生字體一樣的內容,接著包成新的 TTC 檔案就完成了,當時這樣就能製作新字體,只有一小部份的字體需要經過其他調整 ( 高度、寬度、座標等等 )。 到了 iOS7,中文字體又多了兩個檔案: STHeiti-Thin.ttc STHeiti-UltraLight.ttc 從名稱可以知道是比 Light 更細的兩個字體重量,也就是為了因應 iOS7 介面風格而新增的,這兩個由於是新增字體,打開後發現和之前一樣,都只包了 5 個 TTF。但是原本的 Light 與 Medium 打開後卻變成各包了 10 個 TTF,這下就頭大了,一來要處理的內容變多,打包、測試也是很費時的。 至於為什麼要變成 10 個 TTF,原因很簡單:並非所有的 App 都已針對 iOS7 做更新調整,舊有的 App 仍需要原本對應的字體內容,所以舊的 5 個 + 新增的 5 個就變成了 10 個 TTF,這也就是為什麼 Light 與 Medium 要變成 10 個 TTF 在內,而 Thin 與 UltraLight 都只包了 5 個 TTF。 一開始當然就依照 iOS6 時期的做法去修改,改完之後開始出現閃退問題,便開始尋找問題點,找出了可能是因為字符的缺少,但之前 iOS6 時期是不會因為這樣閃退的,頂多出現「口口」的狀況,到了 iOS7 也許因為 API 全面的調整,以致部份 App 會自行 Cache 字體內容,導致換了字體後因為不符合原生字體而閃退。 最初的解決方式是補字進去。 原生字體多達 50000 字以上,要補字不是一件容易的事,但是經過一段時間的努力,暫時解決了一部份的問題,但似乎仍然治標不治本。後來與另一位也很熱心研究字體的 Ryan 大,一起對字體的問題經過了很多回合的討論,也感謝 Ryan 大提供的原生字體模版,我們開始將工具換為 TTFname3、Fontlab Studio 來處理,並將字體的修改做法改成「把新字體的字符貼到原生字體中」。 這樣一來有以下的好處: 1. 原生字體不會缺字 2. Naming 不會有問題,用 ttfname3 可以快速修改 舉例來說,假設原生字體有 10 個字,而新字體只有 8 個字,把這 8 個字貼到原生字體對應的 10 個位置內,那剩下的兩個沒貼當然就會保持原生字體,絕對不會有缺字、缺符號的問題。當然要貼之前,新字體的編碼、高度、寬度什麼的都要調整好才能貼,否則仍會有很多問題。 大家也許在想,為什麼網路上找不太到字體編修的教學,其實不是網友們或是我不想寫,而是過程的細節實在太多,加上使用的軟體都是英文介面,絕非三言兩語可以說得明白,要操作起來很快,但是要一個步驟一個步驟去寫大概要花上 5~10 篇文章去詳細說明,以後我看看有沒有這麼多時間再來考慮吧..... 在新作法之下,可以說解決了絕大部份的閃退問題,但目前仍然會收到一小部份的回報,下面我先整理一下現有的已知問題,有列出並不代表你一定會遇到,因為除了機型的差異,你所使用的 App 也不一樣,不一定會遇到相同問題。 1-1. 布卡漫畫剃頭問題 布卡漫畫在 App Store 已下架,之前有備份的人也許有的字體沒有調整到位會出現剃頭,例如 HiraSansGB+儷黑 這個字體,不過後續更新都會盡量解決。 1-2. 微信「朋友圈」閃退 這個 App 在台灣不如大陸這麼火熱,但是因為我的字體也有許多簡體用戶安裝,以致這個問題的浮現,找了很久都無法解決,畢竟不太可能是因為特殊字符,原生字體中並沒有缺少,覺得很有可能是因為微信對於字體的 Cache 問題。有一部份網友回報,移除微信,到 App Store 重新安裝一次就解決了,所以可能確實存在著 Cache 問題。 1-3. Facebook Messenger 訊息隨機漏字 ( 空白 ) 換了字體後,在 Facebook Messenger 打字有時候會遇到這情況,有一部份的訊息內容不見了,只看到訊息框框,或是看起來像打字打到一半,後面空白這樣。後來的解決方式也一樣,移除 App,到 App Store 重新安裝一次就解決了,看來仍是因為 Cache。 1-4. 「百度貼吧、QQ 空間」閃退 這個原因與前面都一樣,重新安裝就解決問題了 1-5. Instagram 閃退問題 這個 App 也是奇葩之一,不管怎樣就是會有人遇到閃退,但我就是怎樣也遇不到。收集了一些回報,發現 5S 與 5 都有人遇到,其他裝置不確定。目前的心得仍然很有可能是因為 App 的 Cache 原因,但這個 App 的閃退實在太怪異,現在仍無法完全解決。 以上這五個 App 並不是所有機型、所有字體都會這樣,有時候也得看人品 ( 誤 ),或是你的社群內容而定,像我都沒有遇到閃退.... ( 我大概是最希望遇到閃退的人了吧XDDDD ) 1-6. 表情符號「^_^」按鍵閃退 鍵盤上的表情符號鍵 ( 就是「^_^」這個按扭 ),一按下便會閃退,但是這個狀況絕大部份只有出現在 iPhone 5S,我手邊的 iPhone 5 從頭到尾都沒有遇到過,怎麼按都不會閃退.... 如果你是在主畫面的搜尋 ( 主畫面下拉 ),原本按「^_^」會閃退的話,在搜尋畫面中去試就會變成 Respring,這原因很簡單,因為主畫面是隨時保持啟動的,沒辦法閃退只好就 Respring 了,所以基本上跟你在其他 App 閃退的情況是同一個原因,並不是因為這個按鈕造成 Respring,而是因為主畫面不能閃退,只能 Respring。 其實表情符號自己輸入也可以,或是從其他地方貼製貼上也行,偏偏就是一部份的 5S 在按下這個按鍵時會閃退,到現在還找不到真正的原因,一直都在苦惱中。 1-7. 部份英文字體「fl」問題 將英文字母 f 與 l ( 小寫的 L ) 打在一起時,fl 會變成原本或較小的字體,總之看起來就會與你新換上的英文字體不同,而將 f 與 l 中間空一格之後就又恢復了。( 我只能說發現這個問題的網友,可能具有塞亞人的雷達眼鏡XDDDD ) 這個問題後續我會解決,因為製作工具不同竟然會導致這個莫名奇妙的問題,我在原生英文字體中有看到一個「fl」符號,應該是被自動轉成這個符號去了,後來我試了 Fontlab Studio 製作同樣的字體就沒有這個問題,所以之後會找時間將現有的英文字體重做一次。( 比較後期做的沒有這個問題,例如少女字體的英文、Myuppy 英文等等 ) 以上即是現階段比較常遇到的問題,除了上面提到的之外,在 A7 處理器有遇到的閃退問題,Ryan 有提供一個方式可以試試 ( 重刷且不要進 DFU 模式 ),但是因為現在 7.0.5 已出,絕大部份裝置重刷後是無法降回 7.0.4 的,要等 evasi0n 支援 7.0.5 再說。 接下來希望大家在推文提供使用狀況的回報,讓我能統計一下現有的情況,回報的格式請參考下面的說明,因推文長度限制故用簡稱即可。 字體的版本請一律用最新版本,雖然我知道可能舊版你沒有遇到同樣問題,但如果你都用得好好的其實也不用去更新,這邊只統計最新版本的字體問題。 ( 1-7 的問題因為之後會重做解決,所以就不用回報了 ) 我的軟體源:cydia.hdlulu.com iOS7 字體專用資料夾:LuLu Font iOS7 這邊以我的軟體源中的字體為主,若你是在 iPhone4TW 安裝的基本上是一樣,但就不是使用 Bytafont 去替換了,這邊建議使用 Bytafont 去換替字體,它會自動清除一些系統 Cache 檔 ( 例如鍵盤外觀、電信商字體 ) 也比較方便。 條件:iOS7.0~7.0.4 ( 不用寫出你的版本,因為只限 7.0.4 用戶回報 ) 機型:不限 ( 以下面簡稱即可 ) 4/4S/5/5S、Air/miniR/mini/iPad3 使用字體 ( 以中文為主 ) ( 用前面的簡稱即可 ) H:HiraSansGB H-trad:HiraSansGB 簡轉繁 H+L:HiraSansGB+儷黑 H+L-trad:HiraSansGB+儷黑 簡轉繁 P:POP字體 G:少女字體 C:原生中文 簡轉繁 遇到的問題 如果你看了上面那些列出的已知問題,若你試了移除重裝並沒有解決,就照上面問題前面的題號,例如 1-1、1-2、1-3 這樣列出即可。 推文格式範例: (1) 完全沒有遇到問題 5/H:沒問題 5S/H+L:沒問題 Air/H+L:沒問題 miniR/H:沒問題 (2) 有同樣問題 5S/H+L:1-5,1-6 5/H+L-trad:1-4,1-6 (3) 有其他問題 5S/H+L:你的問題 謝謝大家了! -- ◆ From: 115.80.151.4
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/iOS/M.1391499928.A.05A.html

yichin122:5s, HL 表情閃退 02/04 15:58

ja881213:IPT 5/H+L-trad:沒問題 02/04 16:21

benq581:4S/H-trad:1-6 02/04 16:57

ursoab0811:5s/P 1-7 02/04 17:20

richjf:辛苦了 製作的字體很清晰 感恩 02/04 17:47

pttlulu:樓樓上,POP字體沒有做英文的耶... 1-7是英文字體的問題 02/04 17:51

ditm:5/H+L-trad:沒有問題 02/04 18:21

abcdefghi:1-7的fl問題是 ligature, 字體檔為美觀而特別加入的 02/04 18:41

pttlulu:感謝樓上的說明,原來如此,之後更新都會解決 02/04 18:48

ursoab0811:因為我沒有裝h跟l 所以就選我用的推 英文字體是ubuntu 02/04 19:10

pttlulu:喔喔好的謝謝,英文字體之後更新就會解決的,謝謝喔! 02/04 19:18

jackjack135:推到底阿!!!真的是太感謝你了!!!! 02/04 19:43

charlieZ:lulu大推 繁中世界有你真好! 02/04 23:27

ja881213:不知道是否還有推出其他字體的計畫 02/05 00:28

hsin1207:Instagram本身就很容易閃退出問題,常常出現error... 02/05 01:33

rumicco:純推 有你真好 02/05 14:09

NomadShu:5S/C:1-6。謝謝LuLu! :D 02/05 18:17

isangxwbh:有LuLu真好 02/06 00:34

sydwuz:https://en.wikipedia.org/wiki/Typographic_ligature 02/06 05:06

sydwuz:關於ligature可以參考這邊 02/06 05:06

emily021382:5/H,H-trad,C:1-5,1-6 02/06 17:38

test05test:5/H+L:1-5,1-6 02/10 15:48

您可能感興趣