netkiller
unread,Oct 15, 2008, 5:58:24 AM10/15/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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支持的如何,希望大家继续深入研究一下。