MacTeX 2020: “incapaz de alterar o caminho de formato”

MacTeX 2020: “incapaz de alterar o caminho de formato”

Instalei o MacTeX 2020 e não consigo fazer o ConTeXt funcionar (funciona em outra máquina onde atualizei do MacTeX 2019). O erro é:

$ 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

Eu leioCorrendo Mark IVdo wiki e tentei executar

context --make
context --make cont-en

mas eles desistiram com a mesma unable to change to format pathmensagem. Presumo que esse seja o problema central. Depois de executar esses comandos, ainda recebo o mesmo erro ao tentar criar meu PDF.

Como posso consertar isso?

Responder1

Consegui a solução para este problema na lista de discussão ConTeXt (link para tópico), vou citar a partir daí:

Essas mensagens vêm do meio do arquivo luat-fmt.lua (linhas 180 e 183, respectivamente, no meu sistema) quando o ConTeXt tenta mudar o diretório de trabalho (é isso que “mudar” significa neste contexto, apenas mudando para outro diretório , como em cd ou chdir). O extrato relevante é

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

No seu casocaminho de formato válidoé um subdiretório de $TMPDIR, em /var/folders/. No entanto, se o seu Mac for parecido com o meu, /varé na verdade um link simbólico para /private/var, de modo que dir.current()informa um caminho começando com /privatee o teste falha.

Você pode contornar isso definindo TMPDIRalgum outro valor, que não comece com /var- e /tmptambém não, porque também é um link simbólico :-) Ele deve funcionar com um diretório temporário em sua pasta pessoal.

Então o que estou fazendo é:

env TMPDIR=~/tmp context <file>

Você pode configurar isso como um alias no seu shell, por exemplo, eu tenho isso para peixes:

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

informação relacionada