Как можно изменить расстояние знаков напряжения +/- в circuitikz от компонента?

Как можно изменить расстояние знаков напряжения +/- в circuitikz от компонента?

ВСмещение знаков напряжения +- в circuitikzответ, они использовали "/tikz/circuitikz/voltage/distance from node" для установки расстояния, на котором знаки +/- находятся от компонента (или, ну, узла), и когда я использую этот точный код, он работает так, как показано, но я не могу понять, почему мой код, похоже, не работает. Я неправильно использую ctikzset?

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

Разное расстояние от узла, но та же цифра

решение1

Я добавляю MWE по предложению очень хорошего пользователя @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}

введите описание изображения здесь

решение2

Я добавлю ответ здесь, потому что, хотя данный ответ и работает, мне кажется, что в нем есть несколько недоразумений.

Во-первых, --- \ctikzset{key}эквивалентно (примерно) \tikzset{/tikz/circuitikz/key}, поэтому использование этой команды выше в некотором роде излишне.

Посмотрите на следующий пример:

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

Вывод следующий:

введите описание изображения здесь

Как вы можете видеть, кажется, что первый \ctikzsetничего не делает --- компоненты с 1 В и 2 В имеют одинаковое положение +и -(на самом деле, это сеет хаос, читайте дальше). Это потому, что voltage/distance from nodeключ является ключом по умолчанию, который в случае genericпереопределяется специфичным для компонента distance[*], bipoles/generic/voltage/distance from nodeкоторый установлен в 0.4. Значение объясняется здесь --- это пропорциональное расстояние от узла до компонента:

введите описание изображения здесь

...как видите, теперь команда работает как и ожидалось. Обратите внимание, что если вы используете абсолютные значения для distance from nodeвы находитесь на себе, если опережение меньше...

Техническое примечание: аргумент distance from nodeна самом деле используется в calcвыражении TikZ, например:($(node)!argument!(start of the component)$)

Почему первая команда — «разрушить»: потому что теперь она установила расстояние в 1 см длявсекомпонентыминусспециальные ниже...

Скоро выйдет патч документации:https://github.com/circuitikz/circuitikz/pull/438


  • это происходит для generic, ageneric, memristor, fullgenericи open. Я задокументирую это в следующей версии руководства.

Связанный контент