Existe alguma possibilidade de adicionar rótulos a cada elemento do transistor MOS em um determinado local [ ($(M1.G)+(1.3,-0.2)$) node [below] {$M_1$}
] usando macros como \lbl{1}
, para que eu não precise adicionar cada vez o rótulo com números diferentes como M1, M2...
\begin{figure}[H]
\centering
\begin{circuitikz}[scale=1]
\ctikzset{tripoles/mos style/arrows}
\def\Ba{2,0.5}
\def\lbl{1.3,-0.2}
\draw
(\Ba) node [nmos] (M1) {} ($(M1.G)+(\lbl)$) node [below] {$M_1$}
(M1.S) node [ground] {}
($(\Ba)+(0,2)$) node [nmos] (M2) {}($(M2.G)+(1.3,-0.2)$) node [below] {$M_2$}
(M1.D) --(M2.S)
(M1.G) node[circ]{}node[left]{$V_B$}
(M2.G) node[circ]{}node[left]{$V_{in}$}
($(M1.D)+(0,0.25)$)--($(M1.D)+(1,0.25)$)node[circ]{$V_{out}$}
(M2.D) node [rground,yscale=-1] (vdd){} ;
\end{circuitikz}
\caption{\Common drain amplifier.}
\end{figure}
Responder1
Você pode definir, por exemplo, a abreviatura
\newcommand\mynmos[1]{node [nmos] (M#1) {} ($(M#1.G)+(\lbl)$) node [below] {$M_{#1}$}}
e usá-lo como
\draw
(\Ba) \mynmos{1}
(M1.S) node [ground] {}
($(\Ba)+(0,2)$) \mynmos{2}
(veja abaixo o código completo).
Você também pode introduzir uma macro apenas para o rótulo; neste caso você não pode chamá-lo \lbl
porque já usa esse nome.
\newcommand\lblnmos[1]{($(M#1.G)+(\lbl)$) node [below] {$M_{#1}$}}
...
\draw
(\Ba) node [nmos] (M1) {} \lblnmos{1}
(M1.S) node [ground] {}
($(\Ba)+(0,2)$) node [nmos] (M2) {} \lblnmos{2}
\documentclass{article}
\usepackage{circuitikz}
\begin{document}
\newcommand\mynmos[1]{node [nmos] (M#1) {} ($(M#1.G)+(\lbl)$) node [below] {$M_{#1}$}}
\begin{circuitikz}[scale=1]
\ctikzset{tripoles/mos style/arrows}
\def\Ba{2,0.5}
\def\lbl{1.3,-0.2}
\draw
(\Ba) \mynmos{1}
(M1.S) node [ground] {}
($(\Ba)+(0,2)$) \mynmos{2}
(M1.D) --(M2.S)
(M1.G) node[circ]{}node[left]{$V_B$}
(M2.G) node[circ]{}node[left]{$V_{in}$}
($(M1.D)+(0,0.25)$)--($(M1.D)+(1,0.25)$)node[circ]{$V_{out}$}
(M2.D) node [rground,yscale=-1] (vdd){} ;
\end{circuitikz}
\end{document}