debian手动添加宏包xxx.sty的方法

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
头像
careone
帖子: 839
注册时间: 2007-12-17 21:41

debian手动添加宏包xxx.sty的方法

#1

帖子 careone » 2019-08-11 12:32

debian手动添加宏包xxx.sty的方法

2019-8-10, by Careone

最近debian 9 升级到 debian 10. 因为之前运行过
apt-get autoremove , 可能无意中删除了不少孤立的 DEB 包,导致 LYX 编译 PDF (使用 xelex)
时,总是提示某些宏包文件找不到(如: ctexbook.sty ,ctexart.sty , ctexrep.sty 这几个宏包找不到)。

网上查了一些资料,提到一种解决方法:就是在当前用户目录下,
新建一个指定文件名的目录 /home/xxx/texmf/tex/latex/commonstuff/
然后把缺少的 xxx.sty 都放到这个目录下。
经验证,这种方法确实可行,有效。

后来,有空仔细研究了一下 tex/latex 相关的软件包和目录结构,发现还有两种其它解决方案:

1. 就是上面方案的优化版本。其实,只要保证宏包文件 xxx.sty 放在
/home/xxx/texmf/tex/ 目录下就行了。
当然,如果是这个目录的子目录下,或者是多级子目录下,都是可行的。

2. 把宏包文件 xxx.sty 放在系统目录 /usr/share/texmf/
或者 /usr/share/texlive/texmf-dist/ 下,
(或者这两个目录的下级子目录下),再打开对应目录下的 ls-R 清单文件
(实际上就是一个文本文件,用 ls-1R 命令可以得到) ,把添加的宏包文件 xxx.sty 按相同的格式写入
ls-R 文件。再运行 xelatex xxx.tex, 即可成功编译。

=============================
说明1:上面的目录和 ls-R 文件,需要以 root 用户,或者 sudo , su 命令来操作。

说明2:上面提到的两个 ls-R 文件,实际上都是符号链接,对应的真实文件分别是:

代码: 全选

/usr/share/texlive/texmf-dist/ls-R		-> 	/var/lib/texmf/ls-R-TEXLIVEDIST
/usr/share/texmf/ls-R 	-> 	/var/lib/texmf/ls-R-TEXMFMAIN
=============================

示例:/usr/share/texlive/texmf-dist/ls-R 文件的原始内容示例
--------------

代码: 全选

./tex/latex/ctex:
config
ctexart.cls
ctex-article.def
ctexbeamer.cls
ctex-beamer.def
ctexbook.cls
ctex-book.def
ctex-c5size.clo
ctexcap.sty
ctex-cs4size.clo
ctexheading.sty
ctexhook.sty
ctexpatch.sty
ctexrep.cls
ctex-report.def
ctexsize.sty
ctexspa.def
ctex.sty
ctxdoc.cls
--------------

如果我们把自己的宏包文件 xxx.sty xxx.cls, xxx.cfg, xxx.def 放在新目录
/usr/share/texlive/texmf-dist/custom/ 下,即:

代码: 全选

/usr/share/texlive/texmf-dist/custom/xxx.sty
/usr/share/texlive/texmf-dist/custom/xxx.cls
/usr/share/texlive/texmf-dist/custom/xxx.cfg
/usr/share/texlive/texmf-dist/custom/xxx.def
那么,只需要在上面的 ls-R 文件
/usr/share/texlive/texmf-dist/ls-R
中,添加下面的内容:
---------------

代码: 全选

./custom/:
xxx.sty 
xxx.cls
xxx.cfg 
xxx.def
---------------
保存。然后运行 xelatex xxx.tex ,即可编译 PDF。
魁拔不死,天下不宁。
魁拔既死,天下不平。
--------------
Careone <emacslocale^126.com>
https://sourceforge.net/projects/emacslocale/files/
回复