我希望使用当前箭头在虚线上添加当前标签。但是当我这样做时,箭头的边框也是虚线,看起来很糟糕。
这是我的代码:
\begin{circuitikz}
\draw (0,0) to[V={\small $V_{CC}$}] (0,2) to (5,2) to[R, l={\rotatebox[origin=c]{-90}{{\small $Charge$}}}] (5,0) to (0,0);
\draw[color=red, thick] (3,2) to[short, *-] (2.75,0.75) to (3.25, 1.25) to[short, -*] (3,0);
\draw[color=red, thick, dashed] (0.1,1.9) to[short, i={\small $i_{d\acute efaut}$}] (2.65,1.9) to (2.65,0.1) to (0.1,0.1) to (0.1,1.9);
\end{circuitikz}
我真的不知道该怎么做才能让它看起来像我想要的那样。我已经尝试向对象添加或,solid
但没有成功。dash=solid
dash pattern=on
short
答案1
是的,你被这个事实困扰了,即dash
绘制节点的绘制例程继承了currarrow
。将虚线模式更改为元素short
不起作用(虚线对于路径是全局的,你可以查看手册中常见问题解答中的讨论)。
你有两个解决方案:
(如果您只想要一个当前箭头):使用
advanced currents and voltages
(目前为第 5.6 节)这个;(如果您想使所有当前箭头都变为非虚线),您可以使用组件挂钩
currarrow
(参见手册第 9.3.1 节),我想这就是您想要的:
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx,RPvoltages]{circuitikz}
\makeatletter
\newcommand{\ctikz@hook@start@draw@component@currarrow}{\pgfsetdash{}{0pt}}
\makeatother
\begin{document}
\begin{circuitikz}
\draw (0,0) to[V={\small $V_{CC}$}] (0,2) -- (5,2)
to[R, l={\small\textit{Charge}}, label/align=rotate] (5,0)
-- (0,0);
\draw[color=red, thick] (3,2) to[short, *-] (2.75,0.75)
-- (3.25, 1.25) to[short, -*] (3,0);
\draw[color=red, thick, dashed] (0.1,1.9)
to[short, i={\small $i_{\textit{défaut}}$}] (2.65,1.9)
-- (2.65,0.1) -- (0.1,0.1) -- (0.1,1.9);
\end{circuitikz}
\end{document}
我还擅自将纯文本改为to
线条,并以我认为更正确的方式重写标签(不要将数学模式用于斜体文本:仔细查看周围的间距F在默认!)。
顺便说一句,如果您发现自己需要添加\small
所有标签、电压等,您可以定义自己的样式(参见第 5.6 节):
\documentclass[margin=3mm]{standalone}
\usepackage[american,siunitx,RPvoltages]{circuitikz}
\makeatletter
\newcommand{\ctikz@hook@start@draw@component@currarrow}{\pgfsetdash{}{0pt}}
\makeatother
\ctikzset{bipole label style/.style={font=\small}}
\ctikzset{bipole annotation style/.style={font=\small}}
\ctikzset{bipole voltage style/.style={font=\small}}
\ctikzset{bipole current style/.style={font=\small}}
\begin{document}
\begin{circuitikz}
\draw (0,0) to[V=$V_{CC}$] (0,2) -- (5,2)
to[R, l={\textit{Charge}}, label/align=rotate] (5,0)
-- (0,0);
\draw[color=red, thick] (3,2) to[short, *-] (2.75,0.75)
-- (3.25, 1.25) to[short, -*] (3,0);
\draw[color=red, thick, dashed] (0.1,1.9)
to[short, i=$i_{\textit{défaut}}$] (2.65,1.9)
-- (2.65,0.1) -- (0.1,0.1) -- (0.1,1.9);
\end{circuitikz}
\end{document}