Tengo un archivo TeX con un archivo incrustado del comando \embedfile{\jobname.org}
. Me gustaría dejar latexmk
de ejecutarlo cuando cambie el archivo incrustado. No existe una opción oficial para latexmk
ignorar ciertos archivos, pero parece que en mi caso de uso específico podría ser posible con la $hash_calc_ignore_pattern
opción.
Agregué cada uno de los siguientes (uno a la vez) a mi ~/.latexmkrc
:
$hash_calc_ignore_pattern{'pdf'} = '^\\embedfile{\\jobname.org}';
$hash_calc_ignore_pattern{'pdf'} = 'jobname.org';
$hash_calc_ignore_pattern{'pdf'} = '.*jobname.org.*';
Sin embargo, cada vez que cambio el .org
archivo, latexmk
todavía se ejecuta. ¿Alguien tiene algún consejo sobre cómo hacer funcionar esta funcionalidad?
Respuesta1
Aquí hay dos soluciones, dependiendo de sus necesidades.
Establecer el valor de $hash_calc_ignore_pattern{'pdf'}
no es lo que desea, porque eso indica latexmk
que se ignoren ciertas líneas en .pdf
los archivos. En su lugar, puede indicar latexmk
que se ignoren todas las líneas de .org
los archivos mediante
$hash_calc_ignore_pattern{'org'} = '^';
Esto se aplicará a todos los archivos con extensión .org
, no sólo a \jobname.org
.
Una alternativa es disponer que en cada ejecución pdflatex
los síntomas del uso del archivo incrustado se eliminen del .fls
archivo generado por pdflatex
. Lo siguiente en un archivo latexmkrc funcionó para mí:
$pdflatex = "pdflatex %O %S && ".
"perl -i -p -e \"s[^INPUT (\./|)\"%R\"\\.org\\s*\$][];\" %Y%R.fls";
(He dividido la definición en dos líneas para que copiar y pegar sea seguro. Hay algo de magia específica de UNIX para garantizar que las comillas funcionen correctamente en la línea de comando que se pasa al sistema).