两个功能
使用 Python 来对 XeTeX 文档进行处理,进行自动的中文与英文字体的切换。 消除两行连续的中文之间多余的空格。
如何获取
从下面的地址下载:
http://xcp.googlecode.com/svn/trunk/xcp.py
可以到 http://code.google.com/p/xcp/ 查看相关信息和提交 Issues。
使用方法
现在这个版本应该可以处理任何包含中文的 XeTeX 文档了。使用方法很简单,在文档的导言区加上:
\usepackage{fontspec}
\setromanfont{Garamond Premier Pro} % 此处指定英文字体
\newfontinstance\zhfont{SimSun} % 此处指定中文字体 \newcommand{\zh}[1]{{\zhfont #1}}
然后调用:
python xcp.py foo.tex > bar.tex
编译得到的 bar.tex 即可。
几点说明
默认接受 UTF-8 格式的文档,如果你使用了其他编码,可以修改 xcp.py 第 5 行的 encoding=’utf-8′ 为你使用的编码,在 http://docs.python.org/lib/standard-encodings.html 可以找到 Python 支持的所有编码。 默认在 \begin{document} 之后才开始处理,到 \end{document} 结束处理,所以记住把 \title{} 之类放在这中间,其中的汉字才能被处理。如果你用的不是 LaTeX 而是 ConTeXt,可以相应的改成 \starttext 和 \stoptext。 需要 Python 2.4。并建议把文件格式转换为 Unix 的。 如果需要避免它处理部分代码,则可以使用 [...]
自从第一部分贴出以来,受到了很多朋友的鼓励,令我感到非常高兴: 看来尽管我拙于表达,对于 TeX 系统的构建感兴趣的朋友还是不少的。不过有一点需要说明:撰写此文的主要目的并非是“构建一个最小的 TeX 系统”,只不过正巧 web2c 系统符合我们讲解的需要而已,我所希望证明的是,TeX 的构建看似复杂,其实也不过是有许多细小的“砖石”一块块搭成,并无什么神秘的地方,尽管大家的兴趣多数是在 TeX 的基础上撰写宏包,但其实参与到 TeX 系统的开发中去也并非那么困难。
web2c 只是用 YACC 写的一套简单的分析程序,由于无法作复杂的分析,所以类似 autotools 的那套“由 A 生成 B,B 生成 C,C 再生成 D”这样化学反应链一般的恐怖过程便被设计出来。
一开始,因为没法直接从 Pascal 代码中分析出其中的变量与函数,所以不得不在一些称为 .defines 的文件中专门说明这些,比如我们如果要用 web2c 转换 etex.p,就得把 common.defines, texmf .defines 和 etexdir/etex.defines 再加上 etex.p 四个文件连接起来送给 web2c 这个程序的标准输入。
然后编写 web2c 的人发现,就算这样还是不好直接通过 web2c 生成的方式搞定所有 C 程序里需要的定义,还是另外把一些内容写在 .h 头文件里,让生成的 .c 程序 #include 它就好了。于是就有一个叫做 texmf.h [...]
© jjgod / blog. Powered by WordPress using the DePo Skinny Theme.