通过 shell 脚本确定活动分布

通过 shell 脚本确定活动分布

背景:

目前,我已经安装

/usr/local/texlive/2016
/usr/local/texlive/2017
/usr/local/texlive/2018

使用 TeXLive,我可以使用来TeX Live Utility.app选择要使用的 TeX 发行版

在此处输入图片描述

问题:

  1. 如何在 Bash 变量中获取此设置的值?
  2. 是否可以通过命令行设置该值?

平台

  • MacOS High Sierra(版本 10.13.4)

答案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.cnf2017 年发行版的文件的结果。

相关内容