我查看了文档和示例加拿大运输安全局, 但circuitikz
很难掌握。
我正在尝试创造
以下是我目前所掌握的信息:
\documentclass[convert = false]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (-.5, 0) to[L, l = L] (1.4, 0)
to[R, l = R] (5, 0);
\end{circuitikz}
\end{document}
但间距很奇怪,我似乎不知道如何设置它。
答案1
我也发现circuitikz
文档有点欠缺,但通过检查示例可以学到很多东西。快速[circuitikz]
在网站上搜索会找到更多示例。此外,还有一些其他circuitikz
示例可从texample.net。
关于间距,我的主要建议(实际上适用于任何矢量图形包)是在开始时对所有内容进行参数化;不要使用“魔法数字”。您的电路将更容易调整;移动东西将变得轻而易举。见下文。
\documentclass[convert = false]{article}
\usepackage[american]{circuitikz}
\begin{document}
\begin{circuitikz}[scale=2]
\def\xPortLeft{0}
\def\yTerminalBottom{0}
\def\yL{1.5}
\def\xL{1}
\def\xR{1.75}
\def\xC{2.25}
\def\xPortRight{3}
% left loop
\draw (\xPortLeft,\yL)
to[L=$L$, o-] (\xL, \yL)
to[R=$R$] (\xR, \yL)
to[short] (\xC,\yL)
to[C, l_=$C$,*-*] (\xC,\yTerminalBottom)
to[short,i=$i(t)$] (\xPortLeft,\yTerminalBottom)
to[open,v^>=$v_1(t)$,o-o] (\xPortLeft,\yL);
% right branch
\draw (\xC,\yL)
to[short] (\xPortRight,\yL)
to[open,v^=$v_2(t)$,o-o] (\xPortRight,\yTerminalBottom)
to[short] (\xC,\yTerminalBottom);
\end{circuitikz}
\end{document}
答案2
方法如下。定义(x,y)
每个电路节点的坐标(一般来说,2cm 的间隔就相当不错了),然后使用to[options]
连接所有节点,其中options
可以分别为标签/电流/电压名称使用 R、L、C、开路(电路)、短路(电路)、l(abel)=、v=、i=。诸如 和 等变体v^
旨在v_
将标签放在电路元件的两侧。至于 KVL 的电流环路,此解决方案使用amssymb
带节点技术的封装来实现这一点。默认情况下,每个分支上的电流都带有标签,如电容器分支中所示。
代码:
\documentclass[convert = false, border=10pt,]{standalone}
\usepackage[american,siunitx]{circuitikz}
\usepackage{latexsym,amssymb,amsmath}
\begin{document}
\begin{circuitikz}
\draw (-.5, 2) to[L, l = $L$] (2, 2) to [R, l = $R$] (4, 2) to [short](6,2)
(4,2) to[C,l=$C$] (4,0)
(-0.5,2) to [open, v=$v_1(t)$,o-o](-0.5,0)
(6,2) to [open, v=$v_2(t)$,o-o] (6,0) % use v^=$V_2$, if you want it on the right side.
(-0.5,0)--(6,0)
(1.5,1) node[scale=3]{$\circlearrowright$}
(1.5,1) node{$i_1$};
\end{circuitikz}
\end{document}
答案3
如果允许 PSTricks,您可以执行以下操作:
\documentclass{article}
% PSTricks.
\usepackage{
pst-circ,
pst-bspline,
pstricks-add
}
\psset{unit = 0.8}
% Width and height of the diagram.
\def\width{12}
\def\height{6}
% Calculating width and height of picture.
\usepackage{xfp}
\newcommand*\Width{\fpeval{\width+0.4}}
\newcommand*\Height{\fpeval{\height+0.82}}
\begin{document}
% Drawing.
\begin{pspicture}(-0.4,-0.05)(\Width,\Height)
% Coordinates for the ends of the wires.
\pnodes{P}%
(0,0)(0,0)% Doubled to let the nodes start from P1 instead of P0.
(\fpeval{0.70*\width},0)%
(\width,0)%
(0,\height)%
(\fpeval{0.35*\width},\height)%
(\fpeval{0.70*\width},\height)
(\width,\height)
% Wires and components.
\wire[arrows = o-o](P1)(P3)
\coil[arrows = o-](P4)(P5){$L$}
\resistor[arrows = -o, dipolestyle = zigzag](P5)(P6){$R$}
\wire[arrows = o-o](P6)(P7)
\capacitor[arrows = *-*](P2)(P6){$C$}
% Labels.
\uput[90](P1){$-$}
\uput[90](P3){$-$}
\uput[270](P4){$+$}
\uput[270](P7){$+$}
{\psset{linestyle = none}
\pcline(P1)(P4)
\ncput*{$v_1(t)$}
\pcline(P3)(P7)
\ncput*{$v_2(t)$}}
% Direction of the current.
\psBspline[arrows = ->]%
(\fpeval{0.7*\width-3.0},\fpeval{\height-1})%
(\fpeval{0.7*\width-1.2},\fpeval{\height-1})%
(\fpeval{0.7*\width-1.2},1)%
(\fpeval{0.7*\width-3.0},1)
\rput(\fpeval{0.7*\width-2.2},\fpeval{\height/2}){$i(t)$}
\end{pspicture}
\end{document}
这里,pst-circ
用于绘制电气元件,pst-bspline
用于绘制弯曲的箭头,pstricks-add
用于设置标签。
图表的宽度和高度可以自由选择,并自动计算图片相应的宽度和高度。
注意:使用 Herbert Voß 的软件包进行此类绘图的优点pst-circ
是所有宏都是(或多或少)不言自明的,因此如果需要,代码很容易编辑。此外,文档有很多例子。
答案4
这只是 PSTricks 的另一种解决方案。
\documentclass[pstricks,12pt]{standalone}
\usepackage{pst-circ}
\def\Tension(#1)(#2)#3{\uput[-90](#1){$+$}\uput[90](#2){$-$}\rput([nodesep=1.5]{#2}#1){#3}}
\begin{document}
\begin{pspicture}(-1,1)(9,-4)
\pnodes(0,0){A}(3,0){B}(6,0){C}(8,0){D}([offset=-3]A){A'}([offset=-3]B){B'}([offset=-3]C){C'}([offset=-3]D){D'}
\coil[arrows=o-,labeloffset=20pt](A)(B){$L$}
\resistor[dipolestyle=zigzag,labeloffset=18pt](B)(C){$R$}
\wire[arrows=-o](C)(D)
\capacitor[arrows=*-*,labeloffset=-24pt](C)(C'){$C$}
\wire[arrows=o-o](A')(D')
\Tension(A)(A'){$v_1(t)$}
\Tension(D)(D'){$v_2(t)$}
\pcbar[linearc=20pt,arm=50pt]{->}([offset=-20pt]B)([offset=20pt]B')
\nbput[labelsep=12pt]{$i(t)$}
\end{pspicture}
\end{document}
笔记
% \the following tensions don't work temporarily
%\tension[tensionstyle=pm](A)(A'){$v_1(t)$}
%\tension[tensionstyle=pm](D)(D'){$v_2(t)$}