我有两个文档 A 和 B。它们都是独立的文档。但文档 A 还必须包含文档 B。
现在如果我使用\include{B}
我会收到以下错误:
! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.1 \documentclass
[11pt]{article}
?
那么我怎样才能强制将文档 B 与文档 A 的“样式”和“模板”一起包含呢?
答案1
将内容( 之间的部分)剪切\begin{document}...\end{document}
到B.tex
一个新的文件中B-content.tex
。
更改B.tex
为:
\documentclass{...}
% your preamble here
\begin{document}
\include{B-content}
\end{document}
然后\include{B-content}
放入A.tex
。
答案2
您可以使用standalone
、docmute
或subfiles
包让 LaTeX 忽略第二个前导码。
只需将standalone
包加载到主文件或文档中\input
即可\include
。如果要包含的文档仅包含一张图片,并且该图片也应单独编译,那么这种方法就很好。在这种情况下,每个图片文件都有一个主文件会很烦人。
% A.tex
\documentclass{article}
\usepackage{standalone}
% your preamble here
\begin{document}
% ...
\input{B}% or \include
% ...
\end{document}
% B.tex (for normal text)
\documentclass{article}
% your preamble here
\begin{document}
% your B content here
\end{document}
或者如果 B 应该只保存一些图表(注意不同的类):
% B.tex
\documentclass{standalone}
% your preamble here
\begin{document}
% your diagram code here
\end{document}
答案3
您可以尝试使用该类combine
,但请注意,这不是 LaTeX 的设计目的!
我还没有尝试过的另一种方法是使用newclude
包并编写
\includedoc{fileB.tex}
后一种方法假定您需要的所有包等都由第一个文件加载。
答案4
据我所知,include 只是在使用文本的地方插入文本。因此,您不能在文档 B 中添加序言。快速浏览一下,我会创建一个包装文档 C,并在\include{B}
编辑 B 后在两者中使用,以便它只包含您想要的输出文本