Como você pode alterar a distância dos sinais de tensão +/- no circuitikz de um componente?

Como você pode alterar a distância dos sinais de tensão +/- no circuitikz de um componente?

EmMudando os sinais de tensão +- no circuitikzresposta, eles usaram "/tikz/circuitikz/voltage/distance from node" para definir a distância que os sinais +/- estão longe do componente (ou bem, nó), e quando eu uso esse código exato, ele funciona como mostrado , mas não consigo entender por que meu código parece não funcionar. Estou usando o ctikzset incorretamente?

\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}

Distância diferente do nó, mas mesma figura

Responder1

Adiciono o MWE com a sugestão do simpático usuário @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}

insira a descrição da imagem aqui

Responder2

Acrescentarei uma resposta aqui porque, embora a resposta dada funcione, parece-me que contém alguns mal-entendidos.

Primeiro de tudo --- \ctikzset{key}é equivalente a (aproximadamente) \tikzset{/tikz/circuitikz/key}, então o uso desse comando é de alguma forma redundante acima.

Veja o exemplo a seguir:

\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}

A saída é a seguinte:

insira a descrição da imagem aqui

Como você pode ver, parece que o primeiro \ctikzsetnão está fazendo nada --- os componentes com 1V e 2V estão na mesma posição de +e -(na verdade, está causando estragos, continue lendo). Isso ocorre porque a voltage/distance from nodechave é a padrão, que no caso de genericé substituída pela distância específica do componente[*] bipoles/generic/voltage/distance from nodeque é definida como 0.4. O significado é explicado aqui --- esta é uma distância proporcional do nó ao componente:

insira a descrição da imagem aqui

...como você pode ver, agora o comando funciona conforme o esperado. Observe que se você usar valores absolutos para distance from nodevocê estará sozinho se o lead for menor...

Nota técnica: o argumento de distance from nodeé realmente usado em uma calcexpressão TikZ como:($(node)!argument!(start of the component)$)

Por que o primeiro comando está causando estragos: porque agora ele definiu a distância em 1cm paratodosos componentesmenosos especiais abaixo...

Haverá um patch de documentação em breve:https://github.com/circuitikz/circuitikz/pull/438


  • isso acontece para generic,,, agenerice memristor. Vou documentar isso na próxima versão do manual.fullgenericopen

informação relacionada