
Ich habe festgestellt, dass circuitikz in ConTeXt verfügbar ist, und da es viel vollständiger ist als die tikz-Bibliothek circuits.ee.IEC, überlege ich, darauf umzusteigen. Allerdings kann ich keinen Transformatorkern anzeigen (ich habe heute Morgen meine Kontextverteilung aktualisiert, um sicherzugehen, dass es kein Update gab). Hier ist mein 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
Die Nachfrage nach transformer core
führt zu folgendem Fehler
Control sequence expected instead of undefined
Natürlich kann ich das Kernsymbol mithilfe der Transformatoranker neu erstellen, aber das erscheint albern, da es bereits in der Bibliothek definiert ist … Gibt es eine einfache Lösung für dieses Problem?
Vielen Dank im Voraus
Antwort1
Schaltkreisk\pgfmoveto
Z versucht, das seit 2005 veraltete Makro zu verwenden. pgf
lädt die Kompatibilitätspakete standardmäßig unter LaTeX, aber nicht unter ConTeXt. Streng genommen ist dieser Fehler also nicht nur auf ConTeXt beschränkt, da das folgende LaTeX-Dokument denselben Fehler erzeugt:
\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}
Um dieses Problem zu beheben, müssen Sie lediglich entsprechende Definitionen für \pgfmoveto
und angeben \pgflineto
:
\usemodule[circuitikz]
\let\pgfmoveto=\pgfpathmoveto % Added
\let\pgflineto=\pgfpathlineto % Added
\startTEXpage
\starttikzpicture
\node [transformer core] {};
\stoptikzpicture
\stopTEXpage