主文本
\documentclass{scrartcl}
\usepackage{standalone}
\begin{document}
\section{A}
\includestandalone{Subfile}
\end{document}
子文件.tex
\documentclass[crop=false,float=true,class=scrartcl]{standalone}
\usepackage{standalone}
\begin{document}
\textbf{b}
\subsection{B}
\end{document}
结果
- Subfile.tex 运行良好。
- Main.tex 可以找到 Subfile.tex
- 首次使用
\section
或 时出现 Main.tex 错误\subsection
。 - 如果
\input
改用,Main.tex 可以正常工作。 - 用 shell 逃逸进行测试,无济于事。
Shell 逃逸
使用 arara 进行 shell 逃逸尝试:
% arara: lmkclean
% arara: pdflatex: { draft: yes, shell: yes }
% arara: pdflatex: { synctex: yes, shell: yes }
% arara: lmkclean
\documentclass[crop=false,float=true,class=scrartcl]{standalone}
持续收到错误
(./子文件.tex
!LaTeX 错误:出现错误 — — 可能缺少 \item。
l.11 \subsection{B}
答案1
发生此错误的原因是子文件内容被装箱,这会导致分段命令出现问题。如果您更改,\includestandalone{Subfile}
则会\mbox{\input{Subfile}}
出现相同的错误。
按照\includestandalone
独立图表的用途,它将内容装箱。实际上,它添加了一个 .tex-Driver,\includegraphics
以便它也可以添加 TeX 代码作为“图形”。这会添加一个框。
其实没有办法解决这个问题。我建议改用\input
或\include
。使用后者,您可以\includeonly{..}
在序言中使用部分编译。