Latex之安装宏包

    宏包就是Latex发行版(TexLive、MikTex等)的插件功能,通过安装不同的宏包可以获得更多的功能。一般情况下,Latex的发行版都自带了一些宏包(多是CTAN中的),以便于使用者快速的编译。这些宏包默认安装在texmf/tex/latex/下,这里texmf是“Tex and MetaFont”的缩写,指代Latex发行版的目录树。以Windows 7 下MikTex2.9为例,texmf=“D:\Program Files\MiKTeX 2.9\”。宏包的功能可以通过CTAN的搜索功能查询到。

    一个宏包往往包含一个文件或多个文件,这些文件利用Tex命令定义了新的命令,用来改变Latex默认的功能。这些文件主要有两种类型:clas文件,以.cls为后缀;类型文件,以.sty为后缀。其它类型的文件多是辅助文件。当编译一篇tex文档时,如果引用某个缺失的宏包时,编译程序会报package missing的错误。当然,这些宏包是可以更新的。一个Latex发行版理论上可以安装任意多的宏包,但是,一篇文档可以使用的宏包数目是受限制的。

    虽然Latex发行版自带的宏包已经很多,并且自带的Package Manager也能自动从CTAN上下载和安装宏包。但是,宏包的数量远比CTAN拥有的为多。所以,下面介绍下安装宏包的三种方式:

1. 傻瓜式安装

    第一种方式比较简单,就是下载.cls或者.sty格式的文件,直接放在编译的目录下与主文件一起运行。这种方式简单易行,但是每次使用都要复制过去,更新也不易,如果使用几十个宏包,会使得编译目录里文件过多。只适合要使用期刊模板的情况。


2. 自动安装

    目前,多数的Latex发行版都带有宏包管理器,如TexLive的tlmgr,MikTex的Package Manager。对于TexLive,可以使用如下命令自动安装:

tlmgr install <package1> <package2> ...
tlmgr remove <package1> <package2> ...

对于MikTex,使用 Start -> All Programs -> MikTex -> Settings(admin),记得使用管理员模式来更改。


3. 手动安装

    手动安装相对前两种方式要稍微复杂些。如果你下载的宏包里包含sty等格式的必需文件,说明宏包已经经过编译了,可以直接跳到第三步;如果没有,对于较复杂的包,一般包含五个步骤:

(a)提取文件:在下载的宏包里找到后缀名为.ins格式的文件,然后运行“latex yourfilename.ins”命令或者用Latex发行版打开ins文件进行编译。此步骤可以从dtx格式的文件中提取制定的内容并生成需要的文件。

(b)创建文档:接着利用dtx文件创建说明文档,运行命令“latex yourfilename.dtx”。此步骤可以创建一个dvi格式的说明文档,以说明该宏包的功能。

(c)安装文件:此步是最关键的一步,也是容易出错的一步。此步骤的作用是将生成的必需文件,如cls文件和sty文件放到合适的本地位置,以便Latex发行版能够找到。关键是如何定义合适的本地位置呢?在Tex及其衍生物中,所谓合适的本地位置,就是以TDS(Tex Directory Structure)规则组织的文件夹及其子文件夹,也就是一个自定义的目录。一般情况,这个自定义的目录最上层的名字为texmf-local或者texmf。在不同的发行版本下,具体也不一样:

  • MacTex:Users/username/Library/texmf/.
  • Unix-type Systems:~/texmf.
  • MikTex:任意名字,但是子目录要满足一定的规则,具体规则在这里

TDS定义了不同类型的文件存放的位置不同。比如sty格式文件,一般放在texmf/tex/latex下不同的文件夹下,文件夹的名字即是宏包的名字。下面的表格中给出了文件存放的规则:

Where to put files from packages
Type Directory (under texmf/ or texmf-local/) Description
.afmfonts/afm/foundry/typefaceAdobe Font Metrics for Type 1 fonts
.bstbibtex/bst/packagenameBibTeX style
.clstex/latex/baseDocument class file
.dvidocpackage documentation
.encfonts/encFont encoding
.fdtex/latex/mfnfssFont Definition files for METAFONT fonts
.fdtex/latex/psnfssFont Definition files for PostScript Type 1 fonts
.mapfonts/map/Font mapping files
.mffonts/source/public/typefaceMETAFONT outline
.pdfdocpackage documentation
.pfbfonts/type1/foundry/typefacePostScript Type 1 outline
.stytex/latex/packagenameStyle file: the normal package content
.texdocTeX source for package documentation
.textex/plain/packagenamePlain TeX macro files
.tfmfonts/tfm/foundry/typefaceTeX Font Metrics for METAFONT and Type 1 fonts
.ttffonts/truetype/foundry/typefaceTrueType font
.vffonts/vf/foundry/typefaceTeX virtual fonts
otherstex/latex/packagenameother types of file unless instructed otherwise

(d)更新索引:最后更新Latex发行版的索引文件,以便Latex发行版能找到新安装的宏包。不同的发行版使用了不同的索引器:

  • teTeX, TeX Live, fpTeX:texhash.
  • web2c: mktexlsr
  • MacTeX: MacTeX appears to do this for you.
  • MikTeX: initexmf --update-fndb;或者使用GUI,即Start -> All Programs -> MikTex -> Settings(admin)下第一个tab,点击“Refresh FNDB”按钮即可。

(e)更新字体映射图:如果一个宏包还顺带安装了一些字体,还应该更新字体的映射。详细方法参详这里

此外,还有一些老版本的宏包并没有参照TDS格式,因此只能使用前两种方式。


此文参考了Wikibooks Latexstackexchange上的一些讨论。


  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值