作者DavidGuo (大卫郭)
看板LaTeX
标题[心得] 使用XeLaTeX处理中文
时间Fri Dec 18 17:56:27 2009
最新版的MiTeX 2.8有两样好东西,来跟大家分享一下心得…
一个是 XeLaTeX (其实2.7就有了)
另一个就是 TexWorks (可以处理UTF8) 编辑器,之前没有这个的时候要用WinEdit里面来改,
但是很麻烦,每次开档存档都要另外处理!
有了这两种,就可以编译中文,甚至是各国文字的文件了。
它读的中文字型是直接Windows中所安装的字型,不用再经过转换变成TeX中的字型。
由XeLaTeX编译出来的pdf档的中文,并不是图案,可以直接做搜寻的动作。
而且可以用XeLaTeX取代旧的LaTeX,编辑一般的 *.tex 档
让我们一起来测试一下吧!
打开TeXWorks
直接点选「File」->「New File using Template」->「XeLaTeX documents」->「article-fontspec.tex」
就有XeLaTeX的范例,不过此范例没有加入了中文换行的方式,所以无法换行。
下面是我自己打的一个简单的范例,有兴趣的人可以试一试。
===范例开始 xelat_exexample.tex ===
\documentclass{article}
\usepackage{fontspec} %加这个就可以设定字体
\setmainfont{微软正黑体} %直接设定Windows中的字型,名字要打的一模一样才行。
\XeTeXlinebreaklocale "zh" %这两行一定要加,中文才能自动换行
\XeTeXlinebreakskip = 0pt plus 1pt %这两行是texWorks范例中所缺少的。
%加了这四行後,就可以随意的打中文,接下来的跟一般的LeTeX都一样
\title{我是标题标题标题}
\author{我是作者}
\date{} %不要日期
\begin{document}
\maketitle
中文测试中文测试中文测试中文测试中文测试中文测试,中文测试中文测试,中文
测试中文测试中文测试中文测试中文测试中文测试,中文测试中文测试。
English Test. This is a simple template for a XeLaTeX document using the
article class, with the fontspec package to easily select fonts.
\end{document}
===范例结束===
之後左上角选「xeLaTeX」,然後按下左边的三角形钮,pdf当就产生了…
当然,还有很多Unicode文字的处理指令,有兴趣的再慢慢研究,基本上只要上面多的那四行即可。
我已经喜欢上xeLaTeX了,希望大家也会喜欢上它。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.140.134
※ 编辑: DavidGuo 来自: 140.122.140.134 (12/18 17:58)
1F:推 houjun:标楷体中文会变得很破碎耶...新细明体正常 12/18 19:16
2F:→ houjun:发现是 TexWorks 显示的问题,用一般pdf软体看没有问题 12/18 19:19
3F:推 atb:编辑不会过 我用W7 它对微软正黑体这个指令开始会有错误讯息 12/19 02:04
4F:推 atb:原来是有少打指令 XeLaTeX真的很方便喔 12/19 02:08
5F:推 llewxam:推~~~ 12/19 11:55
6F:推 llewxam:如果用texmaker要怎麽设定呢? 12/19 13:50
7F:推 mywomanj:大推,郭助教真的很用心! 12/19 17:39
8F:推 hiro920463:改 quick build 的指令呼叫 xelatex 来编译 12/19 18:11
9F:→ DavidGuo:其他编辑器可以把Latex.exe改成xelatex.exe即可 12/19 22:50
10F:→ DavidGuo:但…必须要有支持Unicode的编辑器才行,WinEdt就不太行… 12/19 22:54
11F:推 atb:notepad++ 有支援unicode 12/20 01:04
12F:推 guteres:推xelatex 我也想写教学了XD 12/20 10:59
13F:→ andrew43:千万不要忘了 xeCJK 和 xCJK 12/20 23:05
14F:→ andrew43:这是让 xelatex 在中文应用很强大的关键! 12/20 23:08
15F:推 zero00072:xeCJK 已不太建议用 xCJK 加以前的 CJK,可能会有冲突。 01/02 12:20