% Diese Datei enth"alt nur elektrische Symbole, die zur Erstellung
% eines Schaltplans genutzt werden k"onnen.  Dazu ist das File mit 
% \input{e_symbol} in das Dokument einzubinden.
%
% Es  gibt die  Zeichen  \hwiderstand{x}{y},  \vwiderstand{x}{y}, 
% \hkondensator{x}{y},     \vkondensator{x}{y},    \hspule{x}{y}, 
% \vspule{x}{y}, \masse{x}{y}, \biptrans{x}{y}{dir}{typ}{invers}, 
% \fet{x}{y}{dir}{typ}, \diode{x}{y}{dir}, \zdiode{x}{y}{dir}.

\typeout{} % 60 * / Zeile(10.Spalte--70.Spalte
\typeout{*************************************************************}
\typeout{* e_symbol.tex enthaelt Befehlsergaenzungen zum Erstellen__ *}
\typeout{* von Schaltplaenen._______________________________________ *}
\typeout{* Dieter Jurzitza, 30.07.92 0721/691909____________________ *}
\typeout{*************************************************************}
\typeout{}

% horizontal angeordneter Widerstand der L"ange 2 Einheiten. #1(x) 
% und #2(y) geben den linken  Drahtanfang an.  Die Dicke  betr"agt 
% 0.4 Einheiten.

\newcommand{\hwiderstand}[2]{%
     \put(#1,#2){%
          \line(1,0){0.5}
          \put(0,-0.2){\line(0,1){0.4}}
          \put(0,-0.2){\line(1,0){1}}
          \put(0,0.2){\line(1,0){1}}
          \put(1,-0.2){\line(0,1){0.4}}
          \put(1,0){\line(1,0){0.5}}
          }%
     }%

% vertikal  angeordneter  Widerstand der L"ange 2 Einheiten. #1(x) 
% und #2(y) geben den unteren  Drahtanfang an.  Die Dicke betr"agt 
% 0.4 Einheiten.

\newcommand{\vwiderstand}[2]{%
     \put(#1,#2){%
          \line(0,1){0.5}
          \put(-0.2,0.5){\line(1,0){0.4}}
          \put(-0.2,0.5){\line(0,1){1}}
          \put(0.2,0.5){\line(0,1){1}}
          \put(-0.2,1.5){\line(1,0){0.4}}
          \put(0,1.5){\line(0,1){0.5}}
          }%
     }%

% horizontal angeordneter Kondensator der L"ange 1 Einheit.  #1(x) 
% und #2(y) geben den linken Drahtanfang an.  Die Dicke betr"agt 1 
% Einheit.

\newcommand{\hkondensator}[2]{%
     \put(#1,#2){%
          \line(1,0){0.4}
          \put(0,-0.5){\line(0,1){1}}
          \put(0.2,-0.5){\line(0,1){1}}
          \put(0.2,0){\line(1,0){0.4}}
          }%
     }%

% vertikal angeordneter  Kondensator der  L"ange 1 Einheit.  #1(x) 
% und #2(y) geben den unteren Drahtanfang an. Die Dicke betr"agt 1 
% Einheit.

\newcommand{\vkondensator}[2]{%
     \put(#1,#2){%
          \line(0,1){0.4}
          \put(-0.5,0.4){\line(1,0){1}}
          \put(-0.5,0.6){\line(1,0){1}}
          \put(0,0.6){\line(0,1){0.4}}
          }%
     }%


% horizontal  angeordnete  Spule  der  L"ange  3  Einheiten.  #1(x) 
% und #2(y) geben den linken Drahtanfang an. Die Dicke betr"agt 0.5 
% Einheiten.

\newcommand{\hspule}[2]{%
     \put(#1,#2){%
          \line(1,0){0.5}
          \put(0.25,0){\oval(0.5,0.5)[t]}          
          \put(0.75,0){\oval(0.5,0.5)[t]}          
          \put(1.25,0){\oval(0.5,0.5)[t]}          
          \put(1.75,0){\oval(0.5,0.5)[t]}          
          \put(2,0){\line(1,0){0.5}}
          }%
     }%

% vertikal    angeordnete  Spule  der  L"ange  3  Einheiten.  #1(x) 
% und #2(y) geben den linken Drahtanfang an. Die Dicke betr"agt 0.5 
% Einheiten.

\newcommand{\vspule}[2]{%
     \put(#1,#2){%
          \line(0,1){0.5}
          \put(0,0.75){\oval(0.5,0.5)[l]}          
          \put(0,1.25){\oval(0.5,0.5)[l]}          
          \put(0,1.75){\oval(0.5,0.5)[l]}          
          \put(0,2.25){\oval(0.5,0.5)[l]}          
          \put(0,2.5){\line(0,1){0.5}}
          }%
     }%

%  horizontaler  Strich der L"ange 0.5 Einheiten,  symmetrisch  zu 
%  #1(x) und #2(y) angeordnet.

\newcommand{\masse}[2]{
     \put(#1,#2){%
          \put(-0.25,0){\line(1,0){0.5}}
          }%
     }%

%  npn -- oder pnp Transistoren,  nach links,  nach rechts,  nach   
%  oben  oder  nach  unten gerichtet.  Die  Ausrichtung  ist  vom   
%  "ubergebenen  Parameter #3,  der Typ von Parameter #4 abh"angig. 
%  Zul"assige Werte f"ur #3:  o(ben),  u(nten),  (r)echts, (l)inks. 
%  Zul"assige Werte f"ur #4:  n(pn) oder p(np). #1 ergibt die X, #2 
%  die Y- Koordinate.  Die Boxgr"o"se betr"agt 1*1.5,  Basisanschlu"s 
%  bei  (0,0.75)(r),  (1,0.75)(l),  (0.75,0)(o),  (0.75,1.0)(u). 
%  Parameter  #5  vertauscht  die Anschl"usse  f"ur  Kollektor  und 
%  Emitter,  so  da"s  eine beliebige Orientierung  des  Elementes 
%  m"oglich  ist.  Es gilt:  Normal r:  Emitter rechts  unten,  l: 
%  Emitter links unten, o: Emitter rechts oben, u: Emitter rechts 
%  unten.
%  Invers : jeweils oben und unten vertauscht.

\newcommand{\biptrans}[5]%
     {%
     \let\transhlp=*% Zustandsspeicher f"ur Fehlermeldungen
     \if#3r% Transistor nach rechts....
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \put(0.5,0.25){\line(0,1){1.0}}% Basisbalken...
               \put(0,0.75){\line(1,0){0.5}}% Basisanschlu"s...
               %   
               \if#5i% Wenn Schalter 'invers'....
                    {%
                    \if#4n% und n(pn)
                         {%
                         \put(0.5,1.0){\vector(2,1){0.5}}%
                         }% Emitter rechts oben!
                    \else%  sonst...
                         {% und p(np)
                         \put(1.0,1.25){\vector(-2,-1){0.5}}%
                         }% Emitter rechts oben!
                    \fi%
                    \put(0.5,0.5){\line(2,-1){0.5}}%
                    }% Kollektor rechts unten!
               \else% Schalter 'normal'....
                    {%
                    \if#4n% und n(pn)
                         {%
                         \put(0.5,0.5){\vector(2,-1){0.5}}%
                         }% Emitter rechts unten!
                    \else%
                         {% und p(np)
                         \put(1.0,0.25){\vector(-2,1){0.5}}%
                         }% Emitter rechts unten!
                    \fi%
                    \put(0.5,1.0){\line(2,1){0.5}}%
                    }% Kollektor rechts oben!
               \fi%                              
               % Anschlu"s f"ur Kollektor und Emitter....
               \put(1.0,0.25){\line(0,-1){0.25}}%
               \put(1,1.25){\line(0,1){0.25}}%
               }%
          }%
     \fi%
     %
     \if#3l% Transistor nach links...
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \put(0.5,0.25){\line(0,1){1.0}}% Basisbalken..
               \put(0.5,0.75){\line(1,0){0.5}}% Basisanschlu"s...
               %
               \if#5i% Wenn Schalter 'invers'...
                    {%
                    \if#4n% und n(pn)...
                         {%
                         \put(0.5,1.0){\vector(-2,1){0.5}}%
                         }% Emitter links oben!
                    \else%
                         {% und p(np)...
                         \put(0.0,1.25){\vector(2,-1){0.5}}%
                         }% Emitter links oben!
                    \fi%
                    \put(0.5,0.5){\line(-2,-1){0.5}}%
                    }% Kollektor links unten!
               \else% Schalter 'normal'...
                    {%
                    \if#4n%
                         {% und n(pn)...
                         \put(0.5,0.5){\vector(-2,-1){0.5}}%
                         }% Emitter links unten!
                    \else%
                         {% und p(np)...
                         \put(0,0.25){\vector(2,1){0.5}}%
                         }% Emitter links unten!
                    \fi%
                    \put(0.5,1.0){\line(-2,1){0.5}}%
                    }% Kollektor links oben!
               \fi%
               % Anschlu"s f"ur Kollektor und Emitter...
               \put(0,0.25){\line(0,-1){0.25}}%
               \put(0,1.25){\line(0,1){0.25}}%
               }%     
          }%     
     \fi%
     %
     \if#3o% Transistor nach oben...
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \put(0.25,0.5){\line(1,0){1.0}}% Basisbalken...
               \put(0.75,0){\line(0,1){0.5}}% Basisanschlu"s...
               %
               \if#5i% Schalter 'invers'...
                    {%
                    \if#4n% und n(pn)...
                         {%
                         \put(0.5,0.5){\vector(-1,2){0.25}}%
                         }% Emitter links oben!
                    \else%
                         {% und p(np)...
                         \put(0.25,1.0){\vector(1,-2){0.25}}%
                         }% Emitter links oben!
                    \fi%
                    \put(1.0,0.5){\line(1,2){0.25}}%
                    }% Kollektor rechts oben!
               \else% Schalter 'normal...
                    {%
                    \if#4n% und n(pn)...
                         {%
                         \put(1.0,0.5){\vector(1,2){0.25}}%
                         }% Emitter rechts oben!
                    \else%
                         {% und p(np)...
                         \put(1.25,1.0){\vector(-1,-2){0.25}}%
                         }% Emitter rechts oben!
                    \fi%
                    \put(0.5,0.5){\line(-1,2){0.25}}%
                    }% Kollektor links oben!
               \fi%
               % Anschlu"s f"ur Kollektor und Emitter...
               \put(1.25,1.0){\line(1,0){0.25}}%
               \put(0,1){\line(1,0){0.25}}%
               }%     
          }%     
     \fi%
     %
     \if#3u% Transistor nach unten...
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \put(0.25,0.5){\line(1,0){1.0}}% Basisbalken...
               \put(0.75,0.5){\line(0,1){0.5}}% Basisanschlu"s...
               %
               \if#5i% Schalter 'invers'...
                    {%
                    \if#4n% und n(pn)...
                         {%
                         \put(0.5,0.5){\vector(-1,-2){0.25}}%
                         }% Emitter links unten!
                    \else%
                         {% und p(np)...
                         \put(0.25,0){\vector(1,2){0.25}}%
                         }% Emitter links unten!
                    \fi%
                    \put(1.0,0.5){\line(1,-2){0.25}}%
                    }% Kollektor rechts unten!
               \else%
                    {% Schalter 'normal'...
                    \if#4n% und n(pn)...
                         {%
                         \put(1.0,0.5){\vector(1,-2){0.25}}%
                         }% Emitter rechts unten!
                    \else%
                         {% und p(np)...
                         \put(1.25,0){\vector(-1,2){0.25}}%
                         }% Emitter rechts unten! 
                    \fi%
                    \put(0.5,0.5){\line(-1,-2){0.25}}%
                    }% Kollektor links unten!
               \fi%
               % Anschlu"s f"ur Kollektor und Emitter!
               \put(1.25,0){\line(1,0){0.25}}% 
               \put(0,0){\line(1,0){0.25}}%
               }%     
          }%     
     \fi%
     %
     \if\transhlp*%
          {%
          \typeout{}%
          \typeout{Falscher Parameter!}%
          \typeout{Parameter 3 kann die Werte r(echts), l(inks), o(ben), u(unten) annehmen.}%
          \typeout{Parameter  4 sollte die Werte n(pn) oder p(np) annehmen.}%
          \typeout{Parameter  5  sollte  i(nvers)  oder  n(ormal) sein}%
          \typeout{Gewaehlt: #1 #2 #3 #4 #5}%
          \typeout{}%
          }%
     \fi
     }%

