¿Cómo se puede cambiar la distancia de las señales de voltaje +/- en Circuitikz desde un componente?

¿Cómo se puede cambiar la distancia de las señales de voltaje +/- en Circuitikz desde un componente?

EnCambiando los signos de voltaje +- en circuitoikzrespuesta, usaron "/tikz/circuitikz/voltage/distance from node" para establecer la distancia a la que los signos +/- están alejados del componente (o bueno, nodo), y cuando uso ese código exacto, funciona como se muestra , pero no puedo entender por qué mi código no parece funcionar. ¿Estoy usando ctikzset incorrectamente?

\documentclass{standalone}
\usepackage[siunitx, american, RPvoltages]{circuitikz}

\begin{document}
\begin{circuitikz}
\ctikzset{/tikz/circuitikz/voltage/distance from node=0.3cm}
\draw
    (0,0) to [generic, v<=40<\volt>] (0,3);
\end{circuitikz}

\begin{circuitikz}
\ctikzset{/tikz/circuitikz/voltage/distance from node=1cm}
\draw
    (0,0) to [generic, v<=40<\volt>] (0,3);
\end{circuitikz}

\end{document}

Diferente distancia del nodo, pero misma figura

Respuesta1

Agrego el MWE con la sugerencia del muy simpático usuario @ferahfeza.

\documentclass[12pt]{standalone}
\usepackage[siunitx, american]{circuitikz}

\begin{document}
\begin{circuitikz}
\ctikzset{bipoles/generic/voltage/distance from node=0.6cm}
\draw
    (0,0) to [generic, v<=40<\volt>] (0,3);
\end{circuitikz}

\begin{circuitikz}
\ctikzset{/tikz/circuitikz/voltage/distance from node=1cm}
\draw
    (0,0) to [generic, v<=40<\volt>] (0,3);
\end{circuitikz}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Agregaré una respuesta aquí porque aunque la respuesta dada funciona, me parece que tiene un par de malentendidos.

En primer lugar, --- \ctikzset{key}es equivalente a (aproximadamente) \tikzset{/tikz/circuitikz/key}, por lo que el uso de ese comando es de alguna manera redundante arriba.

Mira el siguiente ejemplo:

\documentclass[12pt]{standalone}
\usepackage[EFvoltages, siunitx, american]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (-2,0) to [generic, v<=1<\volt>, d-d] ++(0,3);
\ctikzset{voltage/distance from node=1cm}
\draw (0,0) to [generic, v<=2<\volt>, d-d] ++(0,3);
\ctikzset{bipoles/generic/voltage/distance from node=.3cm}
\draw (2,0) to [generic, v<=3<\volt>, d-d] ++(0,3);
\ctikzset{bipoles/generic/voltage/distance from node=1cm}
\draw (4,0) to [generic, v<=4<\volt>, d-d] ++(0,3);
\end{circuitikz}
\end{document}

El resultado es el siguiente:

ingrese la descripción de la imagen aquí

Como ves parece que lo primero \ctikzsetno hace nada --- los componentes de 1V y 2V tienen la misma posición de +y -(en realidad está haciendo estragos, sigue leyendo). Esto se debe a que la voltage/distance from nodeclave es la predeterminada, que en el caso de genericse anula por la distancia específica del componente[*] bipoles/generic/voltage/distance from nodeque está establecida en 0.4. El significado se explica aquí: esta es una distancia proporcional desde el nodo al componente:

ingrese la descripción de la imagen aquí

...como puede ver, ahora el comando funciona como se esperaba. Tenga en cuenta que si utiliza valores absolutos para distance from nodeusted mismo, si la ventaja es más pequeña...

Nota técnica: el argumento de distance from noderealmente se usa en una calcexpresión de TikZ como:($(node)!argument!(start of the component)$)

Por qué está causando estragos el primer comando: porque ahora ha fijado la distancia en 1cm paratodolos componentesmenoslos especiales a continuación...

Pronto habrá un parche de documentación:https://github.com/circuitikz/circuitikz/pull/438


  • esto sucede para generic, ageneric, memristory fullgeneric. openLo documentaré en la próxima versión del manual.

información relacionada