我正在寻找一个 Python 风格的 virtualenv 或 venv 来创建一个虚拟环境,在其中我可以安装 LaTeX 包,以便这些包仅适用于我当前的 LaTeX 项目(但不适用于全系统)。
我期待类似下面的内容:
- 创建一个虚拟环境路径,例如
./venv
。 - 设置一些环境变量或修改
tlmgr install
命令,以便新包安装到./venv
正确的目录结构中。 - 设置一些环境变量或修改
pdflatex
命令,以便我编译的新文档使用./venv
目录中的包以及 Tex Live 发行版附带的系统范围路径中的包。 - 但是我不想
./venv
在 LaTeX 文档(文件.tex
)中硬编码任何路径。文件中的源代码.tex
应该与是否使用虚拟环境进行编译无关。
答案1
您可以使用 TeX Live 的用户模式为此目的。正如您在评论中提到的,您可以使用以下方式创建新的用户树(允许多个树)
$ tlmgr init-usertree --usertree ~/test-tree
要在此树中安装包,您必须传递用户树和选项--usermode
$ tlmgr install --usertree ~/test-tree --usermode <package>
要运行 LaTeX,您必须通过设置变量来提示它在哪里查找用户包TEXMFHOME
。您可以为每次运行单独执行此操作
$ TEXMFHOME=~/test-tree pdflatex test.tex
或者通过导出名称来全局指定当前 shell(用于unset
退出“虚拟环境”)
$ export TEXMFHOME=~/test-tree
$ pdflatex test.tex
$ unset TEXMFHOME