2017-04-03 86 views
2

首先,我只想知道爲什麼在Windows 10上的IDE PYCHARM中,雖然「只顯示等寬字體」選中,但很多字體不會在編輯器的字體選擇對話框中列出[settings/editor/colors和字體/字體],也在mintty。字體如何告訴操作系統「我是一個MONSPACED /固定寬度的字體」?

我不知道pycharm是怎麼做的,但mintty使用win32 API「L​​OGFONT」。

那麼,windows OS如何知道字體是否等寬(固定寬度)?

即: 「源代碼親」被列出,「源代碼親黑/ extralight /光...都沒有;

‘’列出費拉代碼,但費拉代碼輕型/中型/視網膜是不是。

和一些其他的等寬字體未列出那裏,如果「只顯示等寬」

似乎檢查時pycharm只認字體家族名「只顯示monospced字體」

在OSX(小牛)呢有點複雜:如果'只顯示等寬字體'被選中,pycharm仍然可以獲得姓氏,但是如果安裝了粗糙的加權字體版本,它不知道哪個字體權重是默認的。


然後,我試圖修改一些字體,並且通過具有一目瞭然的字體僞造原始字體的「文件信息」的方式,但我不知道是哪個部分真正影響的WINDOWS或PYCHARM (IDEA/INTELIJ /由JDK實際上?)知道哪個字體是等寬字體。

在「OS/2」部分,檢查了任何提到了fixed-width/monospace/monospaced的參數,但沒有任何幫助,並且在python窗口中仍然無法檢測到它們。

最後,我真的好奇,TTF文件或任何其他字體文件類型使用哪個參數來告訴[我是等寬的] [OS/OS/Mac OS/Linux]操作系統?

回答

1

TrueType字體可以包含post表。 post表包含一個名爲isFixedPitch的32位字段。如果這包含0,則表示比例字體。等寬字體應該將此集合設置爲1(但通常建議字體引擎應接受任何非零值作爲指示等寬字體,因爲這是TT規範的早期版本所要求的)。

等寬字體也應該有在設定爲所述3hheahmtxnumberOfHMetrics

還有panose字體匹配數據(在OS/2表中)中的數據來指定字體是否等寬。

如果我不得不猜測,我會說蘋果更可能使用post表,而微軟更有可能使用Panose數據(但我可能很容易對這兩者中的任何一個或兩個產生錯誤)。


參考文獻:

  1. Apple documentation of 'post' table
  2. Microsoft OpenType Recommendations
  3. Panose Classification Metrics Guide
+0

太感謝你了,驚人的世界得到有價值的答案。它似乎是我修改了一個panos位「9」等寬字體的字體是成功的,它已被OSX成功識別,並且根據您的reflink#2,微軟建議使用panose數據,但pycharm無法識別它,也許這就是pycharm或jdk的問題。 –

相關問題