我正在尝试获取一个文档来打印 URL 列表,并且我有此处的示例makeindex
这需要我在 pdflatex 的调用之间运行。latexmk -pdf
似乎并没有自动执行,虽然我认为它会将.idx
文件转换为.ind
文件并自动重新运行pdflatex
。
手动操作如下:我有一个main.tex
文件。
$ pdflatex main # produces main-url.idx and main-url.mst
$ makeindex main-url # produces main-url.ind
$ pdflatex main # produces a pdf with the index .ind file just created
据我了解,它latexmk
会makeindex
自动运行,但当我在干净的目录(仅有main.tex
)上运行它时,.ind
文件就不会被创建,并且索引也不会出现在pdf中。
我尝试过的方法:首先,我尝试向本地文件添加以下依赖项latexmkrc
,但没有成功(我认为是因为已经有一条将.idx
文件转换为.ind
文件的规则:
# support for the printing urls:
add_cus_dep('idx', 'ind', 0, 'makeurlindex');
sub makeurlindex {
return system("makeindex \"$_[0].idx\"");
}
然后我尝试将输出扩展更改为.ndx
并具有自定义依赖项,如下所示,但同样没有成功:
# support for the printing urls:
add_cus_dep('ndx', 'ind', 0, 'makeurlindex');
sub makeurlindex {
return system("makeindex \"$_[0].ndx\"");
}
此外,我尝试将输出文件更改为main.idx
并相应地更新自定义依赖项,但它也不起作用。
最后,我尝试使依赖关系从 变为.mst
,.ind
但没有效果。
我怎样才能latexmk
对这种依赖采取行动?
答案1
idx
我确定了一种使用常规->依赖关系处理的方法ind
,即在 latex 文件中提供日志消息:
\wlog{}
\wlog{Writing index file \jobname-url.idx}
额外的日志消息是在实际消息之前强制换行。
这使得latexmk
脚本能够找到索引消息并处理它。