ConTeXt の Circuitikz とトランスフォーマー コア

ConTeXt の Circuitikz とトランスフォーマー コア

ConTeXt で circuitikz が利用できることが分かりました。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

サーキット\pgfmovetoZ は、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

出力

関連情報