MacTeX 2020: "no se puede cambiar la ruta de formato"

MacTeX 2020: "no se puede cambiar la ruta de formato"

Instalé MacTeX 2020 y no puedo hacer que ConTeXt funcione (funciona en otra máquina donde actualicé desde MacTeX 2019). El error es:

$ 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

Yo leoEjecutando Mark IVdesde la wiki e intenté ejecutar

context --make
context --make cont-en

pero renunciaron con el mismo unable to change to format pathmensaje. Supongo que ese es el problema central. Después de ejecutar esos comandos, sigo recibiendo el mismo error al intentar crear mi PDF.

¿Cómo puedo arreglar esto?

Respuesta1

Obtuve la solución a este problema de la lista de correo de ConTeXt (enlace al hilo), citaré de allí:

Estos mensajes provienen del medio del archivo luat-fmt.lua (líneas 180 y 183, respectivamente, en mi sistema) cuando ConTeXt intenta cambiar el directorio de trabajo (eso es lo que significa "cambiar" en este contexto, simplemente moverse a otro directorio , como en cd o chdir). El extracto relevante es

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

En tu casoruta de formato válidaes un subdirectorio de $TMPDIR, bajo /var/folders/. Sin embargo, si su Mac se parece en algo a la mía, /varen realidad es un enlace simbólico a /private/var, por lo que dir.current()informa una ruta que comienza con /privatey la prueba falla.

Puedes solucionar esto estableciendo TMPDIRalgún otro valor, que no comience con /var, y tampoco /tmpporque también es un enlace simbólico :-) Debería funcionar con un directorio temporal en tu carpeta de inicio.

Entonces lo que estoy haciendo es:

env TMPDIR=~/tmp context <file>

Podrías configurar esto como alias en tu shell, por ejemplo tengo esto para peces:

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

información relacionada