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