
\documentclass[border=10pt]{standalone}
\usepackage[american]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0)
node[transformer] (T) {};
\draw (T.B1)
to [D] (3,0)
to [R] (3,-2.1)
to [short] (T.B2);
\draw (3,0)
to [vR] (6,0)
to [R] (6,-2.1)
to [short] (3,-2.1);
\end{circuitikz}
\end{document}
\documentclass[border=10pt]{standalone}
\usepackage[american]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0)
node[transformer] (T) {};
\draw (T.B1)
to [D] (3,0)
to [R] (3,-2)
to [short] (T.B2);
\draw (3,0)
to [vR] (6,0)
to [R] (6,-2)
to [short] (3,-2);
\end{circuitikz}
\end{document}
Como você pode ver, o circuito gerado usando o segundo código não parece bom, mas para o primeiro código tenho que usar coordenadas confusas (2.1 etc.). Existe alguma maneira de corrigir esse comportamento para que as âncoras estejam em coordenadas inteiras adequadas?
Responder1
ComoPaulo Gesslermenciona emo comentário dele, você pode dimensionar o transformador usando algum fator ou, uma abordagem melhor na minha opinião, seria usar o sistema de coordenadas perpendiculares: (<coordinatea>|-<coordinateb>)
ou (<coordinateb>-|<coordinatea>)
ajustar a posição vertical/horizontal das coordenadas:
\documentclass[border=10pt]{standalone}
\usepackage[american]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0)
node[transformer] (T) {};
\draw (T.B1)
to [D] ++(2,0)
to [R] (3,-2|-T.B2)
to [short] (T.B2);
\draw (3,0)
to [vR] (6,0)
to [R] (6,-2|-T.B2)
to [short] (3,-2|-T.B2);
\end{circuitikz}
\end{document}