有没有一种方便的方法可以同时编译两个文档?

有没有一种方便的方法可以同时编译两个文档?

我有一个文件foo.tex

\documentclass{article}

\usepackage{pdfpages}
\newcommand{\hello}{Hello world!}

\begin{document}
\includepdf[pages=-]{bar}

This is foo.pdf.
\end{document}

使用该包导入了该文档的第一页pdfpages,并由另一个文件生成了pdfbar.tex

\documentclass{amsart}

\title{Bar.pdf}

\begin{document}
\maketitle

This is bar.pdf.

% I want the macro \hello to be passed to this document.
\end{document}

此工作流程的烦人之处在于,更改bar.pdf需要我重新编译bar.tex。我希望bar.tex每次编译时都能自动编译。这可能吗?如果可以,是否可以通过将定义foo.tex的宏传递给 来实现?foo.texbar.tex

我知道一个名为的包combine,但是阅读文档并没有让我相信它combine能够解决我的问题。

更新。该命令在编译时\write18出现,完成编译任务。bar.texfoo.tex

\documentclass{article}

\immediate\write18{latex bar.tex}

\usepackage{pdfpages}
\newcommand{\hello}{Hello world!}


\begin{document}
\includepdf[pages=-]{bar}

This is foo.pdf.
\end{document}

不过,我仍然不确定如何将\hello宏传递给bar.tex

答案1

您可以使用 shell-escape 来运行第二个文档,这假定 shell 中的 bash 语法可能需要对其他命令行进行微小更改

bar.tex 使用\hello

\documentclass{amsart}

\title{Bar.pdf}

\begin{document}
\maketitle

This is bar.pdf.

% I want the macro \hello to be passed to this document.
\hello

\end{document}

主文本

\documentclass{article}

\usepackage{pdfpages}
\newcommand{\hello}{Hello world!}

\immediate\write18{pdflatex \string\\def\string\\hello{\hello}\string\\input{bar}}

\begin{document}
\includepdf[pages=-]{bar}

This is foo.pdf.
\end{document}

在此处输入图片描述

相关内容