*.tex
为了编译多个子目录中的多个文件,我使用
find -name *.tex -exec latexmk -lualatex {} \;
按照推荐这里。
运行良好,但只使用一个核心。必须进行哪些更改才能并行处理?
答案1
在@David Carlisle 的帮助下,我找到了两种在命令行上运行的解决方案:
for i in *.tex */*.tex */*/*.tex */*/*/*.tex; do latexmk "$i" & done
或者,使用find
第二个 bash 文件:
find . -name *.tex -exec sh mk.sh {} \;
其中 mk.sh
#!/bin/bash
latexmk "$1" &
在我的示例中,八核 CPU 上的并行性将处理时间缩短了 2 倍。当包含在程序中时,我无法使用这些解决方案。
latexmk
我认为,如果能提供一个选项来并行转换.tex
子树中的所有文件,那将会很有吸引力 。