我无法理解 LaTex 如何处理包,所以这是一个相当普遍的问题,源于我对 commath 包的特定问题。
我想使用 commath 包,所以我从加拿大运输安全局为了安装它,我尝试了两种不同的方法:
第一次尝试
我以前使用过 amsmath 包,因此我检查了它在系统上的位置并发现了这一点:
/usr/share/texmf-dist/tex/latex/amsmath
/usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty
所以我创建了一个文件夹/usr/share/texmf-dist/tex/latex/commath
并将文件放入commath.sty
其中。我重启了电脑。它不起作用(kile 和 texmaker 都不起作用)。
第二次尝试
根据一些论坛的建议,我检查了我的TEXMFLOCAL
路径:
$kpsewhich -var-value TEXMFLOCAL
/usr/local/share/texmf:/usr/share/texmf
我的电脑上没有这两个文件夹,所以我创建了一个文件夹,在其中/usr/share/texmf
创建了文件夹,将文件放在了 commath 文件夹中。我重启了电脑。还是没用。commath
commath.sty
那么有人能告诉我我做错了什么吗?如果它们位于同一个父目录中,为什么 kile/texmaker 使用一个包(amsmath)而不使用另一个包?我如何才能具体找出编辑器搜索的目录?
我在 Manjaro Linux 上使用 TexLive。
答案1
如果您通过包管理器安装了 TeX,则您希望通过同一个包管理器为其安装新包。您提到这是 Manjaro,因此您需要使用pacman -Ss
关键字或pacman -Qo
文件搜索包列表。或者您可能在线查找包。
或者,完整安装 TeX Live,您可能永远不需要阅读这句话或再担心它。
一般来说,您会寻找一个.sty
用来调用的包的文件\usepackage
。一个.cls
用于文档类的文件、一个.tfm
用于旧字体的文件,.otf
或者有时.ttf
是一个.ttc
用于现代字体的文件,或者.mf
一个用于非常古老的字体的文件。
如果你使用自己的 TeX Live 安装,则需要设置PATH
以使用其可执行文件。在 Manjaro 或 Arch 上,其命令行实用程序默认不起作用。然后,你需要在 CTAN 中搜索所需的包,并查看它是否有类似“Contained in TeX Live as commath”的行。然后使用 进行安装tlmgr
。你可能需要以管理员身份运行tlmgr
或sudo
。由于我通常只为安装 TeX 创建一个帐户,alias
因此我的 shell 中有一个sudo -u tex -E $(which tlmgr)
。
如果您正在运行 MikTeX,您可能希望通过 MikTeX 控制台进行更新。
极少数情况下,您可能需要手动安装任何包管理器都无法提供的包。在这种情况下,放置它的最佳位置通常是您找到的目录TEXMFLOCAL
,使用以下命令
kpsewhich --var-value=TEXMFLOCAL
在 Linux 上,您通常希望将自己的文件放在 下/usr/local/share/
,而不是 下/usr/share/
。否则,您就走在正确的轨道上:创建子目录并复制文件。如果您像这样安装自己的软件包,您几乎肯定会想要删除操作系统附带的过时 TeX,并安装最新的 TeX Live 或 MikTeX。否则,较新的软件包甚至可能无法工作。
如果您运行的是 MikTeX 而不是 TeX Live,则需要在其控制台中添加这个新目录作为本地 TeX 树。
复制文件后,运行
texhash
updmap-sys
就像任何拥有你的 TeX 安装的帐户一样。
如果您使用的是多用户系统,无法保存到TEXMFLOCAL
,请使用TEXMFHOME
。您可以用类似方法找到它的位置,
kpsewhich --var-value=TEXMFHOME
作为最后的手段,您可以创建一个目录~/texmf
并尝试TEXINPUTS=$HOME/texmf; export TEXINPUTS
使用它。