ВСмещение знаков напряжения +- в 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
. Я задокументирую это в следующей версии руководства.