Categories
日常应用

LyX2+XeTeX/LaTeX若干中文问题

最近琢磨着用sweave写一篇中文报告,结果打开LyX 2.0之后华丽丽的发现已然不知道一份中文的文档应该怎么写了。上一次用Latex玩中文的东西怕是要追溯到本科毕业论文了。而后一年的时间,就从来没用latex编译过任何中文的文档,也难免突然不知所措了。

LyX 2.0相比1.6x变化还是蛮大的,折腾了半天我也没弄明白怎么可以调出中文来。原来的时候觉得XeTeX慢,就一直用ctex+pdflatex的解决办法。可是不知道为什么,这一次中文总是乱码,改成UTF-8也是,弄得我好痛苦。于是一边折腾texlive,一边先在LyX里面用英文写报告。往后再慢慢翻译好了。

终于,在这个中秋假期临近尾声的时候,我没理由再拖着不把中文搞定了。于是,先调回到ubuntu去,从简单的linux软柿子捏。装完texlive 2011,找着网上的若干教程一步步走下来,比如这个,却发现我总是遇到一个莫名其妙的错误问题。错误提示大致如下:

! Undefined control sequence. <argument> ExplFileName

网上哗啦啦的搜了一番,发现原因大概是l3kernel, l3package和fontspec这个包之间的兼容问题。然后照着网上的步骤删除掉expl3这个文件夹,华丽丽的错误又出现了:

! LaTeX Error: File `expl3.sty' not found.

只有各种崩溃啊。最后忍无可忍,一个 rm -dR * 命令删掉了texlive文件夹下所有的文件。重新开始!

这一次学乖了,不用基于internet的网络安装texlive,改成ISO镜像安装(我下的是20110705版的),怎么也是打包好的镜像,不会出什么问题吧?吸取教训坚决不去tlmgr update -all了,就这个版本能用就行。话说,在ubuntu下配置环境变量$PATH的方法有许多,我最后发现还是直接改/etc/environment这个文件来的比较快,比改/home/username/.bashrck(看不到这些文件的话请在窗口上面选View -> Show Hidden Files)方便很多。不过ubuntu真的感觉还是离开了terminal寸步难行啊,总得sudo -i一下才能过得比较舒服。

然后打开LyX,什么乱码之类的浮云都不见了,顺利的编译中文文档。我是在language那里直接选择不用任何语言包,很清爽啊。导言区加了几行字来适应中文。看了一下对应的latex源代码,也蛮简单的,

documentclass{article}
makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
usepackage {fontspec}
setmainfont {WenQuanYi Micro Hei}
XeTeXlinebreaklocale “zh”%中文断行
XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt%左右弹性间距
makeatother
usepackage{xunicode}
begin{document}

只是记得要在文档选项那里把output选成xetex就好了。然后华丽丽的文驿泉中文文档出现……好吧,我去研究一下怎么用宋体。

至此,LyX 2 配合Xetex的中文问题就顺利的搞定了,感觉在linux下编译xetex还是蛮快的。先这么凑合着用吧,接下来研究sweave的中文支持问题去。