Circuitikz e núcleo do transformador no ConTeXt

Circuitikz e núcleo do transformador no ConTeXt

Descobri que o circuitikz está disponível no ConTeXt e, como é muito mais completo que a biblioteca circuits.ee.IEC tikz, estou pensando em mudar para ela. No entanto, não consigo exibir um núcleo de transformador (atualizei minha distribuição de contexto esta manhã para ter certeza de que não houve atualização). Aqui está meu MWE:

\usemodule[tikz]

\usemodule[circuitikz]
\ctikzset{current=european, voltage=straight, resistor=european, inductor=american}

\starttext
\starttikzpicture
  \draw (0, 0) node [transformer core] (T) {};  % asking for node[transformer] (T) {} works
\stoptikzpicture
\stoptext

A demanda por transformer coreleva ao seguinte erro

Control sequence expected instead of undefined

Claro que posso recriar o símbolo central usando as âncoras do transformador, mas parece bobo, pois já está definido na biblioteca… Existe uma solução simples para esse problema?

Agradeço antecipadamente

Responder1

CircuiTikZ tenta usar a \pgfmovetomacro que está obsoleta desde 2005. pgfcarrega os pacotes de compatibilidade por padrão no LaTeX, mas não no ConTeXt. Estritamente falando, esse bug não é exclusivo do ConTeXt, pois o seguinte documento LaTeX apresenta o mesmo erro:

\documentclass{article}

\usepackage[version=latest]{pgf}  % Works if this line is removed

\usepackage{circuitikz}

\begin{document}
\begin{tikzpicture}
  \draw (0, 0) node [transformer core] (T) {};
\end{tikzpicture}
\end{document}

Para corrigir esse problema, você só precisa fornecer definições apropriadas para \pgfmovetoe \pgflineto:

\usemodule[circuitikz]

\let\pgfmoveto=\pgfpathmoveto  % Added
\let\pgflineto=\pgfpathlineto  % Added

\startTEXpage
\starttikzpicture
    \node [transformer core] {};
\stoptikzpicture
\stopTEXpage

saída

informação relacionada