将一个文档包含到另一个文档中而无需重新定义设置

将一个文档包含到另一个文档中而无需重新定义设置

对于一份出版物,我必须包含另一份出版物。第二份出版物是英文的,采用 IEEEtr 格式。

我当然可以将第二个文件编译成 pdf 文件,并将 pdf 包含到第二个文件中,但页码不会匹配。

删除第二个文件的标题数据实际上不是一个选择,因为设置完全不同(其他语言、样式、定义、内容)......

答案1

您可以使用combine包,但可能需要一些工作。combine包的默认设置是所有单个文档都属于同一类,并且支持该类(文章、回忆录、书籍、报告和信件)。文档说,通过一些限制和工作,您可以让它适用于其他情况。

尽管你评论

我当然可以将第二个文件编译成 pdf 文件,并将 pdf 包含到第二个文件中,但页码不会匹配。

这是我采取的方法,因为让页码工作起来相对容易,并且解决方案在这个问题中给出 `xr` - 临时重新定义 `\label` 以将节计数器导出至姊妹文档?。然后您只需要pdfpages打包并将arara它们全部放在一起(虽然arara从技术上讲是可选的,但它使事情变得更容易)。

我创建了3个文件:

主文本

\documentclass{article}
\usepackage{pdfpages}

\begin{document}
    \includepdf[pages={-}]{docA.pdf}\clearpage
    \includepdf[pages={-}]{docB.pdf}
\end{document}

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

文档A.tex

\documentclass{article}
\usepackage{zref-lastpage}
\usepackage{lipsum}

\makeatletter
\zref@ifpropundefined{pagevalue}{\zref@newprop*{pagevalue}[0]{\number\value{page}}}{}
\zref@addprops{LastPage}{pagevalue}
\makeatother

\begin{document}
    \lipsum[1-10]
\end{document}

文档B.tex

\documentclass{article}
\usepackage{zref-xr}
\usepackage{zref-lastpage}
\usepackage{lipsum}

\makeatletter
\zref@ifpropundefined{pagevalue}{\zref@newprop*{pagevalue}[0]{\number\value{page}}}{}
\zref@addprops{LastPage}{pagevalue}
\zexternaldocument[pre-]{docA}\relax
\zref@ifrefundefined{pre-LastPage}{\@latex@error{Zref label `LastPage' of `DocumentA' is undefined}\@ehc}{%
\setcounter{page}{\numexpr\zref@extractdefault{pre-LastPage}{pagevalue}{0}+1\relax}}
\makeatother

\begin{document}
    \lipsum[1-10]
\end{document}

然后运行araramain.tex您可以arara根据需要使指令变得尽可能复杂。

相关内容