%  p- oder  n-Kanal  Feldeffekttransistoren,   nach  links,  nach 
%  rechts, nach   oben oder nach unten gerichtet. Die Ausrichtung 
%  ist  vom   "ubergebenen Parameter #3,  der Typ von Parameter #4 
%  abh"angig.  Zul"assige Werte f"ur #3:  o(ben), u(nten), (r)echts, 
%  (l)inks.  Zul"assige Werte f"ur #4:  n(pn) oder p(np). #1 ergibt 
%  die  X,  #2  die  Y- Koordinate.  Die  Boxgr"o"se  betr"agt  1*1, 
%  Gateanschlu"s   bei   (0,0.5)(r),    (1,0.5)(l),    (0.5,0)(o), 
%  (0.5,1.0)(u).

\newcommand{\fet}[4]%
     {%
     \let\transhlp=*
     \if#3r%
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \if#4n%
                    {%
                    \put(0,0.5){\vector(1,0){0.5}}%
                    }%
               \else%
                    {%
                    \put(0.5,0.5){\vector(-1,0){0.5}}%
                    }%
               \fi%
               \put(0.5,0){\line(0,1){1.0}}%
               %
               \put(0.5,0.25){\line(1,0){0.5}}%
               \put(0.5,0.75){\line(1,0){0.5}}%
               %
               \put(1.0,0.25){\line(0,-1){0.25}}%
               \put(1.0,0.75){\line(0,1){0.25}}%
               }%
          }%
     \fi%

     \if#3l%
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \if#4n%
                    {%
                    \put(1.0,0.5){\vector(-1,0){0.5}}%
                    }%
               \else%
                    {%
                    \put(0.5,0.5){\vector(1,0){0.5}}%
                    }%
               \fi%
               \put(0.5,0){\line(0,1){1.0}}%
               %
               \put(0.5,0.25){\line(-1,0){0.5}}%
               \put(0.5,0.75){\line(-1,0){0.5}}%
               %
               \put(0,0.25){\line(0,-1){0.25}}%
               \put(0,0.75){\line(0,1){0.25}}%
               }%     
          }%     
     \fi%

     \if#3u%
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \if#4n%
                    {%
                    \put(0.5,1.0){\vector(0,-1){0.5}}%
                    }%
               \else%
                    {%
                    \put(0.5,0.5){\vector(0,1){0.5}}%
                    }%
               \fi%
               \put(0,0.5){\line(1,0){1.0}}%
               %
               \put(0.25,0.5){\line(0,-1){0.5}}%
               \put(0.75,0.5){\line(0,-1){0.5}}%
               %
               \put(0,0){\line(1,0){0.25}}%
               \put(0.75,0){\line(1,0){0.25}}%
               }%     
          }%     
     \fi%

     \if#3o%
          {%
          \put(#1,#2)%
               {%
               \global\let\transhlp=t%
               \if#4n%
                    {%
                    \put(0.5,0){\vector(0,1){0.5}}%
                    }%
               \else%
                    {%
                    \put(0.5,0.5){\vector(0,-1){0.5}}%
                    }%
               \fi%
               \put(0,0.5){\line(1,0){1.0}}%
               %
               \put(0.25,0.5){\line(0,1){0.5}}%
               \put(0.75,0.5){\line(0,1){0.5}}%
               %
               \put(0,1.0){\line(1,0){0.25}}%
               \put(0.75,1.0){\line(1,0){0.25}}%
               }%     
          }%     
     \fi%

     \if\transhlp*%
          {%
          \typeout{}%
          \typeout{Falscher Parameter!}%
          \typeout{Parameter 3 kann die Werte r, l, o, u annehmen, nicht: #3 !}%
          \typeout{}%
          }%
     \fi
     }%

%  Zenerdiode  in vier Richtungen.  Gemeinsam ist die Anode.  Die 
%  L"ange betr"agt 1.5.  Die Richtung wird mit #3 "ubergeben. Analog 
%  \biptrans und \fet.

\newcommand{\zdiode}[3]%
     {%
     \if#3o%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(0,1){1.5}}%
               %
               \put(-0.25,0.5){\line(1,0){0.5}}%
               \put(-0.25,1.0){\line(1,0){0.5}}%
               \put(0.25,1.0){\line(0,-1){0.15}}%
               %          
               \put(-0.25,0.5){\line(1,2){0.25}}%
               \put(0,1.0){\line(1,-2){0.25}}%
               }%
          }%
     \fi

     \if#3u%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(0,-1){1.5}}%
               %
               \put(-0.25,-1.0){\line(1,0){0.5}}%
               \put(-0.25,-0.5){\line(1,0){0.5}}%
               \put(-0.25,-1){\line(0,1){0.15}}%
               %          
               \put(-0.25,-0.5){\line(1,-2){0.25}}%
               \put(0.25,-0.5){\line(-1,-2){0.25}}%
               }%
          }%
     \fi

     \if#3r%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(1,0){1.5}}%
               %
               \put(1.0,0.25){\line(0,-1){0.5}}%
               \put(0.5,0.25){\line(0,-1){0.5}}%
               \put(1.0,-0.25){\line(-1,0){0.15}}%
               %          
               \put(0.5,0.25){\line(2,-1){0.5}}%
               \put(0.5,-0.25){\line(2,1){0.5}}%
               }%
          }%
     \fi

     \if#3l%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(-1,0){1.5}}%
               %
               \put(-1.0,0.25){\line(0,-1){0.5}}%
               \put(-0.5,0.25){\line(0,-1){0.5}}%
               \put(-1.0,0.25){\line(1,0){0.15}}%
               %          
               \put(-0.5,0.25){\line(-2,-1){0.5}}%
               \put(-0.5,-0.25){\line(-2,1){0.5}}%
               }%
          }%
     \fi
     }%

