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}
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}
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:
Como ves parece que lo primero \ctikzset
no 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 node
clave es la predeterminada, que en el caso de generic
se anula por la distancia específica del componente[*] bipoles/generic/voltage/distance from node
que está establecida en 0.4
. El significado se explica aquí: esta es una distancia proporcional desde el nodo al componente:
...como puede ver, ahora el comando funciona como se esperaba. Tenga en cuenta que si utiliza valores absolutos para distance from node
usted mismo, si la ventaja es más pequeña...
Nota técnica: el argumento de distance from node
realmente se usa en una calc
expresió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
,memristor
yfullgeneric
.open
Lo documentaré en la próxima versión del manual.