我编写了一个包并将其放在与 eg 相同的目录中latex.ltx
。但是,TeXShop 不会加载它,或者更确切地说,通过 TeXShop 调用的 XeLaTeX 和 pdfTeX 不会加载它。但是,如果我在出现file not found
错误时输入:
/usr/local/texlive/2013/texmf-dist/tex/latex/base/mworx.sty
在控制台上,找到并加载了该文件。并且该路径与 size10.clo 相同,size10.clo 是我看到的第一个加载文件。为什么 XeLaTeX 似乎只在 .tex 文件的目录中寻找该文件?
答案1
您不应该将新软件包放入texmf-dist
树中;它们可能会被发行版更新覆盖。(或者更有可能在您升级到 MacTeX2015 或其他版本时被遗忘。)
由于您使用的是 Mac,因此添加(LaTeX)包文件的适当位置是
~/Library/texmf/tex/latex/
将文件放入texmf-dist
看似正确的位置却没有导致 TeX 能够找到该文件的原因是kpathsea
,出于性能原因,TeX 用于查找文件的工具不会动态搜索文件夹。
但是,配置文件texmf.cnf
对上面链接的“主” texmf 树进行了特殊考虑——因为该树(通常)非常小,因此当尝试在那里查找文件时搜索磁盘的性能损失很小。
还有另一个“分配”位置可用于将文件放入 TeX 发行版:
/usr/local/texlive/texmf-local
如果您将文件放在这里,计算机的所有用户都会找到它(而不是树~/Library/texmf
),则需要kpathsea
使用终端命令通知更新其文件数据库:
sudo texhash