jjgod / blog Random notes by Jjgod Jiang.

XeTeX Chinese Preprocessor 0.2

两个功能

  1. 使用 Python 来对 XeTeX 文档进行处理,进行自动的中文与英文字体的切换。
  2. 消除两行连续的中文之间多余的空格。

如何获取

从下面的地址下载:

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 即可。

几点说明

  1. 默认接受 UTF-8 格式的文档,如果你使用了其他编码,可以修改 xcp.py 第 5 行的 encoding=’utf-8′ 为你使用的编码,在 http://docs.python.org/lib/standard-encodings.html 可以找到 Python 支持的所有编码。

  2. 默认在 \begin{document} 之后才开始处理,到 \end{document} 结束处理,所以记住把 \title{} 之类放在这中间,其中的汉字才能被处理。如果你用的不是 LaTeX 而是 ConTeXt,可以相应的改成 \starttext\stoptext

  3. 需要 Python 2.4。并建议把文件格式转换为 Unix 的。

  4. 如果需要避免它处理部分代码,则可以使用 @{} 标记,这样 {} 中间的内容都不会被处理。比如 @{中文} 将被转换为 {中文},而不是 {\zh{中文}}


1 Comment

你好jjgod    在这篇文章的下面找到你的名字(同一个人?)但是中文的链接是错误的。搜了一下,找到这里。冒昧打扰。 (http://www.maxdesign.com.au/presentation/checklist.htm)    不知道你还有没有那篇译文,方便共享?我重新弄了一篇,地址如下,请指教。 http://hi.baidu.com/webworker/blog/item/38c652afbca26afbfaed5015.html

Posted by seektan on 13 September 2006 @ 1pm

Leave a Comment