我使用 texlive 作为 suse tumbleweed 的软件包。由于我遇到了一些缓存问题,我尝试了
kpsewhich --expand-var '$TEXMFVAR'
导致/var/lib/texmf
无法写入。这很可能就是我的缓存问题的根源。
我在各个网站上都读到了 TEXMFVAR 是什么:
- texconfig、updmap-user 和 fmtutil-user 用于存储(缓存的)运行时数据(例如格式文件和生成的映射文件)的(个人)树。
- 默认:
~/.texlive/texmf-var
说明:updmap 和 fmtutil(系统模式)用于存储(缓存)运行时数据
嗯,我觉得这不合适。我没有文件~/.texlive
夹。我有一个~/.cache/texmf
带有唯一子文件夹的文件夹fonts
。
我的第一个问题是,我的分布是否良好或者合理。
答案1
由于 OP 现在已经可以正常工作,我将把我的评论提升为答案。
首先:无论何时安装 TeXlive,或升级到更高版本,请确保二进制文件位于您的 PATH 中。如果您从操作系统而不是直接从 TUG 安装,一些系统可能会自动执行此操作。但是,自动 PATH 可能要等到重新启动后才会启用。因此,请重新启动。
其次,TeXlive 允许您直接声明其内部环境变量,作为环境的一部分。然后,如果它在您的变量中找不到所需的变量,它将仅使用自己的变量。这是对 OP 有效的方法。
例如,假设 TeX 正在 中查找文件/path/to/somehwere
,但它们在 中/this/other/place
。您可以执行以下操作:
export TEXWHATEVER=/this/other/place
在您的用户$HOME/.bashrc
文件中,然后重新启动。现在 TeX 需要其TEXWHATEVER
环境/this/other/place
。在我自己的设置中,发行版 TeX 与 TUG 有很大不同,因此我以这种方式手动定义 TEXMFROOT。
如果(如 OP 所述)TeX 需要在那里写入,但您没有写入权限,则此方法尤其有效。您可以重定向到主目录中您有写入权限的某个位置。
这不是唯一的解决方案。还有一种usermode
方法可以将许多东西定向到用户主目录中您选择的目录中。tlmgr
程序帮助将向您展示该怎么做。总的来说,usermode
这是一种更好的方法。