我正在尝试编写自己的软件包,但 LaTeX 找不到它们。
我在 iMac OS X 上工作,但我不想使用TEXMFHOME=~/Library/texmf
。我想把我的包放在不同的目录中:为了方便起见,我们称之为~/private/texmf
。
我的TEXINPUTS
设置TEXINPUTS=.:~/private/texmf//:
为标准文件,并且运行良好.tex
。但是当我.sty
在这些目录中放置新文件时,LaTeX 会抱怨找不到它们。
我尝试了很多方法。最值得注意的两种方法是:
- 环境
TEXMFHOME=~/private/texmf:~Library/texmf
- 环境
TEXMFHOME=~/private/texmf
两次我都输入~/private/texmf
并运行sudo texhash
以更新所有内容(我以前从未这样做过)。我已移动到我的软件包所在的目录~/private/texmf/tex/latex/packages/
并texhash
再次调用。但都无济于事。
我已经在网络和此网站上搜索了有关该做什么的线索:
如何从 Kile 访问 texlive-publishers 中的样式文件
上面提到的似乎是不同网站建议的。但都不起作用。
帮助。
答案1
对于 MacTeX 来说,“私有树” 的位置通常为
~/Library/texmf
(伪)变量指向TEXMFHOME
:
> kpsewhich --var-value TEXMFHOME
/Users/<user>/Library/texmf
(我只在这台机器上隐藏了我的真实用户名)。如果你尝试
> less $(kpsewhich texmf.cnf)
你会看到类似这样的画面
% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, not a copy of the whole thing!
%
TEXMFHOME = ~/Library/texmf
TEXMFVAR = ~/Library/texlive/2013/texmf-var
TEXMFCONFIG = ~/Library/texlive/2013/texmf-config
/usr/local/texlive/2013/texmf.cnf (END)
最后一行不属于文件,它只是显示了文件的位置。此文件位于顶层,texmf.cnf
因此在启动 TeX 程序时首先读取;系统设置为在texmf.cnf
输入其他文件时不会破坏任何变量。
因此你需要做的只是编辑该文件
sudo nano $(kpsewhich texmf.cnf)
(使用你喜欢的任何编辑器代替nano
);例如,你可能想要设置
TEXMFHOME=~/private/texmf:~Library/texmf
我测试了它,文件在两个位置都找到了(优先于~/private/texmf
)。你不需要在将文件添加到私有树或树后运行texhash
或mktexlsr
。但是,您必须在树中正确创建结构;wonderfulpackage.sty
只有当文件存储为
~/private/texmf/tex/latex/wonderfulpackage/wonderfulpackage.sty
(最后一个子部分,即目录wonderfulpackage
)是可选的,但建议使用它以便以后维护。如果你把文件放在~/private/texmf
它上面将不会可以被 LaTeX 找到。