尝试使用 latexmk 和子目录中的其他 tex 文件构建乳胶文档

尝试使用 latexmk 和子目录中的其他 tex 文件构建乳胶文档

我正在尝试构建一个复杂的 latex 文档(至少对我来说很复杂)。目录结构如下所示:

- bat.tex
- packages.tex
- {other tex files}.tex
- content
-- {chapter folders}
--- chapter.tex
-- abstract.tex

到目前为止,我使用以下 bash 脚本构建了文档:

#!/bin/sh
start=`date +%s`

echo ----------------------------
echo Generating Documentation
echo ----------------------------

echo Generating PDF \(pass 1\)
lualatex --shell-escape --interaction=nonstopmode bat.tex > /dev/null

echo Generating Bibliography
biber bat > /dev/null

echo Generating Glossaries
makeglossaries bat > /dev/null

echo Finishing PDF
lualatex --shell-escape --interaction=nonstopmode bat.tex > /dev/null

end=`date +%s`

runtime=$((end-start))

echo $runtime s

效果很好。但我想用 latexmk 来构建它。

所以我写了这个.latexmkrc

$latex = 'latex  %O --shell-escape %S'; 
$pdflatex = 'lualatex  %O --shell-escape %S; 
$pdf_mode = 4; $bib_program = 'biber';

$out_dir = 'build';

现在的问题是,它找不到子目录.aux中的文件content。我发现了这个线没有任何好的解决方案。由于它相当老旧,我想问一下是否有办法解决我的问题或其他好的解决方案。

我的文件也.latexmkrc能用吗biber

感谢您的帮助。

答案1

因此,在@JohnCollins 的帮助下,我能够让它工作:

.latexmk

sub createFolderStructure{
   system("bash ./createFolderStructure.sh");
}

createFolderStructure();

$latex = 'latex  %O --shell-escape %S';
$pdflatex = 'lualatex  %O --shell-escape %S --output-directory=build --aux-directory=build';
$pdf_mode = 4;

$out_dir = 'build';

创建文件夹结构

#!/bin/sh

find ./content -type d > folder_list.txt

mkdir -p build
cd build
cat ../folder_list.txt | xargs mkdir -p
rm ../folder_list.txt

这样,在build文件夹下创建文件夹结构就不会出现初始错误。

相关内容