我正在尝试在子文件中做 cirkuittikz 图表,但如果我编译主要文件,它不起作用。
主要的:
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{standalone}
\usepackage{circuitikz}
\usepackage{subfiles}
\begin{document}
\subfile{include/chapter1}
\end{document}
第一章.tex:
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Test}
\begin{figure}
\centering
\includestandalone{figure/fig}
\caption{A figure.}
\label{fig:fig}
\end{figure}
\end{document}
图.tex:
\documentclass[12pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw[] (0,0)
to[R]++(0,3)
;
\end{circuitikz}
\end{document}
LaTeX 错误:只能在序言中使用。
您在文档正文中使用了本应在序言中使用的命令。请确保 \documentclass[…]{…} 和所有 \usepackage{…} 命令均写在 \begin{document} 之前。了解更多
请参阅 LaTeX 手册或 LaTeX Companion 了解解释。输入 H 可立即获得帮助。...
l.2 \usepackage {circuitikz} 您的命令已被忽略。键入 I 以将其替换为其他命令,或继续执行而不执行该命令。
) 文件:figure/fig.tex 图形文件 (tex 类型) ) (/compile/include/chapter2.tex [1
答案1
从 的 v1.6 版本开始,与软件包subfiles
的不兼容性已得到修复,您的示例现在可以正常编译。该版本目前仅在subfiles
standalone
Github,但迟早也会去 CTAN(我必须让那里的人休息一下,因为上周发布了太多更新 ;-)。
答案2
在过去 45 分钟查看此包后,我建议不要混合使用子文件和独立文件。我无法让它们工作。
由于某种原因,在加载某个程序包时\input{standalone}
,\subfile{mysubfile}
它会打印所有使用的程序包的名称。这似乎是一种不兼容性,因为根据其设计,独立程序包应该排除这些程序包。以下是错误的示例。
主文本
\documentclass[12pt]{report}
\usepackage[mode=tex]{standalone}
\usepackage{circuitikz}
\usepackage[utf8]{inputenc}
\usepackage{subfiles}
\begin{document}
\subfile{chapter1}
And now the figure by itself \input{fig}
\end{document}
第一章.tex
\documentclass[main.tex]{subfiles}
\begin{document}
\chapter{Test}
\input{fig}
\end{document}
图.tex
\documentclass[12pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw[] (0,0) to [R] ++(0,3);
\end{circuitikz}
\end{document}
请注意第一个数字之前的错误 circuitikz 词。
解决方案是,不要使用独立包;将fig.tex
文件设置为此,然后使用上述main.tex
代码chapter1.tex
新图.tex
\begin{circuitikz}
\draw[] (0,0) to [R] ++(0,3);
\end{circuitikz}