包装图形内的 circuitikz 环境存在问题,无法显示图像

包装图形内的 circuitikz 环境存在问题,无法显示图像

我正在尝试在 wrapfigure 环境中插入使用 circuitikz 绘制的电路,但是它给出了一些错误并且没有显示该电路。

以下是 MWE:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{wrapfig}

\usepackage{siunitx}
\usepackage[siunitx]{circuitikz}
\usetikzlibrary{calc,patterns,angles,quotes,intersections,babel,positioning,arrows}

%Galvanometer and rotation ob circuit objects code
\ctikzset{bipoles/galvanometer/height/.initial=.60}
\ctikzset{bipoles/galvanometer/width/.initial=.60}

\ctikzset{bipoles/galvanometer/arrow rotate/.initial=0,
rotation/.style={bipoles/galvanometer/arrow rotate=#1},
}

\makeatletter
\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/galvanometer/height}}{galvanometer}{\ctikzvalof{bipoles/galvanometer/height}}{\ctikzvalof{bipoles/galvanometer/width}}{
    \def\pgf@circ@temp{right}
    \ifx\tikz@res@label@pos\pgf@circ@temp
        \pgf@circ@res@step=-1.2\pgf@circ@res@up
    \else
        \def\pgf@circ@temp{below}
        \ifx\tikz@res@label@pos\pgf@circ@temp
            \pgf@circ@res@step=-1.2\pgf@circ@res@up
        \else
            \pgf@circ@res@step=1.2\pgf@circ@res@up
        \fi
    \fi

    \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}       
    \pgfpointorigin \pgf@circ@res@other =  \pgf@x  \advance \pgf@circ@res@other by -\pgf@circ@res@up
    \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
    \pgfusepath{draw}

    \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

        \pgfscope
            \pgfpathcircle{\pgfpointorigin}{1.0\pgf@circ@res@up}
            \pgfusepath{draw}       
        \endpgfscope    

    \pgftransformrotate{\ctikzvalof{bipoles/galvanometer/arrow rotate}}% <= magic line
    \pgfsetlinewidth{\pgfstartlinewidth}

    \pgfsetarrowsend{latex}
    \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@up}{\pgf@circ@res@zero}}
    \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@down}{\pgf@circ@res@zero}}
    \pgfusepath{draw}
    \pgfsetarrowsend{}

}

\def\pgf@circ@galvanometer@path#1{\pgf@circ@bipole@path{galvanometer}{#1}}
\compattikzset{galvanometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@galvanometer@path}}

\makeatother

\title{Esperimenti di Elettromagnetismo}
\author{Serra Edoardo, Classe V}
\date{August 2018}

\begin{document}

\maketitle

\section*{L'esperimento di Faraday-Neumann-Lenz}
\begin{wrapfigure}[l]{0.55\textwidth}
\begin{circuitikz}
\draw (0,-0.1) to[sinusoidal voltage source] (0,2)
    to[switch] (2,2);
    \draw (3,2) node[transformer] {}
    (0,-0.1) -- (2,-0.1);
    \draw (4.05,-0.1) -- (6.05,-0.1) to[galvanometer, rotation=90] (6.05,2) -- (4.05,2);
\end{circuitikz}
\end{wrapfigure}

%some text
In questo esperimento si riproduce, con strumentazione moderna, l'esperienza di Faraday, descrivendo il risultato mediante l'equazione del moto degli elettroni nel solenoide secondario. L'immagine raffigura il circuito ideale preso in esame: un anello di materiale ferromagnetico, di riluttanza magnetica trascurabile, i cui estremi sono avvolti da due solenoidi, considerabili ideali, di pari densità lineare. Nel circuito primario, il generatore, con resistenza trascurabile, produce una corrente elettrica alternata e, nel circuito secondario, è presente un galvanometro considerabile ideale. Per la legge di FNL, chiudendo il circuito, si genere, nel solenoide secondario, una forza elettromotrice, che genera un campo magnetico indotto di verso opposto a quello del solenoide primario.

\end{document}

我认为问题在于检流计和旋转代码,因为我淹没的另一个电路(其中没有检流计或任何旋转)并插入到包裹图环境中工作正常。

这是我获取检流计和旋转物体代码的地方:如何使用 Circuitikz 放置和旋转检流计

感谢您的帮助。

相关内容