
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 core
conduce 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 \pgfmoveto
macro que ha quedado obsoleta desde 2005. pgf
carga 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 \pgfmoveto
y \pgflineto
:
\usemodule[circuitikz]
\let\pgfmoveto=\pgfpathmoveto % Added
\let\pgflineto=\pgfpathlineto % Added
\startTEXpage
\starttikzpicture
\node [transformer core] {};
\stoptikzpicture
\stopTEXpage