MacTeX 2020:“无法更改格式路径”

MacTeX 2020:“无法更改格式路径”

我安装了 MacTeX 2020,但无法让 ConTeXt 工作(在另一台从 MacTeX 2019 升级的机器上可以工作)。错误是:

$ context file.tex
mtx-context     | warning: no format found, forcing remake (commandline driven)
[…] snip lots of lines
resolvers       | formats | changing to format path '/var/folders/rj/hfjmjx796q102y4v23vh038c0000gp/T/luatex-cache/context/a86c089b384a3076dc514ba966a1fac9/formats/luatex'
resolvers       | formats | unable to change to format path '/var/folders/rj/hfjmjx796q102y4v23vh038c0000gp/T/luatex-cache/context/a86c089b384a3076dc514ba966a1fac9/formats/luatex'
mtx-context     | error, no format found with name: cont-en, aborting
system          | total runtime: 5.315 seconds

我读运行 Mark IV来自 wiki 并尝试运行

context --make
context --make cont-en

但它们会以相同的unable to change to format path消息退出。我认为这是核心问题。运行这些命令后,我在尝试构建 PDF 时仍然收到相同的错误。

我怎样才能解决这个问题?

答案1

我从 ConTeXt 邮件列表中找到了这个问题的解决方案(链接到主题),我将从中引用:

这些消息来自文件 luat-fmt.lua 的中间部分(在我的系统中分别是第 180 行和第 183 行),当时 ConTeXt 试图更改工作目录(这就是“更改”在此上下文中的意思,只是移动到其他目录,如 cd 或 chdir)。相关摘录如下

report_format("changing to format path %a",validformatpath)
lfs.chdir(validformatpath)
if dir.current() ~= validformatpath then
  return fatalerror(startupdir,"unable to change to format path %a",validformatpath)
end

在你的情况下有效格式路径$TMPDIR是下 的 子目录/var/folders/。但是,如果你的 Mac 和我的一样,/var实际上是 的符号链接/private/var,因此dir.current()会报告以 开头的路径/private,并且测试失败。

您可以通过设置TMPDIR其他值来解决这个问题,这个值不以/var-- 开头,也不是/tmp因为这也是一个符号链接:-) 它应该与您的主文件夹中的临时目录一起工作。

所以我要做的是:

env TMPDIR=~/tmp context <file>

您可以在 shell 中将其设置为别名,例如,我有这个用于 fish 的别名:

function context
  env TMPDIR=~/tmp /Library/TeX/texbin/context $argv
end

相关内容