.sty 的存储目录不在应有的位置

.sty 的存储目录不在应有的位置

我有同样的问题这个问题,但由于它太旧了,我想最好是提出一个新问题,而不是等待 7 年前的答案来澄清。

我有一个 .sty 文件,里面有我想用的东西,我正在尝试找到正确的目录来放置 .sty 文件,按照 Stefan 在链接问题中的回答。当我调用

kpsewhich -var-value=TEXMFHOME

我得到了/home/terek/texmf,正如预期的那样。没有这样的目录这里(即使我显示隐藏文件)。其他几个类似的问题和答案(例如这里)提到目录,例如~/texmf/tex/latex/something/。我应该创造那个目录?

搜索后,我找到了一堆其他的“texmf”目录,但我不知道哪个是正确的,所以请自己看看:

enter image description here

请记住,我是 Linux 新手,我可能会要求一些愚蠢的说明。我也知道问题标题没有太多信息,但我很迷茫,想不出更好的答案,所以如果您愿意,请随意编辑它。

答案1

对于 TeX Live,手动安装的文件应该位于两棵树之一中(标准情况下)。

基本思路是(呃……大概)有三棵树。这MAIN棵树由 TeX Live 的包管理器(用于上游安装)或 Linux 发行版的包管理器(用于重新打包的安装)处理。您不应该手动添加、修改或删除此树中的文件。

第二个是LOCAL树。这是为所有用户本地安装的软件包。其位置如下

kpsewhich -var TEXMFLOCAL

第三个是HOME树。这是针对个人单用户包的。其位置如下

kpsewhich -var TEXMFHOME

然而,字体支持包永远应该安装TEXMFHOMETEXMFLOCAL即使在单用户系统上也是如此。撤销此操作比从不执行此操作更复杂,因为仅仅卸载并安装到正确的位置并不能消除损害。

一旦知道了要使用哪棵树,就需要确定将文件放在树中的什么位置。对于 LaTeX 包,.sty文件必须放在 下的某个位置<root of tree>/tex/latex/,但最好放在 下,<root of tree>/tex/latex/<name of package>/因为这有助于使你的树更容易被人理解。同样,文档也放在 下<root of tree>/doc/latex/<name of package>/。通常,你可以通过查看 下的结构并镜像根目录下的层次结构来了解事物的归属TEXMFMAIN

大多数文件(包括.sty文件)也可以包含在您的工作目录中 - 无论您.tex身在何处 - 并且无需处理树结构问题即可找到。


1 与大多数此类规则一样,如果您真的知道自己在做什么以及为什么要这样做,那么这条规则是可以打破的。但是,唯一可能合理考虑这样做的情况(尽管心情很沉重)是,您没有修改树的权限LOCAL,并且经过长时间的努力,仍无法说服本地 TeX 安装的管理员安装您梦寐以求的字体包。即便如此,明智的做法通常是放弃相关字体。“我更喜欢它”是不够的。“我的报告需要一个我完全无法获得的符号,我的报告代表了一个重大的人生项目,或者具有重大的社会、道德或文化价值”可能就足够了,但改变您的人生目标和/或社会价值观可能更容易。

相关内容