子文件中的独立文件

子文件中的独立文件

我正在尝试在子文件中做 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的不兼容性已得到修复,您的示例现在可以正常编译。该版本目前仅在subfilesstandaloneGithub,但迟早也会去 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}

相关内容