circuitikz 中的供电轨

circuitikz 中的供电轨

我正在尝试绘制下面的电路,但是我在绘制与供电轨的连接时遇到了困难。我滥用了接地节点,因为它与电源连接的典型符号相同。

正如您所看到的, JFET 差分放大器

对于标记为 VSS 的节点,我可以毫无问题地使用接地节点,但对于标记为 VDD 的节点,我必须将其反转,方法是将 y 轴刻度设置为 -1。这会产生反转相关标签的副作用:

(0, 10) node [sground, yscale = -1] () {$V_{DD}$}

如何在不反转文本的情况下实现此目的?


完整来源如下。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% JFET differential Amplifier
%

\documentclass[10pt, a4paper] {article}
\usepackage[siunitx, americanvoltages] {circuitikz}

\begin{document}
\begin{tikzpicture}

\draw[color = black, thick]

(0, 10) node [sground, yscale = -1] () {$V_{DD}$}
(0, 8) to [R, l = $R_{D1}$] (0, 10) {}
(0, 8) to [short, *-o] (1, 8) {}
(0, 7) to [Tnjfet, l = $Q_1$] (0, 8) {}
(-0.9, 7.23) to [short, -o] (-1.5, 7.23) {}
(0, 7) to [short] (0, 6)

(4, 10) node [sground, yscale = -1] () {$V_{DD}$}
(4, 8) to [R, l = $R_{D2}$] (4, 10) {}
(4, 8) to [short, *-o] (3, 8) {}
(4, 7) to [Tnjfet, mirror, l = $Q_2$] (4, 8) {}
(4.9, 7.23) to [short, -o] (5.5, 7.23) {}
(4, 7) to [short] (4, 6)    

(0, 6) to [short] (4, 6)
(2, 6) node [circ] () {}
(2, 6) to [R, l = $R_{SS}$] (2, 4)
(2, 4) node [sground] () {$V_{SS}$}

;

\end{tikzpicture}
\end{document}

答案1

发生这种情况的原因是ground节点及其变体实际上并非设计为将节点文本锚定在其上:除了倒置的文本外,在sground示例中的倒置和非倒置节点中,与其他节点文本周围的间距相比,间距都不太理想。请注意,在包手册中,ground(或其变体)的每次使用都带有一个空节点文本({})。

我始终会将节点文本留空,ground然后在同一位置简单地添加另一个节点(向rightleft或任何其他适当的方向),这样就可以更好地与电路分开。

另外,我建议不要sground,yscale=-1对每个内容都进行输入,而是在一个地方定义如下内容:

\tikzset{srail/.style={sground,yscale=-1}}

这样,您就可以简单地srail对所有这些组件使用,如果您以后改变了对该组件样式的想法,则更容易更新。(您甚至可以改变主意并决定使用此方法声明一个全新的形状。)

以下是我处理这个问题的方法:

\documentclass[tikz]{standalone}
\usepackage[siunitx, americanvoltages] {circuitikz}
\tikzset{srail/.style={sground,yscale=-1}}

\begin{document}
\begin{tikzpicture} \draw
  node [srail] {} 
  node[right] {$V_{DD}$}
  to[R=1.8<\kilo\ohm>] ++(0,-2)
  node [sground] {}
  node[right] {$V_{SS}$}
;\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以设置一个名为的样式sgroundr并对其应用旋转,然后使用标签代替节点文本。旋转不会影响它们。

输出

图1

代码

\documentclass[margin=10pt]{standalone}
\usepackage[americanvoltages]{circuitikz}
\usepackage{siunitx}

\tikzset{
    sgroundr/.style={sground, rotate=180},
}

\begin{document}
\begin{tikzpicture}

\draw[color = black, thick]

(0, 10) node [sgroundr, label=right:$V_{DD}$] {}
(0, 8) to [R, l = $R_{D1}$] (0, 10) {}
(0, 8) to [short, *-o] (1, 8) {}
(0, 7) to [Tnjfet, l = $Q_1$] (0, 8) {}
(-0.9, 7.23) to [short, -o] (-1.5, 7.23) {}
(0, 7) to [short] (0, 6)

(4, 10) node [sgroundr, label=right:$V_{DD}$] {}
(4, 8) to [R, l = $R_{D2}$] (4, 10) {}
(4, 8) to [short, *-o] (3, 8) {}
(4, 7) to [Tnjfet, mirror, l = $Q_2$] (4, 8) {}
(4.9, 7.23) to [short, -o] (5.5, 7.23) {}
(4, 7) to [short] (4, 6)    

(0, 6) to [short] (4, 6)
(2, 6) node [circ] () {}
(2, 6) to [R, l = $R_{SS}$] (2, 4)
(2, 4) node [sground] () {$V_{SS}$}
;
\end{tikzpicture}
\end{document}

相关内容