關於Source Han Sans字體的使用

這個字體的CID選的是Adobe-Identity-H做的,這個cmap在XeTeX下使用歷來是有問題的,比如以前論壇裡面給的一個康熙字典體的報錯:

  • Failed to load ToUnicode CMap for font

我在帖子後面給出了一個用mapping做的例子,pTeX系+dvipdfmx就是這麼使用的。

就最近日本社區的使用而言,也使用mapping做的:

  • To create the glyph chart of Source Han Sans JP
  • gist.github.com/zr-tex8

pTeX和dvipdfmx一起使用是沒什麼問題的。但是可能存在的問題時Source Han Sans字體本身,我在github上下載的.otf本身是有問題的。我做測試的版本是SourceForge上的:

  • Source Han Sans

在LuaTeX使用會有問題(見如何在 LuaTeX 中使用思源黑體?),這是底層的luaotfload的bug,但是我很久不用了,已經不知道哪裡出了問題了。LuaTeX裡面讀CFF的模塊其實也是來自於dvipdfmx的,在編譯的時候,會出現如下警告:

<./SourceHanSansCN-Regular.otfnLuaTeX warning (file ./SourceHanSansCN-Regular.otf): Charset data possibly brokenn (num_glyphs too high)n><./SourceHanSansCN-Normal.otfnLuaTeX warning (file ./SourceHanSansCN-Normal.otf): Charset data possibly brokenn (num_glyphs too high)n><./SourceHanSansCN-Medium.otfnLuaTeX warning (file ./SourceHanSansCN-Medium.otf): Charset data possibly brokenn (num_glyphs too high)n><./SourceHanSansCN-Light.otfnLuaTeX warning (file ./SourceHanSansCN-Light.otf): Charset data possibly broken n(num_glyphs too high)n

這個num_glyphs是定義在writecff.h裡面的。我沒做更多的測試,所以我也不知道了。我轉向我那個TeX的開發後,很少進LuaTeX的坑了,因為我挖了很多坑往裡跳啊。

而XeTeX,則使用的是衍生版的dvipdfmx(即xdvipdfmx,但目前已和dvipdfmx合併為dvipdfm-x),目前@江疆已經修正了xdvipdfmx的bug,見:

  • The XeTeX July 2014 Archive by thread

推薦閱讀:

TAG:AllaboutTeXnique | FailedtoloadToUnicodeCMapforfont | TocreatetheglyphchartofSourceHanSansJP | SourceHanSans | 如何在LuaTeX中使用思源黑体? | @江疆 | TheXeTeXJuly2014Archivebythread |