LaTeX手动安装宏包(package)以及生成帮助文档的整套流程
注意:版权所有,转载请注明出处。
我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了。下载package可以从CTAN(Comprehensive TeX Archive Network)下载,网址是https://www.ctan.org/。下载下来的宏包,有的直接包含.sty 文件(.sty文件就是package的最终形式);有的下载下来只包含了.ins, .dtx,以及一个readme文件,这时需要自己编译生成.sty文件,以及生成相应的manual。下面详细介绍生成.sty文件以及帮助文档的步骤。
以下步骤的前提是你已经安装好了ctex,并且MikTex的可执行程序已经加入了系统的环境变量中(PATH),另外我的系统的win 8.1,win 7应该也是一样的。
第一步:下载宏包,解压,不赘述,下载地址https://www.ctan.org/pkg,我下在的一个宏包名称是qrcode,是用来生成二维码的,以这个宏包的编译为例来讲解。
第二步:找到你的解压后安装包地址,在我的电脑上是“E:\LaTeX_package\qrcode”, 然后打开电脑的命令提示符界面,把当前的路径改到这个package所在的文件夹,也就是“E:\LaTeX_package\qrcode”
第三步:生成qrcode.sty,在命令提示符界面输入”latex qrcode.ins”, 经过一段时间编译,qrcode.sty就生成了;然后接着生成帮助文档manual, 在命令提示符界面输入” latex qrcode.dtx”,编译完成以后,会生成一个叫做qrcode.dvi的文件,这个文件也可以用ctex自带的yap程序打开,不过不是很方便,所以最好还是把它转为pdf格式,分为两部,先输入 “dvips qrcode.dvi”,生成qrcode.ps文件,再输入”ps2pdf qrcode.ps”,最终就生成了qrcode.pdf的帮助文档,可以打开查看这个package的基本用法,命令的格式等。最终完成的样子如下

第四步:生成qrcode.sty文件以后还需要把这个文件放到LaTeX能够识别的路径下,在ctex下,这个路径样子以我的电脑为例,是”D:\Program Files\CTEX\MiKTeX\tex\latex”,你可以在这个路径下建立一个文件夹,譬如qrcode,然后把qrcode.sty放到这里,接着在你的电脑里找到MikTex的settings这个程序,settings有两个,选择后面括号里有admin的那个,打开以后,在general选项卡下有Refresh FNDB按钮,点击,过一会,这个package就会加入MikTex的路径中,然后在你的tex文件中就可以使用这个package了


利用这个宏包,最后可以生成文本对应的二维码,
代码如下
\documentclass{article}
\usepackage{qrcode}
\begin{document}
This is a qrcode for Google HK.
\qrcode{https://www.google.com.hk/}
\end{document}
最后生成的二维码如下,其他宏包的安装应该都是类似操作的。Happy TeXing!

参考资料
1,关于如何安装宏包的文章,http://www.xuebuyuan.com/1673310.html
2,上一篇文章提到的wiki,https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages
3,如何把dvi文件转为pdf的帖子,http://tex.stackexchange.com/questions/150182/dvi-to-pdf-convertor
LaTeX手动安装宏包(package)以及生成帮助文档的整套流程的更多相关文章
- Windows 下 LaTeX 手动安装宏包(package)以及生成帮助文档的整套流程
本文简单介绍如何手动安装一个 LaTeX 宏包. 一般来说,下载的 TeX 发行版已经自带了很多宏包,可以满足绝大部分需求,但是偶尔我 们也可能碰到需要使用的宏包碰巧没有安装的情况,这时我们就需要自己 ...
- LaTeX-手动安装宏包(package)以及生成帮助文档的整套流程
我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTAN(Comprehensive T ...
- [Django REST framework - 自动生成接口文档、分页]
[Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...
- Codeigniter项目使用phpDocumentor生成api文档
前言 运行环境: vagrant 2.2.4 virtualbox 6.0 box bento/ubuntu-16.04 (Apache 2.4.18 + Mysql 5.7.26 + PHP 5.6 ...
- LaTeX的一些宏包及细节知识
文章来源:LaTeX的一些宏包及细节知识http://blog.chinaunix.net/uid-20289887-id-1710422.html ps:我的机器上软件并不能直接运行通,下面“代码” ...
- LaTeX使用titlesec宏包改变章节编号形式的方法
1.titleformat宏包命令详解 LaTeX中可以用titlesec宏包中的titleformat命令来改变标题形式: 导入宏包: \usepackage{titlesec} 改变标题的代码如下 ...
- Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)
有在Linux系统中安装软件的经历的人都知道,在Linux系统中手动安装软件不想在Windows下安装软件那么方便,直接双击,然后下一步下一步就可以把软件成功的装入到系统中,而在Linux系统中,安装 ...
- Confluence 6 手动安装语言包和找到更多语言包
手动安装语言包 希望以手动的方式按照语言包,你需要按照下面描述的方式上传语言包.一旦你安装成功后,语言包插件将会默认启用. 插件通常以 JAR 或者 OBR(OSGi Bundle Repositor ...
- PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程
PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程 an鑫_wolfxin2010 关注 2018.03.13 21:58* 字数 313 阅读 3782评论 1喜 ...
随机推荐
- delphi 截取指定符号之间的字符串-随机读取
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...
- hdu 1573 A/B (扩展欧几里得)
Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973)= 1). Input 数据的第一行 ...
- phpmailer 发送邮件
<?php /* 可用新浪和网易邮箱测试成功,但QQ不成功! 下载 phpmailer 解压 http://phpmailer.worxware.com/ 要注意邮件服务器的端口号,默认是 25 ...
- 初试jQuery EasyUI
jQuery EasyUI jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要 ...
- node初步一:HTTP请求
一. 创建pathtest.js文件 var http= require('http' ); var url= require('url' ); function start (){ function ...
- 研究在SAE上搭建最新wordpress
安装SAE上的wordpress,创建应用选择wordpress模板,安装后是3.4版本 新建一个版本2,下载最新wordpress安装包并解压到版本2中 初步猜想修改地方: 数据库配置:wp-con ...
- 关于script,first,second,third=argv运行出错的问题
from sys import argv input(argv) #python自带的IDLE直接执行不能提供命令行参数 script,first,second,third=argv print(&q ...
- 通过Servlet的response绘制页面验证码
java部分 package com.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; ...
- Bridage
对于有两个以上的维度的对象,如下图:这张图的业务逻辑是这样的,Hayes,USR以及Emie都是上网的猫,现在有两条线路,一条是传统Dial,还有一条线路是专线,不需要拨号,这样每创建一种线路就意味着 ...
- jQuery中的data方法:
向元素附加数据,然后取回该数据: $("#btn1").click(function(){ $("div").data("greeting" ...