ConTeXt 中的 Circuitikz 和变压器铁芯

ConTeXt 中的 Circuitikz 和变压器铁芯

我发现 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

输出

相关内容