带有外部构建文件夹的 Nomencl 包和 latexmk

带有外部构建文件夹的 Nomencl 包和 latexmk

我正在使用带有 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\"" );
}

相关内容