%  Diode in vier Richtungen.  Gemeinsam ist die Anode.  Die L"ange 
%  betr"agt  1.5.  Die  Richtung  wird mit  #3  "ubergeben.  Analog 
%  \biptrans und \fet.

\newcommand{\diode}[3]%
     {%
     \if#3o%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(0,1){1.5}}%
               %
               \put(-0.25,0.5){\line(1,0){0.5}}%
               \put(-0.25,1.0){\line(1,0){0.5}}%
               %          
               \put(-0.25,0.5){\line(1,2){0.25}}%
               \put(0,1.0){\line(1,-2){0.25}}%
               }%
          }%
     \fi

     \if#3u%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(0,-1){1.5}}%
               %
               \put(-0.25,-1.0){\line(1,0){0.5}}%
               \put(-0.25,-0.5){\line(1,0){0.5}}%
               %          
               \put(-0.25,-0.5){\line(1,-2){0.25}}%
               \put(0.25,-0.5){\line(-1,-2){0.25}}%
               }%
          }%
     \fi

     \if#3r%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(1,0){1.5}}%
               %
               \put(1.0,0.25){\line(0,-1){0.5}}%
               \put(0.5,0.25){\line(0,-1){0.5}}%
               %          
               \put(0.5,0.25){\line(2,-1){0.5}}%
               \put(0.5,-0.25){\line(2,1){0.5}}%
               }%
          }%
     \fi

     \if#3l%
          {%
          \put(#1,#2)%
               {%
               \put(0,0){\line(-1,0){1.5}}%
               %
               \put(-1.0,0.25){\line(0,-1){0.5}}%
               \put(-0.5,0.25){\line(0,-1){0.5}}%
               %          
               \put(-0.5,0.25){\line(-2,-1){0.5}}%
               \put(-0.5,-0.25){\line(-2,1){0.5}}%
               }%
          }%
     \fi
     }%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%% ENDE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
