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

Я читаюРаботает Марк IVиз вики и попробовал запустить

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>

Вы можете установить это как псевдоним в своей оболочке, например, у меня это для рыбы:

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

Связанный контент