4

Why does the following test using \ifthenelse not compile:

\documentclass[border=30pt, tikz]{standalone}
\usepackage{tikz,tikz-3dplot}
\usepackage{ifthen}
\usepackage{animate, calc}%%%%%%%%%%%%
\usepackage{animate}
\usepackage{circuitikz}

\begin{document}
 \foreach \x in {0.1,0.2,...,4}{

 \begin{tikzpicture}
   \begin{circuitikz}
 \draw (0,0)
      to[V,v=$U_q$] (0,2) % The voltage source
      to[short] (2,2)
      to[R=$R_1$] (2,0) % The resistor
      to[short] (0,0);
      \draw (2,2)
      to[short] (4,2)
      to[R=$R_2$] (4,0)
      to[short] (2,0); 
        \ifthenelse{\x<2}{\fill[color=red] (0,\x) circle (3pt);}{}
 \end{circuitikz}
 \end{tikzpicture}
}
\end{document}

On compilation I get the following error:

! Missing = inserted for \ifnum. <to be read
again>
4

It doesn't work, because \ifnum (which is what \ifthenelse calls) only takes whole numbers (no fractions). Therefore you need another test. A very simple attempt:

\documentclass[border=30pt, tikz]{standalone}
\usepackage{tikz,tikz-3dplot}
\usepackage{xparse}
\usepackage{animate, calc}%%%%%%%%%%%%
\usepackage{animate}
\usepackage{circuitikz}

\ExplSyntaxOn
\NewDocumentCommand { \xifnum } { }
    {
        \fp_compare:nTF
    }
\ExplSyntaxOff

\begin{document}
 \foreach \x in {0.1,0.2,...,4}{
 \begin{tikzpicture}
   \begin{circuitikz}
     \draw (0,0)
      to[V,v=$U_q$] (0,2) % The voltage source
      to[short] (2,2)
      to[R=$R_1$] (2,0) % The resistor
      to[short] (0,0);
      \draw (2,2)
      to[short] (4,2)
      to[R=$R_2$] (4,0)
      to[short] (2,0); 
      \xifnum{\x<2}{\fill[color=red] (0,\x) circle (3pt);}{}
 \end{circuitikz}
 \end{tikzpicture}
}
\end{document}
  • 1
    Or using \foreach \x in {1,2,...,40} and comparing \x with 20, with (0,\x/10) as coordinate. – egreg Apr 14 '18 at 9:48
  • 1
    @egreg That sounds far too simple (and has no expl3) ;) – TeXnician Apr 14 '18 at 9:55
  • thank you for all, i used this reply to improve my question [about circuitikz ](tex.stackexchange.com/questions/426459/…) – moradov Apr 14 '18 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.