百度空间 | 百度首页 
               
 
查看文章
 
一个菜鸟利用MiKTeX2.7组建中文TeX平台的经历
2008-04-23 09:49

MikTeX早已经更新到2.7,将XeTeX打包进发行包中。CTeX发行包不见有更新的迹象,为了体验一把XeTeX,于是想在不影响以前的文档使用的情

况下寻觅一种新解决方案。尽管instanton在论坛上屡次向大家推荐MiCTeX,初步试用一把之后觉得也不错,但本菜鸟几经思想挣扎之后决定通

过自行更新MiKTeX来搭建TeX中文平台.
一.下载安装:
如果你对自己的网速和稳定性不是很有信心(比如我),建议直接找个网速快的地儿到ctex的ftp上ctan的镜像中把整个MikTeX文件夹抠下来。

下到本地硬盘之后,可以运行netinstaller,在安装选项时将package repository设为本地路径即可,不过安装过程相当漫长,需做好准备。

当然,也可以事先做好需求宏包列表,直接下个miktex-basic安装包和需要的宏包,安装好basic之后运行package manager从本地添加宏包。
为了能够不加改动的编译使用以前的文档,还需要添加中文字体和中文支持,这些不是很复杂,可以直接下载CTeX-CS包,安装时注意选择好本

地texmf路径,默认为C盘的application data文件夹,注意改个合适的路径。然后在miktex setting中roots中添加本地texmf路径,刷新fndb

。另外一般需要安装GhostScript和GSview,找个安装文件安装就可以。编辑器的话还是尽量保存一份winedt,在卸载ctex时将其拷贝出来就行

,不需要再次安装。
二.关于XeTeX
下面的主要工作就是配置XeTeX。在XeTeX下使用中文和其它语言确实非常方便,但是一般zhspacing和Cxetex两个宏包不可少,下载(zhspacing

用google搜索一下,在googlecode中有,cxetex在水木上,地址见下文) 解压后放在合适的路径下,我这里放在texmf-local\tex\latex\xetex

下,再次刷新FNDB。但是在细节上还是需要处理一下:
1.MiKTeX使用的unicode-letters.tex文件是2006年的老版本,而Jonathan已经对其进行了十几次更新,最新版是二月份发布的。TeXLive和

Win32TeX都采用了新版。这一点在使用纯xelatex环境进行编译的时候暂时看不出有什么影响,但是yindian的zhspacing是根据新版的写的,和

老版本一起unicode-letters.tex使用时根本不能编译通过,因此需要到http://scripts.sil.org/svn-

view/xetex/TRUNK/texmf/tex/generic/xetex/unicode-letters.tex?view=log下载最新版unicode-letters.tex,搜索覆盖原先的文件,然后

到C:\Documents and Settings\All Users\Application Data\MiKTeX\2.7\miktex\fmt\xetex干掉原先生成的fmt文件,再次运行xelatex时会

自动重新生成,这样和zhspacing的配合就没有问题了。这个问题是由yakun在http://www.newsmth.net/bbscon.php?bid=460&id=262093提出解

决方案的。
2.用惯了ctex宏包的用户一般还是希望能有一个ctex的xetex解决方案,jjgod和donated(yulewang)已经准备好一份放在

http://www.newsmth.net/bbscon.php?bid=460&id=257121。但是令人崩溃的是这个包里两位牛人竟然把cxetex.cfg文件名误写成cxexetex.cfg

,这样编译时会提示找不到ctex.cfg(这个提示信息也有问题),先把文件名改好,最好再到cxetex.sty中找到
\InputIfFileExists{cxetex.def}{}{%
    \PackageError{ctex}{%
      Can't find ctex.def}{%
      There will be unexpected errors if you continue.}}
\makeatother}
\AtEndOfPackage{%
\makeatletter
\InputIfFileExists{cxetex.cfg}{}{%
    \PackageWarning{ctex}{%
      Can't find ctex.cfg}}
将PackageError提示改成Can't find cxetex.def和Can't find ctxetex.cfg,这样编译出错的时候不会混淆。
另外,在原先宏包设置中的字体不是常见的字体,这一点不成问题,因为一般需要和zhspacing合用,因此按照yindian在zhspacing手册中的说

明修改好ctexxetex.clo就可以。
3.zhspacing中设置了扩展字体sun-extA和sun-extA,一般来说windows上不带这两种字体,虽然一般来说不需要,但是为了体系的完善,可以

http://okuc.net/software/UniFonts.exe下载选装这两种字体。如果你比较在意版权问题和美观性,还可以使用adobe的两款免费字体。我没有安装Adobe acrobat reader,但是通过访问www.adobe.com/type下载简体中文字体安装包,然后使用强悍的7-zip强行解压就能找到这两款字体,拷贝到windpws字体文件夹就可以使用了。
4.如果你还安装了其它字体,比如maple附带的字体,放在windows字体文件夹和miktex搜索路径之外,想在xetex中使用,你可以直接将其拷贝到windows fonts文件夹,也可以在Miktex的配置文件C:\Documents and Settings\All Users\Application Data\MiKTeX\2.7\fontconfig\config\localfonts2.conf中直接将字体路径加在指定位置(文件中有说明),就可以.
配置好字体后最好运行以下fc-cache -r -v,这样可以加快xelatex的运行速度.
另外补充记录一点关于TeXLive 2007的,如果选择直接从光盘(镜像)运行的话,因为此时fc-cache的默认缓冲目录指向了光盘,无法运行成功
可以按照http://bbs.ctex.org/viewthread.php?tid=40714中cdacl的方法,在windows 中手动添加一个 FC_CACHEDIR 环境变量,并指向硬盘上一个可写目录就可以。
这里非常非常感谢jjgod、yulewang、yindian、maya等大牛,没有你们义无反顾的探索和孜孜不倦的发帖提携,像我这样的菜鸟是不可能自己配置好mikTex2.7中文环境的,而我还无耻的抄袭了你们的劳动成果……


类别:tex\xetex | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu