我查看了 CTAN 上的文档和示例,但是circuitikz
很难掌握。
这个http://prntscr.com/f8s0pz
答案1
本着“帮助您自助”的精神,这里是该图的一部分,我认为其中包含您自己完成它所需的所有元素和代码片段。别忘了阅读代码中的注释。
结果
代码
\documentclass[margin=2mm,tikz]{standalone}
\usepackage[american]{circuitikz}
\usetikzlibrary{calc}
\begin{document}
% I use a tikzpicture instead of a circuitikz here because
% the standalone package does weird things with the paper
% size when using a circuitikz environment. Feel free to
% change this in your document.
% We choose a base length of 3cm to simplify our coordinate
% calculations. Adjust as needed. Default is 1cm by the way.
%\begin{circuitikz}[x=3cm,y=3cm]
\begin{tikzpicture}[x=3cm,y=3cm]
% Define all coordinates. Not strictly necessary, but it
% makes for cleaner code, in my humble opinion.
\coordinate[label=below:$+$] (INP) at (0,0);
\coordinate[label=$A_1$] (A1) at (1,0);
\coordinate[label=$B_1$] (B1) at (2,0);
\coordinate (C1) at (1,-1);
\coordinate (CE1) at (2,-1);
\coordinate[label=above:$-$] (INN) at (0,-1);
\coordinate[label=$D_1$] (D1) at (3,0);
\coordinate (L1) at (3,-1);
% Draw part of the circuit. You might need more than one
% draw command, depending on how you do things.
\draw
(INP) to[short,o-*,i_=$i_{ul}$] (A1)
to[R,l_=$R_1$,-*,i^>=$i_2$] (B1)
to[C,l_=$C_{E1}$,-*,i^>=$i_{e1}$] (CE1)
-- (C1)
to[C,l_=$C_1$,*-*,i<^=$i_1$] (A1)
(INN) to[short,o-] (C1)
(B1) to[I,i_<=$gi_1$,color=orange] (D1)
to[L,l_=$L_1$,color=magenta,i=$i_4$,*-*] (L1)
-- (CE1)
;
% Some additional labelling...
\node at (0,-0.5) {$u_{ul}$};
% Helper lines
% Remove the 'dashed' parameter for a normal line.
% This part uses the 'calc' library from TikZ for
% coordinate calculations.
% NOTE: The corner radius has to be adjusted manually
% if you adjust the base x and y lengths in the
% optional argument for the tikzpicture/circuitikz
% environment.
\draw[red,dashed,rounded corners=0.2cm,-latex]
($(INP) + ( 0.175,-0.5 )$)
-- ($(INP) + ( 0.175,-0.175)$)
-- ($(B1) - ( 0.175, 0.175)$)
-- ($(CE1) + (-0.175, 0.175)$)
-- ($(INN) + ( 0.175, 0.175)$)
;
\end{tikzpicture}
%\end{circuitikz}
\end{document}
语法备注
由于circuitikz
的语法确实有点简洁,对于初学者来说可能看起来比较神秘,因此有几点说明:
to[short,o-*,i_=$i_{ul}$]
short
只会画一条线(或者,顾名思义,是一条短路)。o-*
表示在起点(在本例中,在元素的左侧)画一个非填充圆,在终点画一个填充圆。请注意,如果从左到右画,这显然会被翻转。在线i_=text
中间放置一个表示电流的箭头,标记为text
,以下由于下划线,箭头会显示标签。默认情况下,标签会位于箭头上方 ( i=text
),您也可以通过 明确地将某些内容放置在箭头上方i^=text
。
to[C,l_=$C_{E1}$,-*,i^>=$i_{e1}$]
绘制一个电容器,标有$C_{E1}$
。默认情况下,标签将放在电容器的右侧(或者,对于TikZ
,是“上方”),因为在这种情况下我们从上到下绘制。我们通过在 之前放置下划线将其放在左侧=
,如上所示。还要注意,对于左侧电容器,我们也将标签放在元素的“下方”,但由于在这种情况下我们从下到上绘制,因此标签最终位于右侧。
与 相同short
,我们添加一个电流通孔i^>=$i_{e1}$
。^
将标签放在右侧(如上所述,但并非严格需要),>
指示箭头的方向,顺序^>
表示电流箭头应在电容器之后绘制(而>^
在本例中将箭头放在电容器 CE1 上方)。另请参阅这个答案。
如果你想知道这到底to[]
是什么:这是一个 TikZ 操作符。它基本上是--
路径操作符(只画一条线)的花哨版本,允许更多自定义。请参阅 PGF 手册中的第 14.13 节,其当前版本在第 157 页。