Latexmk 与 makeglossaries 以及 auxdir 和 outdir?

Latexmk 与 makeglossaries 以及 auxdir 和 outdir?

glosseries如果我使用outdirauxdir参数,如何与 latexmk 一起使用?我一直.gls找不到...

这是我的 latexmk 构建脚本:

latexmk -outdir=out -auxdir=out -g -f -bibtex -dvi- -pvc -pdflatex="xelatex -synctex=0 %O %S" -pdf $1

如果我删除 auxdir 和 outdir 参数,一切都会正常工作。任何帮助都值得感激。

编辑:除非您亲自检查过并且答案有效,否则请停止投票!因为它对我不起作用。

答案1

问题是,makeglossaries当使用带有路径部分的文件名调用脚本时,脚本会失败,例如makeglossaries out/try。可以通过定义必要的自定义依赖项来解决此问题,如下所示

add_cus_dep('glo', 'gls', 0, 'makeglossaries');
sub makeglossaries {
   my ($base_name, $path) = fileparse( $_[0] );
   pushd $path;
   my $return = system "makeglossaries $base_name";
   popd;
   return $return;
}

(请注意pushdpopd是由其定义的子例程latexmk,其功能与 UNIX shell 中的相应命令相同。)

相关内容