答案1
TeX Live 依赖于该kpse
库,而 MacTeX 基于 TeX Live。
基本上,所有与 TeX 相关的程序都链接到该库,其主要作用是从程序所在的位置开始设置几个环境变量。
因此,例如,如果你运行pdflatex
并且二进制文件驻留在/usr/local/texlive/2018/bin/x86_64-darwin/
(通常位置是通过软链接确定的),则设置的主要变量是(来自texmf.cnf
% SELFAUTOLOC (directory of the binary=/usr/local/texlive/YYYY/bin/i386-linux),
% SELFAUTODIR (its parent = /usr/local/texlive/YYYY/bin),
% SELFAUTOPARENT (its grandparent = /usr/local/texlive/YYYY), and
% SELFAUTOGRANDPARENT (its great-grandparent = /usr/local/texlive).
这四个变量是根据二进制文件的位置设置的,用于定位相关texmf.cnf
文件(参见库的文档texdoc kpathsea
),这将设置所有其他必要的变量。
查询设置的程序是kpsewhich
;除其他选项外,它可以报告环境变量的值,包括在程序启动时设置的值kpse
;所以
kpsewhich -var-value=SELFAUTOPARENT
将在我的计算机上返回,
/usr/local/texlive/2018
如果需要的话,您可以从中轻松提取年份。
仅供参考,当我想用不同版本的 TeX Live 测试文档时,我不是通过面板更改分布,而是直接调用二进制文件:
/usr/local/texlive/2017/bin/x86_64-darwin pdflatex
因为该SELFAUTOLOC
功能会将环境设置为读取texmf.cnf
2017 年发行版的文件的结果。