.PS
# fetcompMan.m4
cct_init

define(`elbox',`{R: box wid 4*m4_U ht 7*m4_U outlined "lightgray" thick 0.4 \
  `$1'}')
define(`mmosfet',`Q: mosfet($@) with .S at R.sw')

# The `mosfet' components
 Row1: [
movewid = 1mm__
right_
   elbox
  Q:  mosfet with .S at R.sw; {`"\tt mosfet$\;\;$"' at R.s below}
   elbox(with .w at R.e+(0.15,0))
    Q: mosfet(,,uS) with .S at R.sw; {`"\tt uS"' at R.s below}
   dx = 0.10
   foreach_(`opt',
    `elbox(with .w at R.e+(dx,0))
     Q: mosfet(,,opt) with .S at R.sw; {`"\tt 'opt`"' at R.s below}',
     D,dB,E,F,uG,dH,M,uM,dM,M1,uM2,M1Z,Q,R,dT,X)
   foreach_(`opt',
    `elbox(with .w at R.e+(dx,0))
     Q: mosfet(,,opt) with .S at R.sw; {`"\tt 'opt`"' at Q.s below}',
     K,OPy)
  ]

 Row2: [
  linewid = linewid*1.2
  Q1: mosfet(,,dGSDF)
  {"\tt `mosfet'(,{,}dGSDF)" wid 1.25 with .nw at last [].sw+(-0.2,-0.1)
    thinlines_
    arrow <- down .05 left .15 from (Q1.G.x,Q1.G.y-0.05)
    "\tt dG" rjust
    arrow <- down .10 left .30 from Q1.Channel.start+(.15,0)
    "\tt F" rjust
    arrow <- down .05 left .15 from (Q1.S.x,Q1.S.y+0.05)
    "\tt S" rjust
    arrow <- down .05 right .15 from (Q1.D.x,Q1.D.y+0.05)
    "\tt D" ljust
    thicklines_ }

  move right_ 0.5
  Q2: mosfet(,,uHSDF)
  {"\tt `$\ldots$'(,{,}uHSDF)" at last [].s+(0,-0.18) below
    thinlines_
    arrow <- down .05 left .15 from (Q2.G.x,Q2.G.y-0.05)
    "\tt uH" rjust
    thicklines_ }

  move right_ 0.5
  J: mosfet(,,dMEDSQuB,)
  {"\tt `$\ldots$'(,{,}dMEDSQuB)" at last [].s+(0,-0.05) below
    thinlines_
    arrow <- down .05 left .15 from (J.G.x,J.G.y-0.05)
    "\tt dM" rjust
    arrow <- down .13 left .30 from J.Channel.start+(.12,0)
    "\tt E" rjust
    arrow <- down .05 left .10 from J.S+(.06,0)
    "\tt Q" rjust
    arrow <- down .08 right .24 from (J.B.x,J.B.y+0.175)
    "\tt uB" ljust
    thicklines_ }

  move right_ 0.5
  J:  mosfet(,,uMEDSuB)
  {`"{\tt $\ldots$(,{,}uMEDSuB)}"' at last [].s+(0,-0.18) below
    "$G$" at last [].G rjust
    "$S$" at last [].S rjust
    "$D$" at last [].D ljust
    "$B$" at last [].B below
    }
  move right_ 0.6
  J: mosfet(,,dBSDFQM1,E) with .w at J.e+(0.5,0) 
  "$G0$" at J.G0 above rjust
  "$G1$" at J.G1 above ljust
  {"\tt $\ldots$(,{,}dBSDFQM1,E)" at last [].s below }
  J: mosfet(,,dBSDFQuM1) with .nw at J.ne+(0.4,0)
  { "$G0$" at J.G0 ljust
    "$G1$" at J.G1 rjust
   "\tt ...(,{,}dBSDFQuM1)" wid 1.25 with .n at last [].s+(0,-0.25) }
  move right_ 0.4
  Q5: mosfet(,,ZSDFdT)
  {"\tt `$\ldots$'(,{,}ZSDFdT)" at last [].s below
    thinlines_
    arrow <- down .08 left .08 from (Q5.S.x,Q5.S.y+0.12)
    "\tt Z" rjust
    arrow from last arrow.end to Q5.Channel.c+(0.05,0)
    arrow from last arrow.start to (Q5.D.x,Q5.D.y+.05)
    arrow <- down .08 right .24 from (Q5.G.x,Q5.G.y-0.02)
    "\tt dT" ljust
    thicklines_ }
  mosfet(,,SDFdT) with .w at last [].e+(0.4,0)
    {"\tt $\ldots$(,{,}SDFdT)" at last [].s+(0,-0.15) below}
  ] with .nw at last [].sw+(0,-0.20)

.PE
