
Para poder resolvereste problema, necesitaría obtenerlo mediante programación -output-directory
al ejecutar comandos como:
$ pdflatex -shell-escape -output-directory=build test.tex
La razón es que necesitaría cambiar los comandos que se ejecutan \write18
según la ubicación de la carpeta de compilación.
(También intenté leer directamente ${TEXMF_OUTPUT_DIRECTORY}
desde la línea de comando, pero esta variable de entorno también está vacía:EDITARdespués de verificar la fuente, parece estar disponible a partir de TexLive 2024)
Respuesta1
--output-directory
Ciertamente es más problemático que útil, pero como está ahí, supongo que debes apoyarlo.
Suponiendo que el directorio de salida está debajo del directorio actual y find
hay un Unix disponible, entonces puede hacerlo, por ejemplo
\input{|find . -name \jobname.log}
\bye
que imprimirá la ruta al archivo de registro, incluida una definición output-directory
similar \input
para obtener la ruta para su posterior procesamiento.
Respuesta2
Terminé pidiéndole al usuario que compilara con algo como:
$ pdflatex -shell-escape -output-directory=build "\def\outputDirectory{build}\input{test.tex}"
(ver también pre_latex
en látexmk)
Pero a partir de TeXLive 2024, se debe definir una nueva variable de entorno:
${TEXMF_OUTPUT_DIRECTORY}
lo que debería ayudar a ejecutar comandos -shell-escape
correctamente.