我正在使用 latexmk 并尝试让它成功编译词汇表。我使用了 CTAN 中的脚本(http://ftp.acc.umu.se/mirror/CTAN/support/latexmk/example_rcfiles/glossary_latexmkrc),但在 Windows 上似乎不起作用。以下是错误消息:
它似乎尝试用作./
目录,但在 Windows 中是这样,所以.\
我相信这就是它不起作用的原因。
如何修复此问题?
答案1
事实证明,这是 参数中文件名引用的问题makeglossaries
。最简单的解决方法是将 中的代码从文档latexmkrc
中给出的内容修改为latexmk
add_cus_dep( 'acn', 'acr', 0, 'makeglossaries' );
add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' );
$clean_ext .= " acr acn alg glo gls glg";
sub makeglossaries {
my ($name, $path) = fileparse( $$Psource );
return system "makeglossaries", "-d", $path, $name;
}
更好的方法是使用
add_cus_dep( 'acn', 'acr', 0, 'makeglossaries' );
add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' );
$clean_ext .= " acr acn alg glo gls glg";
sub makeglossaries {
my ($base_name, $path) = fileparse( $_[0] );
pushd $path;
my $return = system "makeglossaries", $base_name;
popd;
return $return;
}