在编译主文件之前编译 tex 依赖项

在编译主文件之前编译 tex 依赖项

我需要在我的报告中包含一封信,我正在使用pdfpages包来完成这项工作。我希望当我的报告report.tex编译并包含时letter.pdf,它首先进行编译letter.tex,然后在编译完成后将letter.tex其包含letter.pdf在报告中。我曾想过编写一个脚本来执行此操作,但解决方案需要跨平台(该报告由五个人使用 Linux 和 Windows 进行处理)。

谢谢。

答案1

可能是这样的使用或--shell-escape(假设你的文件可以安全运行)和--enable-write18pdflatexletter-test.tex\immediate\write18{...}

letter-test.tex

\documentclass{article}
\begin{document}
This is the letter.
\end{document}

report-test.tex

\documentclass{article}
\usepackage{pdfpages}
\usepackage{mwe} % http://www.ctan.org/pkg/mwe
\immediate\write18{pdflatex letter-test}
\begin{document}
This is the report with figure.
\begin{figure}
\centering
\includegraphics{example-image-a}
\end{figure}
\includepdf{letter-test}
\end{document}

答案2

我用arara执行此操作而不是脚本

\documentclass{article}
\usepackage{pdfpages}
\begin{document}
    \clearpage
    \includepdf[pages={-}]{docA.pdf}

    \clearpage
    \includepdf[pages={-}]{docB.pdf}

    \clearpage
    \includepdf[pages={-}]{docC.pdf}
\end{document}

% arara: pdflatex: { files: [ docA.tex ] }
% arara: pdflatex: { files: [ docB.tex ] }
% arara: pdflatex: { files: [ docC.tex ] }
% arara: pdflatex

我更进一步,编写了一条arara规则,调用araraarara我主文档中的指令如下

% arara: arara: { files: [ docA.tex ] }
% arara: arara: { files: [ docB.tex ] }
% arara: arara: { files: [ docC.tex ] }
% arara: pdflatex

中的指令docA.tex可能看起来像

% arara: pdflatex: { files: [ docA.tex ] }
% arara: biber: { files: [ docA.bcf ] }
% arara: pdflatex: { files: [ docA.tex ] }
% arara: pdflatex: { files: [ docA.tex ] }

相关内容