原理图适用于电容器,但不适用于电感器和电阻器

原理图适用于电容器,但不适用于电感器和电阻器

此代码

\documentclass{article}

\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{figure}[h!]
  \begin{center}
  \begin{circuitikz}
  \draw (0,0) to[C=$ASCII_TEXT$] (2,0); % The capacitor
  \end{circuitikz}
    \caption{My first circuit.}
  \end{center}
\end{figure}

\end{document}

生产正确的结果(没有错误,没有警告,dvi输出OK)

此代码

\documentclass{article}

\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{figure}[h!]
  \begin{center}
    \begin{circuitikz}
      \draw (0,0) to[R=$ASCII TEXT$] (2,0); % The resistor
    \end{circuitikz}
    \caption{My first circuit.}
  \end{center}
\end{figure}

\end{document}

生产结果正确,但我认为有很多警告。dvi 输出正常。

/usr/share/texlive/texmf-local/texmf-compat/tex/generic/circuitikz/pgfcirccurr ent.tex)
(/usr/share/texlive/texmf-local/texmf-compat/tex/generic/circuitikz/pgfcircpath .tex)) (./circuit1.aux) ABD: EveryShipout initializing macros ! Undefined control sequence.
\pgf@sh@bg@resistorshape ...sformationadjustments \pgfmathsetlength {\pgf@ci...

l.12       to[R=$ASCII TEXT$] (2,0) ; % The resistor
?  ! Undefined control sequence.
<argument> ...fhorizontaltransformationadjustment *0.5*\pgflinewidth 

l.12       to[R=$ASCII TEXT$] (2,0) ; % The resistor
?  ! Missing number, treated as zero.
<to be read again> 
l.12       to[R=$ASCII TEXT$] (2,0) ; % The resistor
?  ! Undefined control sequence.
<argument> ...fhorizontaltransformationadjustment *0.5*\pgflinewidth 
l.12       to[R=$ASCII TEXT$] (2,0) ; % The resistor
?  ! Missing number, treated as zero.
<to be read again> 
           p
l.12       to[R=$ASCII TEXT$] (2,0) ; % The resistor
?  [1] (./circuit1.aux) )

我做错了什么?

这是来自 circuitikz 文档的示例代码 http://ftp.math.purdue.edu/mirrors/ctan.org/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf

\begin{circuitikz}
\draw (0,0) to[R=$R_1$] (2,0);
\end{circuitikz}

类似的代码在这里可以正常工作 https://www.overleaf.com/read/qnwsxtprwvvc

答案1

问题似乎是水平变换调整命令,它只用于电阻器(而不是电容器或电感器)来纠正线路的开始/结束。

也许您的 tikz/pgf 版本太旧,它应该与 texlive2015 和最新更新兼容。如果您使用的是 Texlive2015,请使用 tlmgr 进行更新,或安装最新的 Texlive2016。

我认为 centos-packages 太旧了,就像 ubuntu 的一样。所以直接用 webinstaller 安装即可https://www.tug.org/texlive/acquire-netinstall.html

答案2

在安装了最新 Miktex 更新的 TexWork 中,它运行良好,没有任何错误。我没有收到任何警告。也许你需要更新你的软件包 :-)

\documentclass{article}

\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{figure}[htp!]
\begin{center}
\begin{circuitikz}
\draw (0,4) to[C=$ASCII_TEXT$] (2,4); % The capacitor
\draw (0,2) to[R=$ASCII_TEXT$] (2,2); % The resistor
\draw (0,0) to[L=$ASCII_TEXT$] (2,0); % The inductor
\end{circuitikz}
\caption{My first circuit.}
\end{center}
\end{figure}

\end{document}

上面的代码给出以下输出: 在此处输入图片描述

相关内容