Circuitikz und Transformatorkern in ConTeXt

Circuitikz und Transformatorkern in ConTeXt

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 corefü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\pgfmovetoZ versucht, das seit 2005 veraltete Makro zu verwenden. pgflä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 \pgfmovetound angeben \pgflineto:

\usemodule[circuitikz]

\let\pgfmoveto=\pgfpathmoveto  % Added
\let\pgflineto=\pgfpathlineto  % Added

\startTEXpage
\starttikzpicture
    \node [transformer core] {};
\stoptikzpicture
\stopTEXpage

Ausgabe

verwandte Informationen