我正在尝试构建一个复杂的 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
文件夹下创建文件夹结构就不会出现初始错误。