Я установил 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