Circuitikz и сердечник трансформатора в ConTeXt

Circuitikz и сердечник трансформатора в ConTeXt

Я обнаружил, что circuitikz доступен в ConTeXt, и поскольку он гораздо более полный, чем библиотека circuits.ee.IEC tikz, я подумываю перейти на него. Однако я не могу отобразить ядро ​​трансформатора (я обновил свой контекстный дистрибутив сегодня утром, чтобы убедиться, что обновления не было). Вот мой 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

Спрос на transformer coreприводит к следующей ошибке

Control sequence expected instead of undefined

Конечно, я могу воссоздать основной символ, используя якоря трансформатора, но это кажется глупым, поскольку он уже определен в библиотеке... Есть ли простое решение этой проблемы?

заранее спасибо

решение1

ЦиркуиТикZ пытается использовать \pgfmovetoмакрос, который устарел с 2005 года. pgfзагружает пакеты совместимости по умолчанию в LaTeX, но не в ConTeXt. Так что, строго говоря, эта ошибка не является исключительной для ConTeXt, поскольку следующий документ LaTeX выдает ту же ошибку:

\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}

Чтобы решить эту проблему, вам просто нужно предоставить соответствующие определения для \pgfmovetoи \pgflineto:

\usemodule[circuitikz]

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

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

выход

Связанный контент