我在 Ubuntu 12.04 上(不确定是否有区别),我正在尝试更改$TEXMFHOME
为自定义目录。目前它是$HOME/texmf
,我相信这是默认的,但即使我将.sty
文件放入其中,文件的编译.tex
也找不到它。更重要的是,当我将目录更改为$TEXMFHOME
其他目录并将.sty
文件移动到那里时,它仍然找不到它。但是,如果我将文件放在.sty
与文件相同的目录中,.tex
它就可以完美运行(虽然不是我想要的)。我正在更改$TEXMFHOME
为/etc/texmf/texmf.d/05TeXMF.cnf
并使用sudo update-texmf
来生成texmf.cnf
文件。这是正确的方法吗?我做错了什么?
如果有帮助的话,我会使用 emacs 和 auctex 作为我的编辑器。
我在这里和其他网站上找到了非常相似的其他帖子,但这些解决方案都不适合我。
答案1
为什么要改变它?我认为你忽略的是你应该让你的个人texmf
树模仿已安装的版本。这很容易解决。
在终端中:
mkdir -p ~/texmf/{doc,tex}/{context,eplain,generic,latex,lualatex,plain,xelatex,xetex} # for example
mkdir -p ~/texmf/bibtex/bib # put your bib file in here
bibtex
(如果doc
您想将东西放入其中,您应该/需要创建适当的子目录。)
现在你可以测试是否找到了东西:
touch ~/texmf/tex/latex/myfakefile.sty
kpsewhere myfakefile.sty
最后一个命令应该返回:
/home/<user>/texmf/tex/latex/myfakefile.sty
另请注意,命令
kpsewhich --var-value TEXMF
应该返回将按搜索顺序(我相信)进行搜索的地点列表。您的个人树可能列在第一位,这意味着在“系统”myfakefile.sty
和“个人”之间的竞争中myfakefile.sty
,个人树将获胜。
最后,我应该指出,您尝试修改texmf.cnf
可能使此答案无效(我不确定您做了什么)。我会将您的更改恢复为默认设置,因为这样更容易维护。
答案2
假设您的 shell 尝试bash
使用 ? 设置环境变量,export
特别是调用export TEXMFHOME=/path/to/your/custom/location
,然后重新启动 shell。
如果可行,您可以将此export
命令添加到.bashrc
文件中,然后在启动终端时即可获得正确的结果。