LaTeX画电路图之CircuiTikZ

有一次做PPT的时候需要插入一张简单的电路图。

我懒得为此在自己电脑上安装一款EDA软件(说的好像买得起license一样)。
盯着桌面图标发呆时隐约想起可以画分子结构式的LaTeX好像也可以画电路原理图。
Google搜索”latex circuit”,CircuiTikZ这个宏包占据了结果的第一页。
于是看了会ShareLaTeX上的教程,好像不是很难的样子,图的效果也挺顺眼,让我回忆起那些年用过的电路教材。决定就是她了。

大致浏览了一下manual,然后跳到Examples那节,照猫画虎,一会儿就画好啦。最终效果长这样。

Equivalent Circuit of RPI Poly-Si TFT Model

使用的LaTeX代码如下。

1
2
3
4
5
6
7
8
9
10
11
12
\documentclass{standalone}
\usepackage[american,smartlabels]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) to [C=$C_{gs}$] (0,1.5) to [R=$R_{sx}$] (0,4) --
(4,4) to [R=$R_{dx}$] (4,1.5) to [C=$C_{gd}$] (4,0);
\draw (-3,0) node [anchor=east] {S} to [R, l_=$R_{s}$, o-*]
(0,0) to [I<=$I_{ds}$, *-*] (4,0)
to [R, l_=$R_{d}$, *-o] (7,0) node [anchor=west] {D};
\draw (2,4) to [short, *-o] (2,5) node [anchor=south] {G};
\end{circuitikz}
\end{document}

和TikZ的语法相似,用坐标描述点的位置,用导线连接电阻、电容、电流源等元件。
代码中的anchor用于标注外部连接。

用XeLaTeX编译得到PDF文件,然后用Inkscape转换成其他矢量图形格式比如SVG或EMF。
好消息是Office 2016支持插入SVG 图像了。