我正在使用带有 latexmk 的设置和不同的文件夹来存放源文件、构建文件和输出。
我想使用 nomencl 包,因此使用自定义 rc 文件,如下所示latexmk 和 nomencl。但是,makeindex 无法从其他目录调用,因此会产生错误。相反,我需要先进入我的构建目录,然后再切换回源文件夹。
我如何使用 latexmk 来做到这一点?
答案1
您可以尝试以下操作:
# for nomenclature
add_cus_dep("nlo", "nls", 0, "nlo2nls");
sub nlo2nls {
system("cd buildfolder; makeindex $_[0].nlo -s nomencl.ist -o $_[0].nls -t $_[0].nlg");
}
返回源文件夹是自动的,因为 cd 是该系统命令的本地命令。我还没有测试过,但据我所知,它应该可以工作。
答案2
根据@Piet van Oostrum,我发现以下内容:
add_cus_dep( 'nlo', 'nls', 0, 'makenlo2nls' );
sub makenlo2nls {
my $filename = basename $_[0];
system( "cd \"$out_dir\"; makeindex -s nomencl.ist -o \"$filename.nls\" \"$filename.nlo\"" );
}