Circuitikz y núcleo de transformador en ConTeXt

Circuitikz y núcleo de transformador en ConTeXt

Descubrí que circuitoikz está disponible en ConTeXt y, dado que es mucho más completo que la biblioteca tikz circuitos.ee.IEC, estoy considerando cambiarme a él. Sin embargo, no puedo mostrar un núcleo de transformador (actualicé mi distribución de contexto esta mañana para asegurarme de que no hubiera una actualización). Aquí está mi 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

La demanda de transformer coreconduce al siguiente error.

Control sequence expected instead of undefined

Por supuesto que puedo recrear el símbolo central usando los anclajes del transformador, pero parece una tontería ya que ya está definido en la biblioteca... ¿Existe una solución sencilla para este problema?

gracias de antemano

Respuesta1

circuitotikZ intenta utilizar la \pgfmovetomacro que ha quedado obsoleta desde 2005. pgfcarga los paquetes de compatibilidad de forma predeterminada en LaTeX, pero no en ConTeXt. Estrictamente hablando, este error no es exclusivo de ConTeXt ya que el siguiente documento de LaTeX muestra el mismo error:

\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 solucionar este problema, solo necesita proporcionar definiciones apropiadas para \pgfmovetoy \pgflineto:

\usemodule[circuitikz]

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

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

producción

información relacionada