zhmCJK:使用 zhmetrics 实时配置 CJK 字体

这个包近来这段时间测试了下,总体还算满意,对于CJK的用户可以适当尝试下,是个很不错的解放,但是ctex包还没有跟着更新,ctex-kit更新了对zhmCJK的支持,但是ctan还没有更新,有兴趣的用户可以尝尝鲜。


这着实是一个有趣的尝试。自从 yulewang 刚刚提出 zhmetrics 这种模式的时候我就在想这个事情:所有的汉字字体都使用相同的 metrics,那么 tfm 文件不需要安装;而 pdfTeX 和 DVIPDFMx 支持用 TeX 的 special 语句设置字体映射,那么 .map 文件不需要安装(正如原来的 zhwinfonts.tex 一样);而且对于 pdfTeX 和 DVIPDFMx 来说,可以直接使用 TrueType 字体(DVIPDFMx 甚至还支持 OTF 格式),那么 .pfb 文件也不需要转换。——这样一来,其实几年前繁琐无比的 CJK 汉字字体安装,从原理上说完全是不必要的,甚至可以仅仅用几行简单的 LaTeX 代码就完成一款中文字体的安装。这正是这个宏包的初衷。 今天夜里本来昏昏沉沉的,在网上看到还有人抱怨 CJK 字体安装麻烦的,然后随便翻看 ctex-kit 的代码树,突发奇想,就去写代码。在一个临时目录下面胡乱涂抹了一小会儿,就编译出了汉字。又东拼西凑地涂抹了一阵,把用户界面搭了起来,看起来还不错。;) 改来改去几次,定了宏包的名字是 zhmCJK,是 zhmetrics 和 CJK 的复合,希望不会有什么歧义。 宏包的基本用户界面则是照着 xeCJK 做的,对简单的测试文件使用 zhmCJK 和 xeCJK 代码应该是兼容的,并且效果大致相同。只支持 UTF8,而且我也不想再去支持 GBK 了。宏包把 \begin{CJK} \end{CJK} 什么的都按 ctex 宏包的技术包装起来了,并且调用了 CJKspace,这样用起来就差不多和 xeCJK 是一回事了。 目前还没有配置 CJKpunct,嗯下次修改时再加上吧。复合字体也还没弄,也留待以后吧。 总而言之,统而言之,看到这个测试代码能跑还是蛮激动人心的:

\documentclass[12pt,a4paper]{article}

\usepackage{zhmCJK}
\setCJKmainfont[BoldFont=simhei.ttf,ItalicFont=simkai.ttf]{simsun.ttc}
\setCJKsansfont{simhei.ttf}
\setCJKmonofont[AutoFakeBold=0]{simfang.ttf}
\setCJKfamilyfont{xinwei}{STXINWEI.TTF}

\title{\bfseries 一个华丽的 zhmCJK 测试}
\author{Leo Liu}
\date{2012 年 2 月 4 日}

\begin{document}

\maketitle

正文是宋体字,\textbf{加粗变成黑体},\textit{倾斜变成楷体}

\textsf{这是黑体字,\textbf{自动加粗的黑体字}}

\texttt{这是仿宋字,\textbf{不加粗的仿宋字}}

{\CJKfamily{xinwei}还有华文新魏}

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 最后免不了说一点限制和缺点。主要问题是 zhmetrics 还依赖一个 texfonts.map,它里面是 CJK 的许多子字体名的 tfm 到实际的 zhmetrics.tfm 的映射文件。texfonts.map 的内容是固定的,并且只需要能被 kpathsea 搜索而不需要 updmap,所以在安装上并不成什么大问题。不过因为 texfonts.map 必须事先存在,zhmCJK 可以安装的字体数量就必须事先确定并做限制,目前是 32 个,大体应该够用。而且 texfonts.map 的体积也不小,现在就有 200 多 KB 了。 这个宏包还远未完善,暂时放在我个人的版本库里面先调着。大家测试一下,如果效果好的话,以后就放到 ctex-kit 里面去(或者和 zhmetrics 合并)。ctex 宏包也可以转而支持这个了。 CTAN 地址:http://ftp.ctex.org/mirrors/CTAN/language/chinese/zhmcjk/项目地址:http://code.google.com/p/leoliu-tex-pkg/-------------------------------------------------------------------------- 更新: 2012/02/02 v0.2 增加一个简要的文档。增加 CJKpunct。整理部分代码。 2012/02/02 v0.3 增加 PDF 原语生成伪粗体功能。 2012/02/03 完善文档,说明安装配置方式。 2012/02/04 v0.4 增加复合字体功能。增强伪粗体支持。 2012/02/05 v0.5 重写 TFM 字体生成脚本。对 MiKTeX 特别处理。 2012/02/05 v0.6 增加伪斜体功能。 2012/02/06 v0.7 修正 \setCJKfamilyfont 的语法以与 xeCJK 一致。载入时检查引擎。 2012/02/06 v0.8 增加 encoding 选项提供多编码支持。2013/08/10 v0.9 增加 cmap 选项可以为 dvipdfmx 选择字体的 CMap(支持 Fandol 字体)。 增加 embed 选项可以为 dvipdfmx 选项不嵌入字体。 增加伪粗斜体功能。 修正 hyperref 不能正常使用的 BUG。修正伪粗体、伪斜体不能断行的 BUG。 

下载区

zhmcjk.zipzhmCJK20140208150757选自:http://bbs.ctex.org/forum.php?mod=viewthread&tid=70222 

分享到:
未经允许不得转载:zhmCJK:使用 zhmetrics 实时配置 CJK 字体
已有 条意见

    最新文章

    加载中...
      本站提供专业LaTeX排版、咨询、定制服务,请点击下图咨询详情


      全国首个精品的LaTeX视频教程,大牛带着你入门,让LaTeX学习不再纠结,请点击下图咨询详情

      热门评论

        联系我们

        交流QQ群:91940767
        本站QQ号:343083553
        邮箱联系latexstudio@qq.com
        淘宝店铺latexstudio.taobao.com 提供排版,模板定制,培训,图片处理,视频教程等LaTeX服务。

        关注微信公众号: latex2015

        如果您投稿或者希望加入我们团队,请发送您的简历到latexstudio@qq.com。

        科技艺术的完美融合,专业精致的排版体验

        联系我们联系我们