Digamos que tengo tres directorios src
, aux-dir
y out-dir
, todos en el mismo directorio del espacio de trabajo work
, y algunos archivos independientes pero con formato similar bleb1.tex
,, bleb2.tex
... ubicados en src
. Me gustaría configurarlo latexmk
para compilar algunos bleb<i>.tex
de bleb<i>.pdf
modo que los archivos auxiliares se escriban en un subdirectorio bleb<i>
de aux-dir
y los archivos de salida (por ejemplo, bleb<i>.pdf
) se escriban en un subdirectorio bleb<i>
de out-dir
. Dado que habrá muchos bleb<i>.tex
archivos, me gustaría evitar la necesidad de crear estos subdirectorios manualmente antes de compilar cada uno por primera vez bleb<i>.tex
.
He definido un latexmk
archivo de configuración personalizado work
con este fin. Sé que dentro de un archivo de configuración, el destino de los archivos auxiliares y el destino de los archivos de salida se pueden especificar mediante las variables $aux_dir
y $out_dir
, respectivamente, y eso latexmk
es incluso tan conveniente como para crear las rutas especificadas en las variables si aún no existen. Sin embargo,Lo que no sé es cómo hacer que los nombres de los subdirectorios dependan del nombre base bleb<i>
del archivo .tex de origen.
No parece que ninguna de las variables de marcador de posición %A
, %R
etc. sea accesible en el archivo de configuración fuera de sobrescribir una variable de comando (por ejemplo $latex = "latex %O %S"
). Mi primer intento fue cambiar $latex
a internal mylatex %A
para acceder al nombre del archivo fuente e insertarlo $aux_dir
dentro $out_dir
de mi propia mylatex
subrutina. Mi segundo intento fue intentar configurar $aux_dir
y $out_dir
variables en una ruta que contenga el nombre de archivo proporcionado $$Pbase
en una subrutina personalizada para ser llamado en el before_xlatex
gancho. Para ambos intentos, latexmk
no detecta los cambios $aux_dir
y $out_dir
antes de vomitar todos los archivos auxiliares y de salida work
de forma predeterminada. La documentación latexmk
no parece especificar cómo acceder, en el archivo de configuración, a los argumentos de la línea de comando (en particular, el nombre del archivo fuente) pasados por latexmk de cualquier otra manera. En mi tercer intento, en lugar de cambiar $aux_dir
y $out_dir
, simplemente intenté cambiar los indicadores -aux-directory
y correspondientes -output-directory
en una system
llamada de Perl que realicé latex
dentro de la mylatex
subrutina desde el primer intento, pero, nuevamente, latexmk
ignoro estos indicadores y simplemente vuelco los archivos en work
.
En este punto, me he dado cuenta de que, para empezar, mi estructura de directorios planificada original work
no es ideal debido a los posibles problemas que podrían surgir con, por ejemplo, bibtex
, pero he pasado suficiente tiempo trasteando tratando de lograr que el plan original funcione. trabajo que tengo curiosidad por ver si es posible, o si he entendido mal algún principio de diseño fundamental latexmk
.
Respuesta1
En este punto, lo que está solicitando no es compatible con latexmk. Sería posible implementarlo; esto implicaría un cambio en el código que utiliza latexmk antes de comenzar a procesar un archivo tex. Actualmente
Los intentos que hiciste llegaron demasiado tarde para hacer lo que se necesitaba. Una vez realizada la inicialización para un archivo .tex determinado, los directorios $aux_out
y $out_dir
deben permanecer fijos y conocidos por latexmk.