![如何在不改变电感器颜色和位置的情况下使箭头和标签变为红色?](https://linux22.com/image/458624/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E6%94%B9%E5%8F%98%E7%94%B5%E6%84%9F%E5%99%A8%E9%A2%9C%E8%89%B2%E5%92%8C%E4%BD%8D%E7%BD%AE%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BD%BF%E7%AE%AD%E5%A4%B4%E5%92%8C%E6%A0%87%E7%AD%BE%E5%8F%98%E4%B8%BA%E7%BA%A2%E8%89%B2%EF%BC%9F.png)
来自 Zarko 对我的回答上一个问题通过添加,[short,...]
我可以在任何导线部分插入电流箭头,并可以指定标签和箭头的颜色。这很棒,在大多数情况下令人满意。
\draw (0,0) node[ocirc,scale=2] {} to [short, i>^= $I_L$, color=red, bipole current append style={color=red}] ++(0.5,0) to [cute inductor,
,bipole current append style={color=red}] ++( 1.5,0) node[ocirc,scale=2]{} ;
现在,如果我不使用,[short,..]
我可以这样做,但这也会使电感器变红。
\draw (0,-1) node[ocirc,scale=2] {} to [cute inductor, i>^= $I_L$, color=red
,bipole current append style={color=red}] ++(2,0) node[ocirc,scale=2]{} ;
假设我想将电感器放置在两端之间的中间,如第二种情况,我该怎么做?如果我使用 [short,..]
非常小的距离,就像 (0,0) [short,..] ++(0.1,0)
它会将箭头放置在非常靠近左侧端子的位置,这是不希望的。
不使用的主要原因[short,...]
是我用 TikZ 制作了很多电路,现在如果我改变它,那么我将不得不改变所有的东西,因为其中很多都取决于电感器坐标。此外,在某些情况下,内置电流箭头很好,你不想添加,[short]
因为它可能需要更多空间或使电感器不对称,如第一幅图所示。
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx,RPvoltages]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[ocirc,scale=2] {} to [short, i>^= $I_L$, color=red, bipole current append style={color=red}] ++(0.5,0) to [cute inductor,
,bipole current append style={color=red}] ++( 1.5,0) node[ocirc,scale=2]{} ;
\draw (0,-1) node[ocirc,scale=2] {} to [cute inductor, i>^= $I_L$, color=red
,bipole current append style={color=red}] ++(2,0) node[ocirc,scale=2]{} ;
\end{circuitikz}
\end{document}
答案1
我必须承认,这个问题对我来说并不是很清楚。因此,我猜,你会:
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx]{circuitikz}
\begin{document}
\begin{circuitikz}
\ctikzset{bipoles/capacitor/width/.initial=.075,
current arrow scale=8,
bipole current append style={color=red}}
\draw (0,0) node[ocirc] {}
to [short, i=$I_{C}$, color=red] ++ (0.75,0)
to [cute inductor, v^=$V_L$,
inductors/scale=0.8, color=red] ++ (1.5,0)
node[ocirc] {};
\end{circuitikz}
\end{document}
编辑:
再试一次,但我还是不确定你想要什么......
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx]{circuitikz}
\begin{document}
\begin{circuitikz}
\ctikzset{bipoles/capacitor/width/.initial=.075,
%current arrow scale=8,
bipole current append style={color=red}}
\draw (0,0) node[ocirc] {}
to [short, i=$I_{C}$, color=red] ++ (0.55,0)
(0,0) to [cute inductor] ++ (2,0)
node[ocirc] {};
\end{circuitikz}
\end{document}
答案2
颜色很难(尤其是在circuitikz
)。我很惊讶第一种情况的解决方案有效;这不是故意的,因为基本上很难推断出形状内部的绘图颜色。请记住,颜色是路径全局属性,和red
不是color=red
一回事,而且规则很难;下一个例子是普通的 Ti钾Z、无circuitikz
涉及:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[]
\draw [thick, color=red] (0,0.2) -- ++(1,0) [color=blue] -- ++(1,0);
\draw [thick, color=red] (0,0) -- ++(1,0) {[color=blue] -- ++(1,0)};
\end{tikzpicture}
\end{document}
...并添加其他节点(如当前箭头或标签)后路径已经完成,所以有时你真的不知道现在应该采用哪种颜色。
因此,基本上,安全的做法是仅使用类颜色(当提供时)或使用不同的路径。为了解决这种情况,我添加了“高级电压和电流”(可能应该称为“手动电压和电流”);我会像下面这样编写你的电路(我为大极点提供了一个技巧……以前没有时间)。
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx,RPvoltages]{circuitikz}
\begin{document}
% define big poles...
\tikzset{% this definition is at tikz level, because
% it will be used with a `node[... ]` element
% the "nodes width" will be kept local
bigO/.style={ocirc, circuitikz/nodes width=0.1},
}
\ctikzset{% define new poles style
O-/.style={bipole nodes={bigO}{none}},
O-O/.style={bipole nodes={bigO}{bigO}},
-O/.style={bipole nodes={none}{bigO}},
!i/.style={no i symbols},
}
\newcommand{\iarronly}[2][red]{% name
\node [currarrow, color=#1, anchor=center,
rotate=\ctikzgetdirection{#2-Iarrow}] at (#2-Ipos) {};
}
\begin{circuitikz}
% you need a quite new latex for mathcolor...
\draw (0,1) to[cute inductor, i>^=$\mathcolor{red}{I_L}$,
name=LL, !i, O-O] ++(2,0) to[cute open switch] ++ (2,0);
\iarronly{LL}% red is the default
\draw (0,0) to[cute inductor, i>^={\color{blue}$I_L$},
name=LL1, !i, O-O] ++(2,0);
\iarronly[blue]{LL1}
\end{circuitikz}
\end{document}