编译 tikzcircuit 时我的 Tex 文件出现问题

编译 tikzcircuit 时我的 Tex 文件出现问题

我已经尝试编译包含 tikzcircuit 的文件几个小时了(>6 小时),在 overleaf 上。当对 circuitikz 进行注释时,文件可以毫无问题地进行编译。但是,一旦我取消注释,就会出现错误(超时)。我就是搞不懂。这是电路:

\documentclass{article}
    \usepackage{tikz}
    \usepackage{circuitikz}
    \begin{document}
            \begin{figure}
            \centering
            \begin{circuitikz}[scale=0.8]\draw
                \draw [short,*-](0,0)to(0,-0.1);
                (0,0)node[label={[font=\footnotesize]above:1}] {}] to
                \draw[short](8,2)to(8,0);
                            \draw[short](0,0)to(0,2);
                            \draw(0,-2)to[L,l=$L_1$,-*](0,0);
                            \draw[short](0,0)to(1,0)
                            to[C,l=$C_1$](1,-2);
                            \draw (1,0)to[L,l=$L_2$](4,0);
                            % \draw[short](4,0)to(4,0)
                            \draw(4,0)to [R,l=$R_1$,*-](4,-2);
                            \draw[short](4,0)to(4.1,0)
                            to[C,l=$C_2$](8,0);
                            \draw(8,0)to[R,l=$R_2$,*-](8,-2);
                            \draw(0,2)to[R,l=$R_3$](8,2);
                            \draw[short](0,-2)to(8,-2);
                            \draw(8,-2) node[ground]{};
                
                            {[anchor=south east] (0,0) node {1} (4,0) node {2} (8,0) node {3}}
                ; 
            \end{circuitikz}
        \end{figure}
    \end{document}

我想可能是因为 Overleaf 的服务器或者其他什么原因,所以我选择尝试在我的计算机上用 latex 编译它。

 \documentclass{standalone}

 \usepackage{tikz}
 \usetikzlibrary{circuits.ee.IEC}
 \usetikzlibrary{positioning}

 \usepackage[compatibility]{circuitikzgit}
 \ctikzset{bipoles/length=.9cm}

 \begin{document}
 \begin{tikzpicture}[circuit ee IEC]
 \draw (0,0) to [resistor={name=R}] (0,2)
 to[diode={name=D}] (3,2);
 \draw (0,0) to[*R=$R_1$] (1.5,0) to[*Tnpn] (3,0)
 to[*D](3,2);
 \end{tikzpicture}
 \end{document}

它也不能编译!调试的第二步是尝试tikz 文档(最后一个例子是第 222 页),字面意思是“复制粘贴”。令我惊讶的是,我得到了以下错误:

在此处输入图片描述

我是不是漏掉了什么?我真的不明白哪里出了问题。

答案1

在你的第一个例子中你得到

! Package tikz Error: Giving up on this path. Did you forget a semicolon?.

\draw从第 8 行开始,由于第一条路径上的重复

\draw
                \draw [short,*-](0,0)to(0,-0.1);

如果你删除其中一个,\draw它不会出错,但会发出警告

Missing character: There is no ( in font nullfont!
Missing character: There is no 0 in font nullfont!
Missing character: There is no , in font nullfont!
Missing character: There is no 0 in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no n in font nullfont!
...

因为路径语法错误

(0,0)node[label={[font=\footnotesize]above:1}] {}] to

它没有前导\draw,也没有;但我不知道你的意图是什么。

答案2

在您的第一个例子中,除了 David Carlisle 发现的无限循环之外,您的circuitikzwires 语法也是错误的。short是路径元素样式,并且必须用作to命令的样式。否则,作用域将出错,并且可能发生任何事情。通常会发生不好的事情。

你不能使用

\draw[short] (0,0) to (0,1);

正确的语法是

\draw(0,0) to[short] (0,1);

关于你的第二个例子,你正在circuitikz与 Ti 的内部电路库混合使用Z. 虽然有兼容模式标志,但不推荐使用,也没有经过大量测试。不要这么做。

相关内容