![如何使用 circuitikz 沿某个方向固定晶体管](https://linux22.com/image/370050/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20circuitikz%20%E6%B2%BF%E6%9F%90%E4%B8%AA%E6%96%B9%E5%90%91%E5%9B%BA%E5%AE%9A%E6%99%B6%E4%BD%93%E7%AE%A1.png)
我正在绘制一个带有偏置晶体管的简单 nmos 差分对,并且我想将偏置晶体管的漏极连接到差分对源极的中点。
\documentclass[margin=10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[siunitx,arrowmos]{circuitikz}
\usetikzlibrary{calc}
\begin{document}
\begin{circuitikz}[american resistors]
\ctikzset{bipoles/length=1cm}
\draw[color=black,thick]
(0,3) node[nmos] (dpair1) {}
(2,3) node[nmos, xscale=-1] (dpair2) {}
($(dpair1.S)!0.5!(dpair2.S)$) node [] (midsource) {}
(dpair1.S) to[short,-*] (midsource) to[short,-] (dpair2.S)
([yshift=-1.5cm]midsource) to[Tnmos, n=nbias] ([yshift=-1cm]midsource)
;
\draw[color=black,thick]
(4,3) node[nmos] (dpair1) {}
(6,3) node[nmos, xscale=-1] (dpair2) {}
($(dpair1.S)!0.5!(dpair2.S)$) node [] (midsource) {}
(dpair1.S) to[short,-*] (midsource) to[short,-] (dpair2.S)
([yshift=-0.5cm]midsource) node[nmos, anchor=north] () {}
;
\draw[color=black,thick]
(8,3) node[nmos] (dpair1) {}
(10,3) node[nmos, xscale=-1] (dpair2) {}
($(dpair1.S)!0.5!(dpair2.S)$) node [] (midsource) {}
(dpair1.S) to[short,-*] (midsource) to[short,-] (dpair2.S)
([yshift=-1.5cm]midsource) to[Tnmos, n=nbias,mirror] ([yshift=-1cm]midsource)
;
\end{circuitikz}
\end{document}
我无法实现这一点,如代码示例所示。我希望能够相对于差分对源的位置而不是使用绝对坐标来做到这一点。当我使用节点函数anchor=north
(中间的示例)时,它不会将锚点(漏极)与起点对齐,而是与晶体管的中心对齐,使其偏移晶体管宽度的一半。在使用语法的其他情况下(node1) to[nmos] (node2)
,我无法仅使用镜像命令并将(节点 1)交换为(节点 2)(右侧和左侧的示例)使其正确翻转/镜像。我知道还有xscale=-1
和yscale=-1
命令,但是当我输入它们时,它会将晶体管发送到纸张的远角,似乎不起作用。有什么建议吗?
答案1
也许,你想要这个?
\documentclass[margin=10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[siunitx,arrowmos]{circuitikz}
\usetikzlibrary{calc}
\begin{document}
\begin{circuitikz}[american resistors]
\ctikzset{bipoles/length=1cm}
\draw[color=black,thick]
(0,0) node[nmos] (dpair1) {}
(2,0) node[nmos, xscale=-1] (dpair2) {}
($(dpair1.S)!0.5!(dpair2.S)$) node [] (midsource) {}
(dpair1.S) to[short,-*] (midsource) to[short,-] (dpair2.S)
(midsource) node[nmos, anchor=D] {}
;
\end{circuitikz}
\end{document}
看circuitikz
文档第 42 页(或circuitikz
2017/05.28 版文档 v 0.8.3 中的第 44-49 页)了解其他锚点。