
Descobri que o circuitikz está disponível no ConTeXt e, como é muito mais completo que a biblioteca circuits.ee.IEC tikz, estou pensando em mudar para ela. No entanto, não consigo exibir um núcleo de transformador (atualizei minha distribuição de contexto esta manhã para ter certeza de que não houve atualização). Aqui está meu 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
A demanda por transformer core
leva ao seguinte erro
Control sequence expected instead of undefined
Claro que posso recriar o símbolo central usando as âncoras do transformador, mas parece bobo, pois já está definido na biblioteca… Existe uma solução simples para esse problema?
Agradeço antecipadamente
Responder1
CircuiTikZ tenta usar a \pgfmoveto
macro que está obsoleta desde 2005. pgf
carrega os pacotes de compatibilidade por padrão no LaTeX, mas não no ConTeXt. Estritamente falando, esse bug não é exclusivo do ConTeXt, pois o seguinte documento LaTeX apresenta o mesmo erro:
\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}
Para corrigir esse problema, você só precisa fornecer definições apropriadas para \pgfmoveto
e \pgflineto
:
\usemodule[circuitikz]
\let\pgfmoveto=\pgfpathmoveto % Added
\let\pgflineto=\pgfpathlineto % Added
\startTEXpage
\starttikzpicture
\node [transformer core] {};
\stoptikzpicture
\stopTEXpage