how to use external fonts in xetex

21 views
Skip to first unread message

netkiller

unread,
Oct 15, 2008, 5:58:24 AM10/15/08
to netkiller
[教学]how to use external fonts in xetex
帖子发表于 : 2007-06-20 18:19

注册: 2006-01-10 19:09
帖子: 1078
昨天正好看到一篇文章内提到XeTeX可以使用系统自带的字体而不必生成tfm、type1字体,就安装了XeTeX在机器上试试。以前在latex中
使用中文是一件比较麻烦的事情,不仅要生成各种编码的字体,还要注意tex文件的编码到底是gbk的还是utf8的等等诸如此类的问题。现在XeTeX
为我们解决了这一难题,Ubuntu gutsy 自带的texlive2007就包含了XeTeX。网上这方面的文章比较少,我把我的安装方法和如何
使用系统自带的字体来生成pdf文件简单的叙述一下。
安装texlive2007,gutsy上把tetex-bin作为虚拟包,要使用tex的话只能安装texlive了。因为我texlive部分是以
前完成的所以具体安装哪些包也不是很清楚,一般情况可以试试
sudo apt-get install texlive texlive-XeTeX lmodern

安装好以后就可以试试编译一下tex的文件了
随便建立一个a.tex文件,内容如下:
\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\setromanfont{AR PL ShanHeiSun Uni}
\begin{document}
\XeTeX 可以使用系统自带的字体,而不需要再另外生成。
\end{document}

编译这个文件用 xelatex a.tex 如果成功自动生成a.pdf文件,看一下能不能显示中文吧。
解释一下,fontspec这个包提供了XeteX能使用系统自带字体的功能,具体用法可以参考fontspec手册:/usr/share /
doc/texlive-XeTeX/xelatex/fontspec/fontspec.pdf,xunicode 这个包在这里可以去掉因为没有
用到一些复杂的字符,不过fontspec的手册强烈建议使用所以就放在里面了,xltxtra这个包提供了LaTeX没有的宏包,比如
\XeTeX。
\setromanfont{AR PL ShanHeiSun Uni}正文的字体使用系统自带的Uming字体。如果你安装了其他中文字体的话,可
以通过fc-list命令来查看所安装字体的名字,第一列就是。

如果你的系统里面没有安装其他字体但是还是想用的话,XeTeX提供了一种使用外部字体的方法,这是一件很令人兴奋的事情。看一下如何做到
的。fontspec包提供了一个ExternalLocation的选项允许你使用外部的字体:
\fontspec[ExternalLocation=/media/hda5/windows/Fonts/]{simli.ttf}
修改一下上面的例子

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\newcommand\lishu{\fontspec[ExternalLocation=/media/hda5/windows/
Fonts/]{simli.ttf}}
\newcommand\hei{\fontspec[ExternalLocation=/media/hda5/windows/Fonts/]
{simhei.ttf}}
\newcommand\fang{\fontspec[ExternalLocation=/media/hda5/windows/Fonts/]
{simfang.ttf}}
\newcommand\kai{\fontspec[ExternalLocation=/media/hda5/windows/Fonts/]
{simkai.ttf}}
\setromanfont{AR PL ShanHeiSun Uni}
\begin{document}
\XeTeX 可以使用系统自带的字体,而不需要再另外生成。

\lishu \XeTeX 可以使用系统自带的字体,而不需要再另外生成。

\hei \XeTeX 可以使用系统自带的字体,而不需要再另外生成。

\fang \XeTeX 可以使用系统自带的字体,而不需要再另外生成。

\kai \XeTeX 可以使用系统自带的字体,而不需要再另外生成。

\end{document}

你也可以使用这个命令来编译得到pdf
xelatex -no-pdf a.tex
xdvipdfmx a.xdv
估计两者的差别在于产生的pdf能不能复制粘贴,没有测试过因为身边只有xpdf。
当然还有一些中文特有的格式比如缩进断行不知道XeTeX支持的如何,希望大家继续深入研究一下。
Reply all
Reply to author
Forward
0 new messages