關於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
- https://gist.github.com/zr-tex8r/668b92075009a878d857
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 |