存档

‘LaTeX’ 分类的存档

xelatex安装使用简单配置小记

六月 21st, {2010 5 条评论 11,333 人阅读过  

前几天用了一下LaTeX,中文支持是用CJK来解决的,前几天有网友留言告诉我xelatex用起来比方便多了,这两天又要写个文档,试了一下果然非常方便,我真是太out了,记录一下自己的使用过程吧。

在某个厦大的mirror里面下到了压缩的texlive包,http://mirrors.xmu.edu.cn/CTAN/systems/texlive/Images/texlive2009-20091107.iso.xz,1.4个G,验证md5之后解压,xz的压缩比真高,解压出一个3个G的iso,好不容易才放得下,然后随便找个地方挂上了,接着开始安装。

安装可以用图形界面的形式,不过需要安装perl-tk,安装的时候执行:

1
sudo ./install-tl --gui

我系统里面没有装perl-tk就直接在命令行下安装了,安装过程很简单,几乎都是默认配置,没怎么做改动,然后就安装完成了。

安装完成后需要添加几个环境变量,安装程序会给出提示,具体内容我也记不清了,反正就是按照它说的做的。

xelatex可以直接使用系统中的字体,不再需要像CJK那样自己去制作字体,而且也不会出现种乱码的情况,以前用CJK的时候总需要在vim里面反encoding设成gb2312然后再打开文件编辑,否则就会乱码,而且以前使用hyperref宏包的时候总会出现各种冲突,非常麻烦,左侧的树状目录中文也会乱码,现在这些问题全都解决了。

下载了一个网友制作的一个中文的宏包zhfontcfg.sty:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
% xetex/xelatex 字体设定宏包
 
\ProvidesPackage{zhfontcfg}
%[cm-default]选项主要用来解决使用数学环境时数学符号不能正常显示的问题
\usepackage[cm-default]{fontspec} 
 
\usepackage{xunicode,xltxtra}
 %如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。
\defaultfontfeatures{Mapping=tex-text}
% 中文断行
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
%将系统字体名映射为逻辑字体名称,主要是为了维护的方便
\newcommand\fontnamehei{文泉驿正黑}
%\newcommand\fontnamesong{SimSun}
\newcommand\fontnamekai{AR PL KaitiM GB}
%\newcommand\fontnamemono{FreeMono}
\newcommand\fontnameroman{Times New Roman}
%%设置常用中文字号,方便调用
\newcommand{\erhao}{\fontsize{22pt}{\baselineskip}\selectfont}
\newcommand{\xiaoerhao}{\fontsize{18pt}{\baselineskip}\selectfont}
\newcommand{\sanhao}{\fontsize{16pt}{\baselineskip}\selectfont}
\newcommand{\xiaosanhao}{\fontsize{15pt}{\baselineskip}\selectfont}
\newcommand{\sihao}{\fontsize{14pt}{\baselineskip}\selectfont}
\newcommand{\xiaosihao}{\fontsize{12pt}{\baselineskip}\selectfont}
\newcommand{\wuhao}{\fontsize{10.5pt}{\baselineskip}\selectfont}
\newcommand{\xiaowuhao}{\fontsize{9pt}{\baselineskip}\selectfont}
\newcommand{\liuhao}{\fontsize{7.5pt}{\baselineskip}\selectfont}
 
\setmainfont[BoldFont=\fontnamehei]{\fontnamehei}
\setsansfont[BoldFont=\fontnamehei]{\fontnamekai}
%\setmonofont{\fontnamemono}
%楷体
\newfontinstance\KAI {\fontnamekai}
\newcommand{\kai}[1]{{\KAI#1}}
%黑体
\newfontinstance\HEI{\fontnamehei}
\newcommand{\hei}[1]{{\HEI#1}}
%英文
\newfontinstance\ENF{\fontnameroman}
\newcommand{\en}[1]{\,{\ENF#1}\,}

把它放到/usr/local/texlive/2009/texmf-dist/tex/xelatex/fontspec这个目录下mktexlsr更新一下缓存就可以使用了,非常方便,我去掉了这个宏里面几个我没有的字体,最郁闷的是宋体居然没有搞定,我这里只有从windows下面搞过来的simsun.ttc,貌似这个文件里面有两个字体:宋体和新宋体,然后折腾了一顿也不行,最后实在也没有找到simsun.ttf,也就放弃了,本来也不怎么用宋体,其实这个包也没怎么用,只是为了以后方便才装上的,一直用的都是Vera Sans YuanTi Mono,

1
\setmainfont{Vera Sans YuanTi Mono}

另外下面的命令可以查看系统中安装的中文字体:

1
fc-list :lang=zh-cn

关于宋体的问题,有看到这篇文章的朋友知道怎么解决的劳烦帮下忙啊

分类: LaTeX 标签:

Slackware系统中为LaTeX安装CJK解决中文问题

五月 8th, {2010 7 条评论 11,230 人阅读过  

过几天要做presentation,想借这个机会把LaTeX好好学学,今天在解决中文问题的时候着实把我卡住了,广泛搜索了各方面的资料,一直搞了好几个小时才弄好,把过程总结一下。

首先下载CJK,我在CJK的官网上下载的cjk-4.8.2.tar.gz,解压之后把里面的texinput目录拷贝到/usr/share/texmf/tex/latex/CJK目录下,CJK这个目录默认是没有的,自己创建一个。

从/media/win/WINDOWS/Fonts目录下找到simsun.ttc,simfang.ttf, simhei.ttf,simkai.ttf这四个字体文件,把ttc改成ttf,然后把这四个文件拷贝到/usr/share/texmf/fonts/truetype/chinese目录下就可以了,chinese目录可能默认也没有,自己创建一个。

下载gdbfonts,记不清是在哪里下载的了,gbkfonts-linux-0.3.tar.bz2,里面有三个可执行文件appendconf,go,gbkfonts-glibc2.3,前两个是脚本文件。把gbkfonts-glibc2.3重命名为gbkfonts,并将这三个文件拷贝到/usr/local/bin里面(这样做纯粹是为了以用调用方便)。

进入/usr/share/texmf目录(也可以是一个自己创建的目录,生成的所有和CJK相关的文件都会保存在这个目录里面,不使用系统目录的目的是可以在将来重装系统的时候继续保留中文配置,我估计我也不太可能会重装系统了,也不想弄出各种目录,就直接用系统目录了),然后执行

1
go fonts/truetype/chinese

根据ttf字体来生成TeX字体,并生成各种各样的配置文件。

接着执行下面的命令来组织配置文件

1
appendconf /usr/share/texmf

生成字体之后会有几个map文件,这些map文件里面定义了字体名字和字体文件名之间的映射关系,为了让dvips这样的工具能知道使用哪个map文件,需要修改下面的配置文件

1
vi /usr/share/texmf/dvips/config/config.ps

找到o |lpr这一行注释掉并在后面加上 p +cjk.map这一行。

如果/usr/share/texmf/fonts/map/dvips目录下没有cjk.map这个文件,那么找到这个文件把它复制过来。

最后更新一下TeX字体数据库就可以了

1
mktexlsr

这个时候其实已经算成功了,结果输出的虽然是中文,可都是些乱七八糟的字,根本不是我想要的,我写个“中国”,它显示“涓球”,然后这个问题我郁闷了三个多小时,最后怀疑是vim的原因,以前在新建文件的时候都会先touch一个文件,然后再用vim打开编辑,突然想到touch出来的这个文件是用utf8编码的,而且vim的编码方式设置的也是utf8,而CJK的字符集是GBK,会不会和这个有关系,后来就改了一下vim的编码格式

1
:set encoding=gb2312

OK,再编译就成功地看到中文了,哎,就这么点事我就从中午一直搞到晚上,郁闷啊。

分类: LaTeX 标签: ,