我创建了一个包含两个tikzpicture
环境的独立文件。如果我单独编译该文件,就会看到生成了两个页面。到目前为止一切顺利。
\documentclass[tikz]{standalone}
\usetikzlibrary{...}
\begin{document}
\tikzset{...}
\begin{tikzpicture}
...
\end{tikzpicture}
\begin{tikzpicture}
...
\end{tikzpicture}
\end{document}
现在我想在主文档中仅包含其中第一个或第二个:
\begin{figure}
\centering
\includestandalone[page=2]{figures/diagrams}
\caption{The enhanced diagram}
\end{figure}
与预期和记录的情况不同,结果是两个图表并排打印,而第二个图表超出了页面的右边距。知道可能是什么问题吗?
编辑,解决方案:事实证明,问题是由多个错误引起的。也许这对其他人有帮助:
@torbjørn-t 提醒我,默认
mode=tex
设置不支持页面选项。请确保在主文档中激活其他包含模式之一。我决定采用:\usepackage[mode=build]{standalone}
下一个问题是,级联构建现在产生以下错误:
Package standalone Warning: Graphic '...' could not be build. Shell escape activated?
请确保启用 shell 转义。在我的例子中,上述问题实际上与 shell 转义无关,而是与独立
diagrams
文档内部的构建错误以及它位于子目录中的事实有关figures
。结果发现构建是在不同的路径中执行的,无法\include{general_properties}
正确解析。要解决此问题和类似问题,请务必检查独立文件旁边的各个日志文件。
答案1
我自己没有用过这个,但行为取决于设置,请参阅手册中mode
的描述(第 5.3 节)。例如,使用\includestandalone
standalone
\includestandalone[mode=image,page=2]{filename}
它将包括(第 2 页)filename.pdf
。
\includestandalone[mode=build,page=2]{filename}
它将编译filename.tex
并包含filename.pdf
。还有 ,mode=buildnew
只有当其他文件比 PDF 更新时才会编译它,或者mode=buildmissing
只有当 PDF 不存在时才会编译它。默认值是mode=tex
,类似于\input
,因此它直接添加代码(无序言和document
环境)。
您还可以将模式设置为包的一个选项,例如
\usepackage[mode=buildnew]{standalone}
或使用\standaloneconfig
,例如
\standaloneconfig{mode=buildmissing}
如果您希望所有设置都相同\includestandalone
。