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