X ELATEX使用手记tianshui1008@March 30, 2012研究生3年以来一直使用李树均博士开发的ChinaTeX-DVD-20060918编译环境来进行LATEX的编辑和排版,由于同宿舍的舍友写毕业论文时使用的是CTeX套装,我毕业论文用的又是hooklee开发的西安交通大学的硕士论文模板,所以有些不太一样,主要是hooklee开发的西安交通大学的硕士论文模板无法正常在CTeX套装环境下正常编译,但可喜的是一般的模板却可以在ChinaTeX编译环境下运行,快毕业的时候从网上得知自己学了3年的LATEX已经过时,人家国外大牛大都在使用X ELATEX来排版自己的文章,经过一个多月的使用和摸索,终于悟出些门道,特与大家分享,不是孟子说过:『独乐乐不如众乐乐』138P¨和LATEX相比X ELATEX最大的变化集中在字体的使用上,以前我们用LATEX编译环境的时候,中文只能使用宋体,仿宋,黑体,隶书,楷体,幼圆六款字体,如果从网上下到一款好看的字体,在LATEX下一般是不能正常使用的,且Windows下这六款字体都是私权字体,因而李树均博士开发的ChinaTeX在使用字体时,使用的是现场调用用户系统的字体来生成相关的字体文件,来避免相应的字体版权纠纷,所以我们在安装李树均博士开发的ChinaTeX安装包的时候会很慢,自从有了X ELATEX现在好了,我们可以使用Adobe的几款中文开源字体(宋体,仿宋,黑体,楷体)和第三方字体了,所以现在TEX真正做到了开源。
如果你想在文档中使用第三方字体,可在正文中使用以下代码,{\fontspec[ExternalLocation]{liguofu.TTF}^Bñ¿ ᥩk}注:liguofu.TTF是字体文件名,和你的源代码放在同一个目录下,或者这里写上字体文件的绝对路径名称在命令行窗口下使用以下代码来查看系统已安装的中文字体fc-list:lang=zh-cn>>c:\yang.txt注:这里是把记录导入到C盘下的yang.txt文件中,你只需查看yang.txt便可知道你的系统安装了哪几款中文字体也许你会发现打开的文件还是无法辨认,其实你只需把它粘贴到Word中就可以了,同样的查看系统已安装的英文字体用以下命令fc-list:lang=en-us>>c:\gong.txt根据作者使用CTeX中文套装的经验,X ELATEX默认的字体搜索路径是C:\WINDOWS\Fonts(这里假定你的系统安装在C盘),也就是说你需要把你文档中所使用的字体复制到上述目录下1LanZhou University of Technology §Ü ØývÐ2BîÏÓð一个典型的X ELATEX中文环境是这样的%!TEXprogram=xelatex%!Mode::"TeX:UTF-8"\documentclass[12pt,a4paper]{article}\usepackage[top=25.4mm,bottom=25.4mm]{geometry}%!Â:H \usepackage[no-math]{fontspec}%438Ê47\usepackage{xunicode}%4Unicode3¡\usepackage{xltxtra}%4XeTeX¥¿ÉiOFÆXeTeX¥LOGO\usepackage[slantfont,boldfont]{xeCJK}%P¨xeCJK¡\usepackage{amsmath}%С\usepackage{mathspec}%Ð38¡\usepackage{graphics}%m¡\usepackage{titleps}%!Â:Á,:\usepackage{xecolour}%%-----------------------!ÂÏÓ38--------\setCJKmainfont]{AdobeSongStd}%!ÂÓ¹Ã8\setCJKmonofont{AdobeHeitiStd}%!© 38\setCJKsansfont{AdobeKaitiStd}%!ÂíéL38%%-----------------------!ÂÓ38------------------------\setmainfont[Mapping=tex-text]{TeXGyrePagella}%ÓéL38\setsansfont[Mapping=tex-text]{TrebuchetMS}%ÓíéL38\setmonofont[Mapping=tex-text]{CourierNew}%Ó© z38%%-----------------------!ÂÐ38--------------------------\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{MinionPro}%%-------------------------------------------------------------\punctstyle{kaiming}% 7üTSÄìT\usepackage{indentfirst}%nêÉ\linespread{1.5}%1.5 \begin{document}\newpagestyle{yang}{\sethead{NorthWestUniversity}{}{vÐ}\setfoot{Ð"}{}{»~~\thepage~~:}\headrule\footrule}\pagestyle{yang}8^Ó\end{document}ØÐý»2:LanZhou University of Technology §Ü ØývÐ3I ¥P¨WinEdt6.0以及他以前版本的编辑器,并不完全支持Unicode或者UTF-8编码,也就是说你建立的文档的默认编码格式是ANSI,但我们可以给源文件的开头加上一行使他存储和打开的时候不致显示乱码,大家注意到源代码开始的两行,是提醒读者这个代码要用X ELATEX命令来编译,并且使用UTF-8格式编码,关于编译环境的选取,我们选取CTeX 2.8.0.125或以上版本便可,关于编码格式的选取,在WinEdt代码编辑界面中我们点击最下面的状态栏上的TeX,在弹出的界面中选择Format选项卡,然后选择Soft Returns单选框,最后在下拉列表框中选择UTF-8.由于X ELATEX默认的设置对中英文混排支持还不够好,不能对中文和英文分别设置字体,也不能很好地处理中文和英文之间的空白距离。
我们可以安装孙文昌老师开发的xeCJK宏包来解决这个问题即使用\usepackage[slantfont,boldfont]{xeCJK}4¬Æm再一个最大的不同就是图片的插入了,现在在X ELATEX下可以直接插入.jpg, .bmp, .tiff, .png等格式的图片了,插入图片的基本命令为\XeTeXpicfile[Ê[]注:选项包括以下6项width宽度height高度scaled缩放因子xscaled x方向的缩放因子yscaled y方向的缩放因子rotated旋转的度数还有一个插入pdf格式图片的命令\XeTeXpdffile[Ê[]但它有个特别的页码选项,page,这个命令用于插入某一pdf文件的其中某一页,默认情况下插入第一页,其中页码也可以是负值,比如-2表示倒数第二页,如果使用页码这个选项,必须是文件名后的第一个选项注意到pdf格式的图片也可以用前一个命令来插入但是这样做的话会有两个缺点,第一图片的清晰度降低,也就是说它不再是矢量格式的了,第二只能插入第一页.注意: X ELATEX对.eps格式的图片是不支持的,需将其转化为.pdf格式才行ØÐý»3:LanZhou University of Technology §Ü ØývÐ使用如下代码\hbox{\XeTeXpicfile"Snap5.jpg"scaled800}使用如下代码对原图横向放大200倍\hbox{\XeTeXpicfile"Snap5.jpg"scaled800xscaled200}使用如下代码对原图旋转90度\hbox{\XeTeXpicfile"Snap5.jpg"scaled800rotated90}cjkB5DAcjkD2BBcjkB0E6cjkCAFDcjkD1A7cjkB7D6cjkCEF6cjkCDF5cjkB0CBcjkBDCCcjkD3FDcjkB3F6cjkB0E6cjkC9E7cjkCEF7cjkB1B1cjkB4F3cjkD1A7 cjkD1EEcjkCAF7cjkCEB0若要插入pdf格式的图片,可使用如下代码\hbox{\XeTeXpdffile"Snap.pdf"scaled800}ØÐý»4:LanZhou University of Technology §Ü ØývÐ最近经作者测试发现WinEdt7.0编辑器已经完全支持Unicode了,即文档的开头不需要加入这两行.%!TEXprogram=xelatex%!Mode::"TeX:UTF-8"也不需要在最下面的状态栏上刻意选择TeX:UTF-8编码格式了,也就是说用WinEdt7.0编辑器建立的默认文档的编码格式是UTF-8,这样的话对用X ELATEX编译的文档是个好事.5Ðfm¥ûÅ在X ELATEX下,我们可以使用PSTricks宏包绘制函数图形,为了能够执行相应的PS代码,导言区至少要包含以下三个宏包\usepackage{pstricks}\usepackage{pst-plot}%ps¡\usepackage{pst-func}%Âf¥¡5.1Af¥ûÅ若我们要绘制函数y = x在区间[ ; ]上的图形,我们可书写如下代码\begin{center}\begin{pspicture*}(-4,-1)(4,10)\psaxes[ticks=none,labels=none]{->}(0,0)(-4,-1)(4,10)%Âx-yUSà\psplot[linecolor=red,linewidth=1pt]{-4}{4}{x2exp}\rput(3,4){$y=x^2$}\end{pspicture*}\end{center}下面我们具体解释上面代码的含义\begin{pspicture*}(-4,-1)(4,10)\end{pspicture*}上述语句声明一个绘图环境,这个图形的左下角的坐标是(-4,-1),右上角的坐标是(4,10).\psaxes[ticks=none,labels=none]{->}(0,0)(-4,-1)(4,10)%Âx-yUSà上述语句绘制一个直角坐标轴,坐标原点是(0,0),坐标轴左下角的坐标是(-4,-1),右上角的坐标是(4,10).\psplot[linecolor=red,linewidth=1pt]{-4}{4}{x2exp}上述语句绘制函数y = x在区间[ ; ]上的图形,最后面的x 2 exp是PS语言,\rput(3,4){$y=x^2$}上述语句将表达式y = x放置在点(3,4)处.ØÐý»5:LanZhou University of Technology §Ü Øý。