summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/circ
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/circ
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/circ')
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cibimos.mf261
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cicirc.mf439
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cidiod.mf108
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cioptic.mf539
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/ciphysic.mf237
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cirest.mf740
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cisym.mf181
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/ciwidko.mf160
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/csym.mf499
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/defcirc.mf160
10 files changed, 3324 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/circ/cibimos.mf b/Master/texmf-dist/fonts/source/public/circ/cibimos.mf
new file mode 100644
index 00000000000..e4a6d4c9ada
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cibimos.mf
@@ -0,0 +1,261 @@
+%%
+%% This is file `cibimos.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csybimos')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+font_identifier:="cibimos";
+
+string optionname; optionname:="";
+
+input defcirc.mf;
+
+input csym;
+designsize:=1lLE#;
+
+def mosfet = % ok
+ z0=(0,0);
+ x1=x2=x3=x4;
+ y2-y1=mos_SD;
+ y4-y3=mos_sd;
+ .5[z2,z1]=.5[z4,z3];
+ y6=y4; y7=y3;
+ x4-x6=x3-x7;
+ .5[z8,z9]=.5[z6,z7]=z5;
+ x9=x8;
+ y8-y6=mos_soSD;
+ x10=x11;
+ x0+mos_Gsub=x10+mos_ox=x7;
+ x1-x0=mos_GSx;
+ y0=y10=y1+mos_GSy;
+ y6-y11=y10-y7;
+ z12=.5[z1,z2];
+ z6=.5[z13,z8];
+ z7=.5[z14,z9];
+ z15-z16=z8-z13;
+ z5=.5[z15,z16];
+ pickup pencircle scaled mos_rad;
+ drawdot round(z3);
+ pickup pensquare scaled normalline;
+ draw z1--z3--z7;
+ draw z2--z4--z6;
+ draw z0--z10--z11;
+ draw z5--z12--z3;
+ pickup pensquare scaled thickline;
+enddef;
+
+def mosfet_V = % ok
+ mosfet;
+ draw z8--z9;
+enddef;
+
+def mosfet_A = % ok
+ mosfet;
+ draw z8--z13;
+ draw z9--z14;
+ draw z15--z16;
+enddef;
+
+def fet = % ok
+ z0=(0,0);
+ z1=z0+(fet_Gsub,0);
+ y2=y1;
+ x2=x3=x4=x0+fet_GSx;
+ y3=y2-fet_GSy;
+ z2-z3=z4-z5;
+ y4-y3=fet_SD;
+ y6=y5;
+ x1=x6;
+ x8=x7;
+ y8=y1-fet_soSD;
+ .5[z4,z3]=.5[z5,z2];
+ .5[z7,z8]=.5[z1,z6];
+ z9=z1-(fet_sarr+tri_lt,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3;
+ draw z6--z5--z4;
+ pickup pensquare scaled thickline;
+ draw z7--z8;
+enddef;
+
+def transistor_without_basis = % "uberarbeiten
+ numeric pl;
+ pl:=.5(tst_ht-tst_iht);
+ z1-z2=(0,tst_iht);
+ z0=.5[z1,z2];
+ z3=tst_fac[z0,z1];
+ z4=tst_fac[z0,z2];
+ z5=z1+(tst_wd,0);
+ z6=z2+(tst_wd,0);
+ z7=z5+(0,pl);
+ z8=z6+(0,-pl);
+ z9=tst_dis[z4,z6];
+ pickup pensquare scaled normalline;
+ draw z1--z2;
+ draw z3--z5--z7;
+ draw z4--z6--z8;
+ pickup pencircle scaled thinline;
+ triangle(z9,tst_rad,tri_phi,angle(z6-z4));
+enddef;
+
+def npn_no_basis = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=-tri_lt;
+ tst_dis:=npn_dis;
+ z0=(0,0);
+ transistor_without_basis;
+enddef;
+
+def npn_photo = % "uberarbeiten
+numeric pl;
+ z0=(0,0);
+ pl:=.5(tst_ht-tst_iht);
+ y0=y1=y2=y3;
+ x1=x0+tst_ht;
+ x2-x0=x1-x3=pl;
+ y5=y4=y6=y7=y8=y0+tst_wd;
+ x5-x6=tst_iht;
+ x4=.5[x5,x6]=.5[x0,x1];
+ x7=tst_fac[x4,x5];
+ x8=tst_fac[x4,x6];
+ z9=tst_dis[z2,z8];
+ pickup pensquare scaled normalline;
+ draw z0--z2--z8--z7--z3--z1;
+ draw z5--z6;
+ pickup pencircle scaled thinline;
+ triangle(z9,tst_rad,tri_phi,angle(z8-z2));
+enddef;
+
+def pnp_no_basis = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=tri_lt;
+ tst_dis:=pnp_dis;
+ z0=(0,0);
+ transistor_without_basis;
+enddef;
+
+def npn = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=-tri_lt;
+ tst_dis:=npn_dis;
+ z0=(tst_wd,0);
+ z20=(0,0);
+ transistor_without_basis;
+ pickup pensquare scaled normalline;
+ draw z20--z0;
+enddef;
+
+def pnp = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=tri_lt;
+ tst_dis:=pnp_dis;
+ z0=(tst_wd,0);
+ z20=(0,0);
+ transistor_without_basis;
+ pickup pensquare scaled normalline;
+ draw z20--z0;
+enddef;
+
+"Transistor NPN ohne Basis";
+eightchars(0)
+ (npn_no_basis)
+ (tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor PNP ohne Basis";
+eightchars(8)
+ (pnp_no_basis)
+ (tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor NPN";
+eightchars(16)
+ (npn)
+ (tst_wd#+tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor PNP";
+eightchars(24)
+ (pnp)
+ (tst_wd#+tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"FET n-Kanal";
+eightchars(32)
+ (fet;
+ pickup pencircle scaled thinline;
+ triangle(z1,tri_lt,tri_phi,180);
+ )
+ (fet_GSx#,fet_GSy#,fet_SD#-fet_GSy#,0);
+
+"FET p-Kanal";
+eightchars(40)
+ (fet;
+ pickup pencircle scaled thinline;
+ triangle(z9,tri_lt,tri_phi,0);
+ )
+ (fet_GSx#,fet_GSy#,fet_SD#-fet_GSy#,0);
+
+"MOSFET n-Kanal V";
+eightchars(48)
+ (mosfet_V;
+ pickup pencircle scaled thinline;
+ triangle(z5,tri_lt,tri_phi,0);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET p-Kanal V";
+eightchars(56)
+ (mosfet_V;
+ pickup pencircle scaled thinline;
+ triangle(z12,tri_lt,tri_phi,180);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET n-Kanal A";
+eightchars(64)
+ (mosfet_A;
+ pickup pencircle scaled thinline;
+ triangle(z5,tri_lt,tri_phi,0);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET p-Kanal A";
+eightchars(72)
+ (mosfet_A;
+ pickup pencircle scaled thinline;
+ triangle(z12,tri_lt,tri_phi,180);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+current_char_code:=80;
+
+twopincharfourfour("npnPH")("T")("E")("C")("photo transistor")
+ (tst_ht#,tst_wd#+1.6lLE#,0)
+(
+shiftpoint:=z1;
+npn_photo;
+lightarrows(z4+(.8lLE,1.7lLE),240);
+)
+
+end;
+%%
+%%
+%% End of file `cibimos.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cicirc.mf b/Master/texmf-dist/fonts/source/public/circ/cicirc.mf
new file mode 100644
index 00000000000..71631021f0e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cicirc.mf
@@ -0,0 +1,439 @@
+%%
+%% This is file `cicirc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csycirc')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+
+designsize:=2lLE#;
+
+fontdimen10: .4gat_ht#;
+fontdimen11: .65gat_lt#;
+
+fontdimen12: .5pin_lt#;
+fontdimen13: pin_spc#;
+fontdimen14: .5ios_wd#+.5pin_lt#;
+fontdimen15: mid_wd#+ios_wd#;
+fontdimen16: ios_wd#;
+fontdimen17: out_spc#;
+
+
+def defcircleabout(expr p, rad)=
+ z[p]=.5[z[p+1],z[p+3]]=.5[z[p+2],z[p+4]];
+ y[p+1]=y[p+3];
+ x[p+2]=x[p+4];
+ x[p]=lft(x[p+1])-rad;
+ y[p]=top(y[p+4])+rad;
+enddef;
+
+def gate=
+ charic:=.5pin_spc#;
+ z0=(0,0);
+ x20=x15=x1=x6=x7= x0+pin_lt;
+ y8=y6=-y7= y0+.5gat_ht;
+ x8=x9=x10= x1+gat_lt-2pin_lt;
+ y15=-y20= y0+.5pin_spc;
+ x25-x0= gat_lt;
+
+ y9=y7; y25=y10=y1=y0;
+ x0=x26=x27;
+ y26=y15; y27=y20;
+
+ pickup pencircle scaled thickline;
+ defcircleabout(1,inv_rad);
+ defcircleabout(10,inv_rad);
+ defcircleabout(15,inv_rad);
+ defcircleabout(20,inv_rad);
+enddef;
+
+def segment =
+ z0=(0,0);
+ x1-x0=pin_lt; y0=y1;
+ defcircleabout(1,inv_rad); % z2 z3 z4 z5 defined
+ z1=.5[z6,z7]; x6=x7=x8;
+ y7-y6=pin_spc;
+ y8-y1=out_spc;
+ x9-x8=ios_wd; y8=y9;
+enddef;
+
+def topbotsegs(expr fc, myht, mydp) =
+ beginchar(fc+0,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ endchar;
+ beginchar(fc+1,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ endchar;
+ beginchar(fc+2,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z5;
+ draw z3--z8--z9;
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ endchar;
+ beginchar(fc+3,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ draw z3--z2--z5;
+ endchar;
+enddef;
+
+def midsegs(expr fc, myht, mydp) =
+ beginchar(fc+0,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ endchar;
+ beginchar(fc+1,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ endchar;
+ beginchar(fc+2,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z5;
+ draw z3--z8;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ endchar;
+ beginchar(fc+3,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ draw z3--z2--z5;
+ endchar;
+enddef;
+
+"obere Segmente Eing"&ditto&"ange";
+topbotsegs(0,out_spc#,.5pin_spc#);
+
+"obere Segmente Ausg"&ditto&"ange";
+{{
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ topbotsegs(16,out_spc#,.5pin_spc#);
+}}
+
+"mittlere Segmente Eing"&ditto&"ange";
+midsegs(32,.5pin_spc#,.5pin_spc#);
+
+"mittlere Segmente Eing"&ditto&"ange";
+{{
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ midsegs(48,.5pin_spc#,.5pin_spc#);
+}}
+
+"untere Segmente Eing"&ditto&"ange";
+{{
+ addTF(reflectedabout(left,right));
+ topbotsegs(64,.5pin_spc#,out_spc#);
+}}
+
+"untere Segmente Ausg"&ditto&"ange";
+{{
+ addTF(reflectedabout(left,right));
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ topbotsegs(80,.5pin_spc#,out_spc#);
+}}
+
+"oberes Zwischensegment";
+beginchar(96,mid_wd#,out_spc#,.5pin_spc#);
+ pickup pensquare scaled thickline;
+ draw (0,out_spc)--(mid_wd,out_spc);
+endchar;
+
+"Zwischensegment";
+beginchar(97,mid_wd#,.5pin_spc#,.5pin_spc#);
+endchar;
+
+"unteres Zwischensegment";
+beginchar(98,mid_wd#,.5pin_spc#,out_spc#);
+ pickup pensquare scaled thickline;
+ draw (0,-out_spc)--(mid_wd,-out_spc);
+endchar;
+
+"Gatter: Eingang, Ausgang";
+beginchar(128,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z6--z8--z9--z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z10--z25;
+endchar;
+
+"Gatter: Eingang negiert, Ausgang";
+beginchar(129,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z3--z6--z8--z9--z7--z5;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ draw z10--z25;
+endchar;
+
+"Gatter: Eingang, Ausgang negiert";
+beginchar(130,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z14--z9--z7--z6--z8--z12;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z10;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z11--z25;
+endchar;
+
+"Gatter: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(131,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z6--z8--z9--z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+endchar;
+
+"Gatter: zwei Eing"&ditto&"ange, Ausgang negiert";
+beginchar(132,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z14--z9--z7--z6--z8--z12;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z10;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z11--z25;
+endchar;
+
+"Gatter alt AND: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(133,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+endchar;
+
+"Gatter alt NAND: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(134,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+ pickup pencircle scaled 2inv_rad;
+ drawdot z10;
+endchar;
+
+"Gatter alt OR: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(135,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ z30=5[z26,z15];
+ z31=5[z27,z20];
+ z32= (z26--z30) intersectionpoint (z6{right}..{down}z10);
+ z33= (z27--z31) intersectionpoint (z10{down}..{left}z7);
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z26--z32;
+ draw z27--z33;
+ draw z10--z25;
+endchar;
+
+"Gatter alt NOR: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(136,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ z30=5[z26,z15];
+ z31=5[z27,z20];
+ z32= (z26--z30) intersectionpoint (z6{right}..{down}z10);
+ z33= (z27--z31) intersectionpoint (z10{down}..{left}z7);
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z26--z32;
+ draw z27--z33;
+ draw z10--z25;
+ pickup pencircle scaled 2inv_rad;
+ drawdot z10;
+endchar;
+
+"Gatter alt EQ: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(137,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+ x30=x31=x34=.2[x2,x13];
+ y30=.7[y16,y2]; y30=y32;
+ y31=.7[y21,y2]; y31=y33;
+ x32=x33=x35=.8[x2,x13];
+ y35=y34=y2;
+ pickup pencircle scaled normalline;
+ draw z30--z32;
+ draw z31--z33;
+ draw z34--z35;
+endchar;
+
+"box symbol empty";
+beginchar(250,box_wd#,.5box_wd#,.5box_wd#);
+ z0=(0,0);
+ x0=x1=x2; x3=x4;
+ y0=.5[y2,y1];
+ y1=y3; y2=y4;
+ y2-y1=x3-x1=box_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"box symbol cutted by line";
+beginchar(251,box_wd#,.5box_wd#,.5box_wd#);
+ z0=(0,0);
+ x0=x1=x2; x3=x4;
+ y0=.5[y2,y1];
+ y1=y3; y2=y4;
+ y2-y1=x3-x1=box_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+ pickup pencircle scaled normalline;
+ draw z1--z4;
+endchar;
+
+"Black Box analog";
+beginchar(252,bba_wd#,.5bba_ht#,.5bba_ht#);
+ z0=(0,0); x1=x0=x2;
+ z0=.5[z1,z2];
+ y1-y2=y3-y4=bba_ht; y1=y3;
+ x3=x4=x0+bba_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"Black Box digital";
+beginchar(253,bbd_wd#,.5bbd_ht#,.5bbd_ht#);
+ z0=(0,0); x1=x0=x2;
+ z0=.5[z1,z2];
+ y1-y2=y3-y4=bbd_ht; y1=y3;
+ x3=x4=x0+bbd_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"OPV";
+beginchar(254,opv_lt#,opv_ht#,opv_ht#);
+ charic:=opv_dis#;
+ numeric pl;
+ pl:=pin_lt;
+ z0=(0,0);
+ z1=z0+(pl,opv_dis);
+ z2=z0+(pl,opv_ht);
+ z3=z0+(pl+opv_frc*2opv_ht,0);
+ x4=x2; y4=-y2;
+ x5=x1; y5=-y1;
+ z6=z1-(pl,0);
+ z7=z5-(pl,0);
+ z8=z0+(opv_lt,0);
+ z9=z5+(3pt,0);
+ z10=z9+(4pt,0);
+ z11=z1+(3pt,0);
+ z12=z11+(4pt,0);
+ z13=z11+(2pt,2pt);
+ z14=z11+(2pt,-2pt);
+ pickup pensquare scaled thickline;
+ draw z2--z3--z4--cycle;
+ pickup pensquare scaled normalline;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13--z14;
+ draw z6--z1;
+ draw z7--z5;
+ draw z3--z8;
+endchar;
+
+"OPV";
+beginchar(255,opv_lt#,opv_ht#,opv_ht#);
+ charic:=opv_dis#;
+ numeric pl;
+ pl:=pin_lt;
+ z0=(0,0);
+ z1=z0+(pl,opv_dis);
+ z2=z0+(pl,opv_ht);
+ z3=z0+(pl+opv_frc*2opv_ht,0);
+ x4=x2; y4=-y2;
+ x5=x1; y5=-y1;
+ z6=z1-(pl,0);
+ z7=z5-(pl,0);
+ z8=z0+(opv_lt,0);
+ z9=z1+(3pt,0);
+ z10=z9+(4pt,0);
+ z11=z5+(3pt,0);
+ z12=z11+(4pt,0);
+ z13=z11+(2pt,2pt);
+ z14=z11+(2pt,-2pt);
+ pickup pensquare scaled thickline;
+ draw z2--z3--z4--cycle;
+ pickup pensquare scaled normalline;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13--z14;
+ draw z6--z1;
+ draw z7--z5;
+ draw z3--z8;
+endchar;
+
+end;
+%%
+%%
+%% End of file `cicirc.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cidiod.mf b/Master/texmf-dist/fonts/source/public/circ/cidiod.mf
new file mode 100644
index 00000000000..9027a14038b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cidiod.mf
@@ -0,0 +1,108 @@
+%%
+%% This is file `cidiod.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csydiod')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=1lLE#;
+
+def diode = % "uberarbeiten
+ numeric pl;
+ pl:=.5(did_lt-did_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(did_wd,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,did_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ z8=z4+(did_zlt,0);
+ z9=z0+(0,thy_ht);
+
+ z10=.35[z5,z7];
+ z11=z10-(.5Dcap_spc,0);
+ z12=z10+(.5Dcap_spc,0);
+ y13=y15; y14=y16;
+ x13=x14; x15=x16;
+ y13-y14=Dcap_ht;
+ z11=.5[z13,z14];
+ z12=.5[z15,z16];
+ z17=z11-(Dcap_wd,0);
+ z18=z12+(Dcap_wd,0);
+
+ pickup pensquare scaled normalline;
+ draw z0--z3;
+ draw z4--z5;
+ draw z1--z6--z7--cycle;
+enddef;
+
+def Dcap =
+ pickup pensquare scaled normalline;
+ draw z17--z11;
+ draw z13--z14;
+ draw z15--z16;
+ draw z12--z18;
+enddef;
+
+def led_arrows = % "uberarbeiten
+ numeric pl;
+ numeric x[],y[];
+ transform arr_a,arr_b;
+ pickup pencircle scaled thickline;
+ pl:=.5(did_lt-did_wd);
+ z0=(0,0);
+ z4=z0+(pl,0);
+ z1=z0+(led_lt,0);
+ (z1-z2)=(led_wd,0) rotated led_phi;
+ (z1-z3)=(led_wd,0) rotated -led_phi;
+ arr_a:=identity rotated led_psi shifted
+ (z4+(led_spx+.5led_spc*cosd(led_psi),led_spy-.5led_spc*sind(led_psi)));
+ arr_b:=identity rotated led_psi shifted
+ (z4+(led_spx-.5led_spc*cosd(led_psi),led_spy+.5led_spc*sind(led_psi)));
+ draw (z0--z1) transformed arr_a;
+ draw (z0--z1) transformed arr_b;
+ fill (z2--z1--z3--cycle) transformed arr_a;
+ fill (z2--z1--z3--cycle) transformed arr_b;
+enddef;
+
+"Diode";
+fourchars(0)(diode)(z3)(.5did_ht#,did_lt#,.5did_ht#);
+
+"Z-Diode";
+fourchars(4)(diode; draw z4--z8)(z3)(.5did_ht#,did_lt#,.5did_ht#);
+
+"LED";
+fourfourchars(8)(diode; lightarrows(.5[z1,z6]+(0,.5lLE),120))(z3)
+(.5did_ht#+.5led_spy#+led_lt#*sind(led_psi),did_lt#,.5did_ht#);
+
+"Kapazit"&ditto&"atsdiode";
+fourchars(16)(diode; Dcap)(z3)(.5did_ht#,did_lt#,.65did_ht#);
+
+"Thyristor";
+
+end;
+%%
+%%
+%% End of file `cidiod.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cioptic.mf b/Master/texmf-dist/fonts/source/public/circ/cioptic.mf
new file mode 100644
index 00000000000..01425b55449
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cioptic.mf
@@ -0,0 +1,539 @@
+%%
+%% This is file `cioptic.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `optic')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+
+string optionname; optionname="optics";
+
+font_identifier="cioptic";
+
+input defcirc;
+
+hsoa:=.128CIu;
+
+slens_ht# := 2CIu#;
+slens_lt# := 2CIu#;
+slens_phi := 60;
+slens_spc := .55CIu;
+define_pixels(slens_lt,slens_ht);
+
+blens_ht# := 2CIu#;
+blens_lt# := 2CIu#;
+blens_phi := 45;
+blens_spc := .88CIu;
+define_pixels(blens_lt,blens_ht);
+
+sklens_ht# := 2CIu#;
+sklens_lt# := 2CIu#;
+sklens_phi := 60;
+sklens_spc := .58CIu;
+sklens_bt := 1CIu; % Breite Bottom und Top
+define_pixels(sklens_lt,sklens_ht);
+
+mir_ht# := 2CIu#;
+mir_lt# := 2CIu#;
+mir_wd := .5CIu; % Schraffurl"ange
+define_pixels(mir_ht,mir_lt);
+
+omb_wd# := 3CIu#;
+omb_ht# := 2CIu#;
+lab_wd# := 4CIu#;
+lab_ht# := 2CIu#;
+define_pixels(omb_wd,omb_ht,lab_wd,lab_ht);
+
+pol_ht# := 2CIu#;
+pol_lt# := 2CIu#;
+pol_spc := .2CIu;
+define_pixels(pol_ht,pol_lt);
+
+pin_ht# := 2CIu#;
+pin_lt# := 2CIu#;
+pin_spx := .16CIu;
+pin_spy := .08CIu;
+pin_spz := .5CIu;
+define_pixels(pin_ht,pin_lt);
+
+cam_ht# := 2CIu#;
+cam_lt# := 3CIu#;
+cam_spx := 2CIu;
+cam_spy := 1CIu;
+define_pixels(cam_ht,cam_lt);
+
+scr_ht# := 4CIu#;
+scr_lt# := 2CIu#;
+scr_spx := 1CIu;
+scr_spy := 1CIu;
+define_pixels(scr_ht,scr_lt);
+
+def rectangle(expr width, height, xs, ys) =
+ draw (xs,.5height+ys)--(width+xs,.5height+ys)--(width+xs,-.5height+ys)--
+ (xs,-.5height+ys)--cycle;
+enddef;
+
+def small_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(slens_lt-slens_spc);
+ z0=(.5slens_lt,-.5slens_ht);
+ z1=(.5slens_lt,.5slens_ht);
+ z2=(.5CIu,0); z3=z2+(hsoa,0);
+ z4=(slens_lt-.5CIu,0); z5=z4-(hsoa,0);
+ draw z0{dir slens_phi}..z1;
+ draw z0{dir (180-slens_phi)}..z1;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_small_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(slens_lt-slens_spc);
+ z0=(.5slens_lt,-.5slens_ht);
+ z1=(.5slens_lt,.5slens_ht);
+ z4=(slens_lt-.5CIu,0); z5=z4-(hsoa,0);
+ draw z0{dir slens_phi}..z1;
+ draw z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def bold_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(blens_lt-blens_spc);
+ z0=(.5blens_lt,-.5blens_ht);
+ z1=(.5blens_lt,.5blens_ht);
+ draw z0{dir blens_phi}..z1;
+ draw z0{dir (180-blens_phi)}..z1;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_bold_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(blens_lt-blens_spc);
+ z0=(.5blens_lt,-.5blens_ht);
+ z1=(.5blens_lt,.5blens_ht);
+ draw z0{dir blens_phi}..z1;
+ draw z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def small_konkav_lens =
+ pickup pensquare scaled normalline;
+ numeric pl, ql;
+ pl:=.5(sklens_lt-sklens_spc);
+ ql:=.5(sklens_lt-sklens_bt);
+ z0=(ql,-.5sklens_ht);
+ z1=(sklens_lt-ql,-.5sklens_ht);
+ z2=(ql,.5sklens_ht);
+ z3=(sklens_lt-ql,.5sklens_ht);
+ z4=(.5CIu,0); z5=z4+(hsoa,0);
+ z6=(sklens_lt-.5CIu,0); z7=z6-(hsoa,0);
+ draw z0{dir sklens_phi}..z2--z3{dir (180+sklens_phi)}..z1--z0;
+ draw z4--z5; draw z6--z7;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_small_konkav_lens =
+ pickup pensquare scaled normalline;
+ numeric pl, ql;
+ pl:=.5(sklens_lt-sklens_spc);
+ ql:=.5(sklens_lt+sklens_bt);
+ z0=(.5sklens_lt,-.5sklens_ht);
+ z1=(ql,-.5sklens_ht);
+ z2=(.5sklens_lt,.5sklens_ht);
+ z3=(ql,.5sklens_ht);
+ draw z0--z2--z3{dir (180+sklens_phi)}..z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def mirror =
+ pickup pensquare scaled normalline;
+ opticalaxis(normalline)(0);
+ opticalaxisdown(normalline)(.5mir_lt,0);
+ halfmirror;
+ pickup pensquare scaled thinline;
+ for i=.125 step .125 until .875:
+ draw (i*mir_lt,(.5-i)*mir_ht)--(mir_wd+i*mir_lt,mir_wd+(.5-i)*mir_ht);
+ endfor
+enddef;
+
+def halfmirror =
+ pickup pensquare scaled thickline;
+ draw (.5mir_wd,.5(mir_ht-mir_wd))--(mir_lt-.5mir_wd,.5(mir_wd-mir_ht));
+enddef;
+
+def halfmirrorline =
+ pickup pensquare scaled normalline;
+ opticalaxis(normalline)(0);
+ opticalaxisdown(normalline)(.5mir_lt,.5mir_ht);
+ opticalaxisdown(normalline)(.5mir_lt,0);
+enddef;
+
+def polarizer =
+ pickup pensquare scaled thinline;
+ numeric pl;
+ pl:=.5(pol_lt-pol_spc);
+ z0=(pl,.5pol_ht);
+ z1=z0+(0,-pol_ht);
+ z2=z1+(pol_spc,0);
+ z3=z0+(pol_spc,0);
+ draw z0--z1--z2--z3--cycle;
+ % optical axis
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def pinhole =
+ pickup pensquare scaled thinline;
+ numeric pl;
+ pl:=.5(pin_lt-pin_spx);
+ fill (.5pin_lt,.5pin_spy)--(pl,.5pin_spz)--(pl,.5pin_ht)--
+ (pl+pin_spx,.5pin_ht)--(pl+pin_spx,.5pin_spz)--cycle;
+ fill (.5pin_lt,-.5pin_spy)--(pl,-.5pin_spz)--(pl,-.5pin_ht)--
+ (pl+pin_spx,-.5pin_ht)--(pl+pin_spx,-.5pin_spz)--cycle;
+ % optical axis
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def screenleft (expr gray) =
+ pickup pensquare scaled normalline;
+ path a, b;
+ numeric pl;
+ pl:=.5(scr_lt-scr_spx);
+ z0=(pl,.5scr_ht);
+ z1=(pl+scr_spx,scr_spy);
+ z2=(pl+scr_spx,-.5scr_ht);
+ z3=(pl,-scr_spy);
+ draw z0--z1--z2--z3--cycle;
+ a:=z0--z1;
+ b:=z2--z3;
+ vshade(b, a, gray, unitsquare);
+enddef;
+
+def screenright (expr gray) =
+ pickup pensquare scaled normalline;
+ path a, b;
+ numeric pl;
+ pl:=.5(scr_lt-scr_spx);
+ z0=(pl,-.5scr_ht);
+ z1=(pl,scr_spy);
+ z2=(pl+scr_spx,.5scr_ht);
+ z3=(pl+scr_spx,-scr_spy);
+ draw z0--z1--z2--z3--cycle;
+ a:=z1--z2;
+ b:=z3--z0;
+ vshade(b, a, gray, unitsquare);
+enddef;
+
+def opticalaxis(expr linethickness)(expr offset) =
+ pickup pensquare scaled linethickness;
+ draw (offset,0)--(offset+hsoa,0);
+ draw (offset+3hsoa,0)--(offset+5hsoa,0);
+ draw (offset+7hsoa,0)--(offset+1CIu,0);
+enddef;
+
+def halfopticalaxis(expr linethickness)(expr offset) =
+ pickup pensquare scaled linethickness;
+ draw (offset,0)--(offset+hsoa,0);
+ draw (offset+3hsoa,0)--(offset+.5CIu,0);
+enddef;
+
+def opticalaxisdown(expr linethickness)(expr xoffset, yoffset) =
+ pickup pensquare scaled linethickness;
+ draw (xoffset,yoffset)--(xoffset,yoffset-hsoa);
+ draw (xoffset,yoffset-3hsoa)--(xoffset,yoffset-5hsoa);
+ draw (xoffset,yoffset-7hsoa)--(xoffset,yoffset-1CIu);
+enddef;
+
+def halfopticalaxisdown(expr linethickness)(expr xoffset, yoffset) =
+ pickup pensquare scaled linethickness;
+ draw (xoffset,yoffset)--(xoffset,yoffset-hsoa);
+ draw (xoffset,yoffset-3hsoa)--(xoffset,yoffset-.5CIu);
+enddef;
+
+def camera =
+ pickup pensquare scaled thickline;
+ numeric pl;
+ pl:=cam_lt-cam_spx;
+ draw (pl,.25cam_spy)--(0,.5cam_spy)--(0,-.5cam_spy)--(pl,-.25cam_spy);
+ draw (pl,.5cam_ht)--(pl,-.5cam_ht)--(cam_lt,-.5cam_ht)--(cam_lt,.5cam_ht)--cycle;
+enddef;
+
+"SmalCIuns";
+twochars(0)(small_lens)(.5slens_ht#,slens_lt#,.5slens_ht#);
+
+"HalfSmalCIuns";
+fourchars(2)(half_small_lens)((slens_lt,0))(.5slens_ht#,slens_lt#,.5slens_ht#);
+
+"BoldLens";
+twochars(6)(bold_lens)(.5blens_ht#,blens_lt#,.5blens_ht#);
+
+"HalfBoldLens";
+fourchars(8)(half_bold_lens)((blens_lt,0))(.5blens_ht#,blens_lt#,.5blens_ht#);
+
+"SmallKonkavLens";
+twochars(12)(small_konkav_lens)(.5sklens_ht#,sklens_lt#,.5sklens_ht#);
+
+"HalfSmallKonkavLens";
+fourchars(14)(half_small_konkav_lens)((sklens_lt,0))(.5sklens_ht#,sklens_lt#,.5sklens_ht#);
+
+"Mirror";
+eightchars(85)(mirror)(.5mir_lt#,.5mir_ht#,.5mir_ht#,.5mir_lt#);
+
+"BeamSplitter";
+eightchars(36)(halfmirror;halfmirrorline)(.5mir_lt#,.5mir_ht#,.5mir_ht#,.5mir_lt#);
+
+"Polarizer";
+twochars(44)(polarizer)(.5pol_ht#,pol_lt#,.5pol_ht#);
+
+"Pinhole";
+twochars(46)(pinhole)(.5pin_ht#,pin_lt#,.5pin_ht#);
+
+"Camera";
+fourchars(66)(camera)((cam_lt,0))(.5cam_ht#,cam_lt#,.5cam_ht#);
+
+"ScreenLeft";
+twochars(72)(screenleft(2);opticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenRight";
+twochars(74)(screenright(2);opticalaxis(normalline)(1CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenLeftBehind";
+twochars(76)(screenleft(2);halfopticalaxis(normalline)(1.5CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenRightBehind";
+twochars(78)(screenright(2);halfopticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"VScreenLeft";
+twochars(80)(screenleft(4);opticalaxis(normalline)(0);halfopticalaxis(normalline)(1.5CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"VScreenRight";
+twochars(82)(screenright(4);opticalaxis(normalline)(1CIu);halfopticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"horizontal dashed half line to the right";
+beginchar(128,.5CIu#,0pt,0pt);
+ halfopticalaxis(normalline)(0);
+endchar;
+
+"horizontal dashed long line to the right";
+beginchar(129,1CIu#,0pt,0pt);
+ opticalaxis(normalline)(0);
+endchar;
+
+"horizontal dashed half line to the left";
+beginchar(130,.5CIu#,0pt,0pt);
+ halfopticalaxis(normalline)(-.5CIu);
+endchar;
+
+"horizontal dashed half line up";
+beginchar(131,0pt,.5CIu#,0pt);
+ halfopticalaxisdown(normalline)(0,.5CIu);
+endchar;
+
+"horizontal dashed long line up";
+beginchar(132,0pt,1CIu#,0pt);
+ opticalaxisdown(normalline)(0,1CIu);
+endchar;
+
+"horizontal dashed half line down";
+beginchar(133,0pt,0pt,.5CIu#);
+ halfopticalaxisdown(normalline)(0,0);
+endchar;
+
+"bold horizontal dashed half line to the right";
+beginchar(136,.5CIu#,0pt,0pt);
+ halfopticalaxis(2normalline)(0);
+endchar;
+
+"bold horizontal dashed long line to the right";
+beginchar(137,1CIu#,0pt,0pt);
+ opticalaxis(2normalline)(0);
+endchar;
+
+"bold horizontal dashed half line to the left";
+beginchar(138,.5CIu#,0pt,0pt);
+ halfopticalaxis(2normalline)(-.5CIu);
+endchar;
+
+"bold horizontal dashed half line up";
+beginchar(139,0pt,.5CIu#,0pt);
+ halfopticalaxisdown(2normalline)(0,.5CIu);
+endchar;
+
+"bold horizontal dashed long line up";
+beginchar(140,0pt,1CIu#,0pt);
+ opticalaxisdown(2normalline)(0,1CIu);
+endchar;
+
+"bold horizontal dashed half line down";
+beginchar(141,0pt,0pt,.5CIu#);
+ halfopticalaxisdown(2normalline)(0,0);
+endchar;
+
+if unknown cmbase: input cmbase fi
+
+tracingstats:=1;
+picture r[];
+
+def put_text(expr ts,xstart,ystart,rot,justification) =
+ begingroup
+ text_width:=0;text_height:=0;
+ for ind:=0 step 1 until length(ts)-1:
+ dec_num:=ASCII substring (ind,ind+1) of ts;
+ if unknown r[dec_num]: dec_num:=32; fi
+ if dec_num=32:
+ text_width:=text_width+wd[65];
+ text_height:=max(text_height,ht[65]+dp[65]);
+ elseif dec_num>=0:
+ text_width:=text_width+wd[dec_num];
+ text_height:=max(text_height,ht[dec_num]+dp[dec_num]);
+ fi
+ endfor
+ if rot=90:
+ if justification=1: ynext:=ystart;
+ elseif justification=2: ynext:=round(ystart-text_width/2);
+ else: ynext:=round(ystart-text_width);
+ fi
+ xnext:=xstart+text_height/2;
+ else:
+ if justification=1: xnext:=xstart;
+ elseif justification=2: xnext:=round(xstart-text_width/2);
+ else: xnext:=round(xstart-text_width);
+ fi
+ ynext:=ystart-text_height/2;
+ fi
+ for ind:=0 step 1 until length(ts)-1:
+ dec_num:=ASCII substring (ind,ind+1) of ts;
+ if unknown r[dec_num]: dec_num:=32; fi
+ if dec_num=32:
+ xnext:=xnext+wd[65]*cosd rot;
+ ynext:=ynext+wd[65]*sind rot;
+ elseif dec_num>=0:
+ currentpicture:=currentpicture+r[dec_num] shifted(xnext,ynext)
+ rotatedaround ((xnext,ynext),rot);
+ xnext:=xnext+wd[dec_num]*cosd rot;
+ ynext:=ynext+wd[dec_num]*sind rot;
+ fi
+ endfor
+ endgroup
+enddef;
+
+def endchar =
+ r[charcode]:=currentpicture;
+ wd[charcode]:=w;ht[charcode]:=h;dp[charcode]:=d;
+ endgroup;
+enddef;
+let endchar_ = endchar;
+let generate = relax;
+let roman = relax;
+input cmss10.mf
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=
+ if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+fi
+font_setup;
+input romanu.mf %Roman uppercase.
+input romanl.mf %Roman lowerrcase.
+
+def endchar =
+ % Next line should probably be removed if CM base is used
+ %Include the next two lines if you want to
+ %rotate the picture 90 deg.(Portrait to Landscape)
+ %currentpicture:=currentpicture rotated 90 shifted (h,0);
+ %tmp:=charht; charht:=charwd; charwd:=tmp;
+ scantokens extra_endchar;
+ if proofing>0: makebox(proofrule); fi
+ chardx:=w;
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ endgroup
+enddef;
+let endchar_ = saveendchar;
+let generate = input;
+let roman = roman;
+def t_ = transformed currenttransform enddef;
+
+"Laser Box horizontal";
+beginchar(160,lab_wd#,.5lab_ht#,.5lab_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(lab_wd,lab_ht,0,0);
+ pickup pencircle scaled normalline;
+ put_text("Laser",.5lab_wd,0,0,2);
+endchar;
+
+"Laser Box vertical";
+beginchar(161,.5lab_ht#,lab_wd#,.5lab_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(lab_ht,lab_wd,-.5lab_ht,.5lab_wd);
+ pickup pencircle scaled normalline;
+ put_text("Laser",0,.5lab_wd,90,2);
+endchar;
+
+"Photometer Box horizontal";
+beginchar(162,omb_wd#,.5omb_ht#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_wd,omb_ht,0,0);
+ pickup pencircle scaled normalline;
+ put_text("PM",.5omb_wd,0,0,2);
+endchar;
+
+"Photometer Box vertical";
+beginchar(163,.5omb_ht#,omb_wd#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_ht,omb_wd,-.5omb_ht,.5omb_wd);
+ pickup pencircle scaled normalline;
+ put_text("PM",0,.5omb_wd,90,2);
+endchar;
+
+"Optical Modulator Box horizontal";
+beginchar(164,omb_wd#,.5omb_ht#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_wd,omb_ht,0,0);
+ pickup pensquare scaled normalline;
+ put_text("OM",.5omb_wd,0,0,2);
+endchar;
+
+"Optical Modulator Box vertical";
+beginchar(165,omb_ht#,.5omb_wd#,.5omb_wd#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_ht,omb_wd,0,0); %-.5omb_ht,.5omb_wd);
+ pickup pensquare scaled normalline;
+ put_text("OM",.5omb_ht,0,90,2);
+endchar;
+
+end;
+%%
+%%
+%% End of file `cioptic.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf b/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf
new file mode 100644
index 00000000000..a1d28d887cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf
@@ -0,0 +1,237 @@
+%%
+%% This is file `ciphysic.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `ciphysicmf')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+font_identifier:="ciphysic";
+
+string optionname; optionname:="physics";
+
+input defcirc.mf;
+
+%% SPRING
+
+spring_lt#= 5CIu#;
+lspring_lt#= 7CIu#;
+spring_th#= 1CIu#;
+define_whole_pixels(lspring_lt,spring_lt,spring_th);
+spring_gap= .6CIu;
+spring_n=11;
+spring_swd=(spring_lt-2spring_gap)/spring_n;
+lspring_swd=(lspring_lt-2spring_gap)/spring_n;
+
+twopinchar("spring")("k")("spring")
+ (spring_lt#, .5spring_th#, .5spring_th#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ shiftpoint:=z0+(spring_lt,0);
+ z1=z0+(spring_gap,0);
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ for i:=1 upto spring_n:
+ x[i+1]=x[i]+spring_swd; y[i+1]=y[0]+if odd(i): 1 else: -1 fi*.5spring_th;
+ if i=spring_n: y[i+1]:=y[i+1]-if odd(i): 1 else: -1 fi*.5spring_th fi;
+ draw z[i]--z[i+1];
+ endfor;
+ z[spring_n+2]=z0+(spring_lt,0);
+ pickup pensquare scaled normalline;
+ z[spring_n+2]=z0+(spring_lt,0);
+ draw z[spring_n+1]--z[spring_n+2];
+)
+
+twopinchar("lspring")("k")("long spring")
+ (lspring_lt#, .5spring_th#, .5spring_th#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ shiftpoint:=z0+(lspring_lt,0);
+ z1=z0+(spring_gap,0);
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ for i:=1 upto spring_n:
+ x[i+1]=x[i]+lspring_swd; y[i+1]=y[0]+if odd(i): 1 else: -1 fi*.5spring_th;
+ if i=spring_n: y[i+1]:=y[i+1]-if odd(i): 1 else: -1 fi*.5spring_th fi;
+ draw z[i]--z[i+1];
+ endfor;
+ z[spring_n+2]=z0+(lspring_lt,0);
+ pickup pensquare scaled normalline;
+ draw z[spring_n+1]--z[spring_n+2];
+)
+
+%% MASS single/double
+
+dmass_lt#= 2CIu#;
+mass_r#= 1.5CIu#;
+define_whole_pixels(dmass_lt,mass_r);
+
+twopinchar("fdmass")("m")("mass with two forces; full drawn")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(dmass_lt,0);
+ shiftpoint:=z1;
+ draw z0--z1;
+ z2=.5[z0,z1];
+ pickup pencircle scaled mass_r;
+ drawdot z2;
+)
+
+twopinchar("dmass")("m")("mass with two forces; outlined")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(.5(dmass_lt-mass_r),0);
+ draw z0--z1;
+ z3=z0+(dmass_lt,0);
+ shiftpoint:=z3;
+ z4=z3-(.5(dmass_lt-mass_r),0);
+ draw z3--z4;
+ z2=.5[z0,z3];
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled mass_r shifted z2;
+)
+
+twopincharfour("fmass")("m")(".")("*")("mass; full drawn")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(dmass_lt,0);
+ z2=.5[z0,z1];
+ draw z0--z2;
+ pickup pencircle scaled mass_r;
+ drawdot z2;
+
+ shiftpoint:=z1;
+)
+
+twopincharfour("mass")("m")(".")("*")("mass; outlined")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(.5(dmass_lt-mass_r),0);
+ draw z0--z1;
+ z3=z0+(dmass_lt,0);
+ z2=.5[z0,z3];
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled mass_r shifted z2;
+
+ shiftpoint:=z3;
+)
+
+%% WALL
+
+wall_lt#= 1.5CIu#;
+wall_ht#= 2.5CIu#;
+define_whole_pixels(wall_ht, wall_lt);
+wall_f=1/3;
+wall_n=6;
+wall_alpha=40;
+
+twopincharfour("wall")("{}")(".")("|")("wall")
+ (wall_lt#,.5wall_ht#
+ +wall_lt#*(1-wall_f)*sind(wall_alpha),.5wall_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(wall_f*wall_lt,0);
+ draw z0--z1;
+ z1=.5[z2,z3]; y3-y2=wall_ht; x3=x2;
+ pickup pensquare scaled verythickline;
+ draw z2--z3;
+ path a;
+ a=(0,0)--(1-wall_f)*wall_lt*dir(wall_alpha);
+ pickup pencircle scaled normalline;
+ for i:=0 upto wall_n: draw a shifted (i/wall_n)[z2,z3]; endfor
+
+ shiftpoint:=z0+(wall_lt,0);
+)
+
+tile_lt#= 2CIu#;
+tile_ht#= .4CIu#;
+tile_f=0.1;
+
+define_whole_pixels(tile_lt,tile_ht);
+
+twopincharfour("tile")("{}")(".")("*")("tile")
+ (wall_lt#,.5tile_ht#,.5tile_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(tile_lt,0);
+ z2=tile_f[z0,z1];
+ draw z0--z1;
+ pickup pensquare scaled verythickline;
+ draw z1--z2;
+ shiftpoint:=z1;
+)
+
+spin_lt#= 2CIu#;
+spin_r#= .7CIu#;
+spin_ht#= 2CIu#;
+spin_alt= .5CIu;
+spin_awd= .1CIu;
+define_whole_pixels(spin_lt,spin_r, spin_ht);
+
+twopinchar("spinu")("S")("spin up")
+ (spin_lt#, .6spin_ht#, .6spin_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(spin_lt,0);
+ draw z0--z1;
+ z2=.5[z0,z1];
+ y3-y4=spin_ht;
+ x3=x4=x2;
+ y2=.6[y3,y4];
+ y5=y6=y3-spin_alt;
+ x5=x2-spin_awd;
+ x6=x2+spin_awd;
+ draw z3--z4;
+ filldraw z5--z3--z6--cycle;
+ pickup pencircle scaled spin_r;
+ drawdot z2;
+ shiftpoint:=z1;
+)
+
+twopinchar("spind")("S")("spin down")
+ (spin_lt#, .6spin_ht#, .6spin_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(spin_lt,0);
+ draw z0--z1;
+ z2=.5[z0,z1];
+ y3-y4=-spin_ht;
+ x3=x4=x2;
+ y2=.6[y3,y4];
+ y5=y6=y3+spin_alt;
+ x5=x2-spin_awd;
+ x6=x2+spin_awd;
+ draw z3--z4;
+ filldraw z5--z3--z6--cycle;
+ pickup pencircle scaled spin_r;
+ drawdot z2;
+ shiftpoint:=z1;
+)
+
+endCIRCfont
+%%
+%%
+%% End of file `ciphysic.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cirest.mf b/Master/texmf-dist/fonts/source/public/circ/cirest.mf
new file mode 100644
index 00000000000..a08e44db056
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cirest.mf
@@ -0,0 +1,740 @@
+%%
+%% This is file `cirest.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csyrest')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def gaslamp =
+ z0=(0,0);
+ z4=z0+(.5,0)*lLE;
+ y4=y3;
+ x2=x1;
+ x3=x4+3lLE;
+ y2=y1+2lLE;
+ y4=.5[y1,y2];
+ x1=.5[x4,x3];
+
+ x5=x0+1.1lLE;
+ y5=y0;
+ x7=x6=x5; y7-y6=.5lLE;
+ .5[y7,y6]=y0;
+
+ y8=y9=y0;
+ x8=x0+4lLE;
+
+ x9=x8-1.1lLE;
+
+ pickup pencircle scaled normalline;
+ draw superellipse(z3,z2,z4,z1,.75);
+ draw z0--z5;
+ draw z6--z7;
+ draw z8--z9;
+ pickup pencircle scaled .3lLE;
+ drawdot z9;
+enddef;
+
+def switch = %"uberarbeiten
+ numeric pl;
+ pl:=swt_lt*swt_dis;
+ sl:=(1-2swt_dis)*swt_lt;
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+((sl,0) rotated swt_phi);
+ z3=z1+(swt_ind*sl,0);
+ z4=z0+(swt_lt,0);
+ z5=z3+(0,swt_slt);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2;
+ draw z3--z4;
+ draw z3--z5;
+enddef;
+
+def dswitch =
+ z0=(0,0);
+ z1=dsw_t[z0,z0+(dsw_wd,0)];
+ x2=x3=x4=x5=x0+((1-dsw_c)*dsw_wd);
+ y0=.5[y2,y3]=.5[y4,y5];
+ y2-y3=dsw_ht;
+ y2-y4=dsw_cc*dsw_ht;
+ y2=y6; y3=y7;
+ x6-x3=x7-x3=dsw_c*dsw_wd;
+ x8=x1+dsw_ov+((1-dsw_c-dsw_t)*dsw_wd);
+ y8=sind(dsw_phi)*x8/cosd(dsw_phi);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z8;
+ draw z4--z2--z6;
+ draw z5--z3--z7;
+enddef;
+
+def circle = % "uberarbeiten
+ numeric pl;
+ pl:=.5cir_lt-cir_ht;
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z0+(.5cir_lt,0);
+ z3=z1+(2cir_ht,0);
+ z4=z3+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z3--z4;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2cir_ht shifted z2;
+enddef;
+
+def lamp =
+ circle
+ z10-z11=(2cir_ht,0) rotated 45;
+ z12-z13=(2cir_ht,0) rotated -45;
+ .5[z10,z11]=z2=.5[z12,z13];
+ pickup pencircle scaled normalline;
+ draw z10--z11;
+ draw z12--z13;
+enddef;
+
+def circle_var =
+ circle;
+ pickup pencircle scaled thinline;
+ noarrowTF;
+ arrow(z2,cir_ara,cir_arb,cir_phi,arr_lt,arr_phi)();
+enddef;
+
+def usource = %"uberarbeiten
+ numeric pl;
+ pl:=.5(uso_lt-uso_spc);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(uso_spc,0);
+ z3=z2+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z2--z3;
+ z1=.5[z4,z5]; x4-x5=0; y5-y4=uso_pls;
+ z2=.5[z6,z7]; x6-x7=0; y7-y6=uso_min;
+ pickup pensquare scaled thickline;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+
+def usource_var =
+ usource;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z1,z2],uso_ara,cir_arb,uso_phi,arr_lt,arr_phi)();
+enddef;
+
+def isource = %"uberarbeiten
+ numeric pl;
+ pl:=.5(iso_lt-(4-iso_dis)*iso_rad);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(iso_rad,0);
+ z3=z2+((2-iso_dis)*iso_rad,0);
+ z4=z3+(iso_rad,0);
+ z5=z4+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z4--z5;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled (2*iso_rad) shifted z2;
+ draw fullcircle scaled (2*iso_rad) shifted z3;
+enddef;
+
+def isource_var =
+ isource;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z2,z3],iso_ara,iso_arb,iso_phi,arr_lt,arr_phi)();
+enddef;
+
+def value = % "uberarbeiten
+ z0=(0,0);
+ z1=z0+(val_lt,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ z2=val_lft[z0,z1];
+ z3=val_rht[z0,z1];
+ triangle(z2,abs(z3-z2),val_phi,0);
+enddef;
+
+def coil = %"uberarbeiten
+ numeric pl;
+ pl:=.5(coi_lt-2coi_num*coi_rad);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(coi_rad,0);
+ for m=1 upto coi_num-1: z[m+2]=z[m+1]+(2coi_rad,0); endfor;
+ z[2+coi_num]=z[1+coi_num]+(coi_rad,0);
+ z[3+coi_num]=z[2+coi_num]+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z[2+coi_num]--z[3+coi_num];
+ pickup pencircle scaled normalline;
+ for m=1 upto coi_num: draw halfcircle scaled 2coi_rad shifted z[m+1]; endfor;
+enddef;
+
+def crystal = %"uberarbeiten
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cry_lt-2cry_spc-cry_wd);
+ z0=(0,0); z1=z0+(pl,0);
+ z2=z1+(cry_spc,0);
+ z3=z2+(cry_wd,0);
+ z4=z3+(cry_spc,0);
+ z5=z4+(pl,0);
+ z6-z7=z8-z9=z10-z11=z12-z13=(0,cry_ht);
+ z2=.5[z6,z7]; z3=.5[z8,z9]; z1=.5[z10,z11]; z4=.5[z12,z13];
+ draw z0--z1; draw z4--z5; draw z10--z11; draw z12--z13;
+ draw z7--z9--z8--z6--cycle;
+enddef;
+
+def inout = % "uberarbeiten
+ z0=(ioc_lt,0);
+ pickup pensquare scaled normalline;
+ z2=z0+(ioc_lt,0);
+ lft(z1)=z0+(.5ioc_dia,0);
+ draw z1--z2;
+enddef;
+
+def minout =
+ z0=(0,0);
+ z1=z0+(ioc_lt,0);
+ pickup pensquare scaled normalline;
+ arrow(z0,0,ioc_lt,180,ioc_arr,ioc_phi)(pickup pencircle scaled normalline);
+enddef;
+
+def ground = % Masse z0 z11
+ z0=(0,0); x1=x0=x2=x3;
+ y0-y1=gnd_ht;
+ y1-y2=y2-y3=gnd_spc;
+ y4=y1=y10; y2=y6; y3=y8;
+ z1=.5[z4,z5]; x5-x4=gnd_wd;
+ z1=.5[z10,z11]; x11-x10=GND_wd;
+ z2=.5[z6,z7]; x7-x6=gnd_wd*gnd_q;
+ z3=.5[z8,z9]; x9-x8=gnd_wd*gnd_q*gnd_q*gnd_q;
+enddef;
+
+"Spule";
+fourchars(0)(coil)(z[3+coi_num])(coi_ht#,coi_lt#,0);
+
+"Quarz";
+twochars(4)(crystal)(.5cry_ht#,cry_lt#,.5cry_ht#);
+
+"Lampe";
+twochars(6)(lamp)(cir_ht#,cir_lt#,cir_ht#);
+
+"Kreise mit Anschl"&ditto&"ussen";
+twochars(8)(circle)(cir_ht#,cir_lt#,cir_ht#);
+
+"Kreise mit Anschl"&ditto&"ussen variabel";
+twochars(10)(circle_var)(cir_ht#,cir_lt#,cir_ht#);
+
+"Stromquelle";
+twochars(12)(isource)(iso_ht#,iso_lt#,iso_ht#);
+
+"Stromquelle variabel";
+twochars(14)(isource_var)(iso_ht#,iso_lt#,iso_ht#);
+
+"Spannungsquelle";
+fourchars(16)(usource)(z3)(uso_ht#,uso_lt#,uso_ht#);
+
+"Spannungsquelle variabel";
+fourchars(20)(usource_var)(z3)(uso_ht#,uso_lt#,uso_ht#);
+
+"Schalter";
+twochars(24)(switch)(swt_ht#,swt_lt#,0);
+
+"Umschalter";
+eightchars(32)(dswitch)(dsw_wd#,.5dsw_ht#,.5dsw_ht#,0);
+
+"Stromquelle variante";
+twochars(44)(circle;
+ pickup pencircle scaled normalline;
+ draw z1--z3;)(cir_ht#,cir_lt#,cir_ht#);
+
+"Spannungsquelle variante";
+twochars(46)(circle;
+ pickup pencircle scaled normalline;
+ draw (z1--z3) rotatedaround (z2,90);)(cir_ht#,cir_lt#,cir_ht#);
+
+"Gas-Lamp";
+fourchars(40)(gaslamp)(z0)(1.5lLE#,4lLE#,1.5lLE#);
+
+"Stromquelle variante";
+twochars(44)(circle;
+ pickup pencircle scaled normalline;
+ draw z1--z3;)(cir_ht#,cir_lt#,cir_ht#);
+
+"Spannungsquelle variante";
+twochars(46)(circle;
+ pickup pencircle scaled normalline;
+ draw (z1--z3) rotatedaround (z2,90);)(cir_ht#,cir_lt#,cir_ht#);
+
+"Anschl"&ditto&"usse Pfeil";
+fourchars(232)
+ (minout;)(z1)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Anschl"&ditto&"usse leer";
+fourchars(240)
+ (inout;
+ pickup pencircle scaled thinline;
+ draw fullcircle scaled ioc_dia shifted z0;
+ )(z2)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Anschl"&ditto&"usse voll";
+fourchars(244)
+ (inout;
+ pickup pencircle scaled ioc_dia;
+ draw z0;
+ )(z2)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Str"&ditto&"ome";
+fourchars(248)(value;)(z1)(val_ht#,val_lt#,val_ht#);
+
+"wwire half R";
+beginchar(112,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=.5lLE;
+ x0=x1=x2;
+ x3=x4;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire R";
+beginchar(113,1lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=1lLE;
+ x0=x1=x2;
+ x3=x4;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half L";
+beginchar(114,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=.5lLE;
+ x0=x3=x4;
+ x1=x2;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half U";
+beginchar(115,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=.5lLE;
+ y0=y1=y2;
+ y3=y4;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire U";
+beginchar(116,0pt,1lLE#,0pt);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=1lLE;
+ y0=y1=y2;
+ y3=y4;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half D";
+beginchar(117,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=.5lLE;
+ y0=y3=y4;
+ y1=y2;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"dashed halfline R";
+beginchar(120,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.25lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed line R";
+beginchar(121,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ z2=.25[z0,z1];
+ z3=.75[z0,z1];
+ pickup pensquare scaled normalline;
+ draw z2--z3;
+endchar;
+
+"dashed halfline L";
+beginchar(122,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.25lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed halfline U";
+beginchar(123,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.25lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed line U";
+beginchar(124,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ z2=.25[z0,z1];
+ z3=.75[z0,z1];
+ pickup pensquare scaled normalline;
+ draw z2--z3;
+endchar;
+
+"dashed halfline D";
+beginchar(125,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.25lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal halb R";
+beginchar(128,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.5lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal R";
+beginchar(129,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal halb L";
+beginchar(130,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.5lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal halb U";
+beginchar(131,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.5lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal U";
+beginchar(132,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal halb D";
+beginchar(133,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.5lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"B"&ditto&"undel horizontal";
+beginchar(134,0,.8bnd_lt#,0pt);
+ z0=(0,0);
+ z0=.5[z2,z3];
+ z3-z2=(bnd_lt,0) rotated bnd_phi;
+ pickup pencircle scaled thinline;
+ draw z2--z3;
+endchar;
+
+"B"&ditto&"undel vertikal";
+beginchar(135,.8bnd_lt#,0pt,0pt);
+ z0=(0,0);
+ z0=.5[z2,z3];
+ z3-z2=(bnd_lt,0) rotated (90-bnd_phi);
+ pickup pencircle scaled thinline;
+ draw z2--z3;
+endchar;
+
+"Linie fett horizontal R";
+beginchar(136,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.5lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett horizontal R";
+beginchar(137,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett horizontal halb L";
+beginchar(138,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.5lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal halb U";
+beginchar(139,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.5lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal U";
+beginchar(140,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal halb D";
+beginchar(141,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.5lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Oscillograph";
+beginchar(142,osc_dia#,.5osc_dia#,.5osc_dia#);
+ z0=(0,0);
+ z1=z0;
+ z5=.5[z1,z3]=.5[z2,z4];
+ x2=x4;
+ y1=y3;
+ x3-x1=y4-y2=osc_dia;
+ .5osc_gt+osc_spc+osc_stm=.5osc_dia;
+ osc_stm=osc_t*osc_gt;
+ z6=z1+(osc_stm,0);
+ z7=z2+(0,osc_stm);
+ z8=z3+(-osc_stm,0);
+ z9=z4+(0,-osc_stm);
+ z6=.5[z10,z11]; x10=x11; x16-x17=y14-y15=x12-x13=y11-y10=osc_gt;
+ z7=.5[z12,z13]; y12=y13;
+ z8=.5[z14,z15]; x14=x15;
+ z9=.5[z16,z17]; y16=y17;
+ pickup pensquare scaled normalline; %drawing style by Andreas Tille
+ draw z1--z6; %code rewritten by SeTa
+ draw z2--z7;
+ draw z3--z8;
+ draw z4--z9;
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled osc_dia shifted z5;
+ pickup pensquare scaled thickline;
+ draw z10--z11;
+ draw z12--z13;
+ draw z14--z15;
+ draw z16--z17;
+endchar;
+
+"a small grey elephant: Thanks to Andreas Tille.";
+LE#:=.03mm#;
+define_pixels(LE);
+numeric nPnt;
+def p(expr px,py) = x[nPnt]:=px*LE; y[nPnt]:=py*LE; nPnt:=nPnt+1 enddef;
+
+beginchar(252,540LE#,265LE#,274LE#);
+ pickup pencircle scaled 0.4pt;
+ path a, b;
+ picture cutpic;
+ nPnt:=0;
+
+p( 0, 0); % copyright by Sebastian Tannert
+p( 0, 18); % Please think of the hard work!
+p( -2, 46);p( -3, 92);p( 8,117);p( 28,152);
+p( 38,171);p( 71,195);p(107,218);p(138,240);p(159,255);p(181,261);
+p(193,264);p(211,268);p(231,263);p(249,264);p(273,259);p(292,255);
+p(311,249);p(336,240);p(380,222);p(414,208);p(437,198);p(449,193);
+p(461,190);p(473,185);p(490,173);p(506,157);p(519,125);p(526, 91);
+p(530, 56);p(530, 35);p(523, 17);p(518, 1);p(509,-22);p(511,-46);
+p(515,-71);p(514,-96);p(512,-112);p(511,-135);p(507,-150);p(498,-171);
+p(485,-184);p(465,-197);p(448,-200);p(429,-194);p(418,-177);p(414,-168);
+p(420,-159);p(427,-157);p(435,-163);p(439,-171);p(449,-164);p(461,-165);
+p(470,-152);p(476,-139);p(476,-118);p(475,-97);p(465,-76);p(450,-62);
+p(442,-50);p(427,-36);p(417,-29);p(409,-27);p(392,-12);p(383,-10);
+p(374,-18);p(370,-34);p(363,-58);p(347,-92);p(343,-106);p(341,-126);
+p(330,-162);p(323,-196);p(322,-210);p(317,-237);p(327,-257);p(325,-268);
+p(310,-270);p(301,-272);p(284,-266);p(269,-258);p(268,-236);p(270,-210);
+p(282,-185);p(300,-151);p(315,-119);p(322,-93);p(325,-79);p(326,-63);
+p(315,-75);p(303,-101);p(292,-134);p(281,-164);p(269,-189);p(258,-220);
+p(259,-250);p(260,-266);p(252,-269);p(235,-260);p(221,-266);p(203,-261);
+p(194,-242);p(201,-227);p(206,-213);p(207,-190);p(215,-162);p(222,-147);
+p(225,-123);p(229,-96);p(234,-77);p(234,-65);p(236,-47);p(236,-30);
+p(236,-12);p(240,6);p(248,19);p(264,37);p(146,41);p(158,24);
+p(176,-3);p(188,-29);p(193,-53);p(185,-80);p(175,-106);p(165,-137);
+p(152,-173);p(143,-202);p(142,-222);p(136,-232);p(141,-253);p(132,-255);
+p(125,-255);p(105,-240);p(91,-239);p(75,-228);p(68,-205);p(70,-178);
+p(85,-156);p(96,-127);p(100,-112);p(95,-88);p(79,-62);p(60,-38);
+p(48,-16);p(36,18);p(28,63);p(24,41);p(28,17);p(29,-6);p(31,-32);
+p(26,-43);p(17,-65);p(15,-83);p(12,-106);p(7,-126);p(0,-141);
+p(-9,-147);p(-16,-131);p(-24,-110);p(-22,-94);p(-17,-75);p(-6,-55);
+p(-2,-34);p(2,-19);p(190,-63);p(209,-75);p(234,-69);p(31,-32);
+p(31,-44);p(26,-67);p(37,-95);p(45,-117);p(43,-158);p(38,-193);
+p(25,-224);p(29,-249);p(52,-266);p(71,-264);p(88,-266);p(113,-273);
+p(133,-273);p(138,-268);p(132,-255);p(457,48);p(462,30);p(481,21);
+p(477,40);p(449,32);p(456,11);p(478,5);p(464,60);p(486,61);
+p(499,37);p(363,93);p(352,110);p(348,129);p(358,149);p(386,162);
+p(414,173);p(427,178);p(443,167);p(456,157);p(461,142);p(450,126);
+p(436,110);p(419,74);p(409,53);p(396,40);p(372,51);p(365,67);
+p(358,148);p(375,139);p(387,124);p(401,128);p(411,146);p(418,163);
+p(427,168);p(443,167);p(444,161);p(434,152);p(432,135);p(440,124);
+p(451,128);p(460,141);p(455,157);p(350,138);p(459,138);p(-30,276);
+p(539,-283);p(539,276);p(-30,-283);p(427,-41);p(436,-54);
+
+draw for i:=0 upto 109: z[i]..endfor
+z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+for i:=124 upto 144: z[i]..endfor z145---z146..z147{down}..
+for i:=148 upto 164: z[i]..endfor z0;
+
+draw for i:=110 upto 116: z[i].. endfor z117;
+draw for i:=118 upto 122: z[i].. endfor z123{down};
+
+draw for i:=168 upto 182: z[i].. endfor z183;
+
+draw for i:=194 upto 210: z[i].. endfor cycle;
+
+draw for i:=211 upto 217: z[i].. endfor z218;
+
+a:= z226..z197..z198..z199..z200..z201..z202..z203..z227;
+b:= z226--z227;
+vshade(b,a,4,unitsquare scaled 1.8);
+
+a:= z227..z206..z207..z208..z209..z210..z194..
+ z195..z196..z226;
+b:= z227--z226;
+vshade(b,a,4,unitsquare scaled 1.8);
+
+a:= z228--z230;
+b:= z231--z229;
+vshade(a,b,4,unitsquare);
+
+cutpic=nullpicture;
+
+addto cutpic contour(z228+(0,10)--z230+(10,10)--z229--z231--cycle);
+
+pickup pencircle scaled 0.7pt
+
+addto cutpic contour (for i:=0 upto 109: z[i].. endfor
+ z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+ for i:=124 upto 144: z[i].. endfor z145---z146..z147{down}..
+ for i:=148 upto 164: z[i].. endfor cycle) withweight -1;
+
+addto cutpic doublepath
+ (for i:=0 upto 109: z[i].. endfor
+ z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+ for i:=124 upto 144: z[i].. endfor z145---z146..z147{down}..
+ for i:=148 upto 164: z[i].. endfor z0) withpen currentpen
+ withweight -1;
+
+addto cutpic doublepath z232..z233 withpen currentpen withweight -1;
+
+addto cutpic contour (for i:=168 upto 182: z[i].. endfor z183..z146..cycle)
+ withpen currentpen withweight -1;
+
+cull cutpic keeping (1,infinity) withweight -3;
+
+addto currentpicture also cutpic;
+
+pickup pencircle scaled .7pt;
+draw z184..z185{z186-z184}..z186;
+draw z186..z187{z184-z186}..z184;
+
+draw z188..z189..z190;
+draw z191..z192..z193;
+draw z232..z233;
+
+endchar;
+
+"Masse";
+beginchar(253,.5gnd_wd#,0,gnd_ht#+gnd_spc#+gnd_spc#);
+ ground
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+
+"MASSE";
+beginchar(254,.5GND_wd#,0,gnd_ht#);
+ ground
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pensquare scaled verythickline;
+ draw z10--z11;
+endchar;
+
+"Verbindungspunkt";
+beginchar(255,cdt_lt#,.5cdt_ht#,.5cdt_ht#);
+ pickup pencircle scaled cdt_dia;
+ z0=(0,0);
+ drawdot z0;
+endchar;
+
+end;
+%%
+%%
+%% End of file `cirest.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cisym.mf b/Master/texmf-dist/fonts/source/public/circ/cisym.mf
new file mode 100644
index 00000000000..b6dd9e5994a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cisym.mf
@@ -0,0 +1,181 @@
+%%
+%% This is file `cisym.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csysym')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def eqtriangle(expr l)=
+ x1=x2=x0=x3-l;
+ y3=y0;
+ z1-z2=(z3-z2) rotated 60;
+enddef;
+
+def sinus(expr A, k, s) =
+ j:=0;
+ for i:=0 step s until 360:
+ z[j]=(k*i,A*sind(i));
+ j:=j+1;
+ endfor
+ draw for i:=0 upto floor(360/s)-1: z[i].. endfor z[floor(360/s)];
+enddef;
+
+def disarrow =
+ z0=(0,0);
+ x0=x1=x2;
+ y1-y2=darr_ht;
+ .5[z1,z2]=z0;
+ y0=y3;
+ x3-x0=darr_lt;
+ pickup pensquare scaled normalline;
+ draw z0--z3;
+ draw z1--z2;
+ triangle(z0,darr_rad,darr_phi,0);
+enddef;
+
+def trigger =
+ z0=(0,0);
+ x1=x2; x3=x4;
+ y2=y4=y5; y0=y1=y3;
+ x3-x1=.17sym;
+ x1-x0=x5-x4=.3sym;
+ y2-y1=sym;
+enddef;
+
+def impuls =
+ z0=(0,0);
+ y0=y1=y4=y5=y7=y8=y9;
+ x1-x0=x3-x2=x5-x4=x8-x7=.6sym;
+ x9-x0=x6-x2=.2sym;
+ x1=x2; x3=x4; x6=x7;
+ y2-y1=y3-y4=y6-y7=sym;
+ x10=x0; y11=y10=y2;
+ x11=x8;
+enddef;
+
+ "Rechteckimpuls";
+ beginchar(1,1.9sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3--z4--z5;
+ endchar;
+
+ "positive Flanke";
+ beginchar(2,1.3sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3;
+ endchar;
+
+ "negative Flanke";
+ beginchar(3,1.3sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z2--z3--z4--z5) shifted (x0-x1,0);
+ endchar;
+
+ "Nadelimpuls";
+ beginchar(4,1.5sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z0--z1--z2--z6--z7--z8);
+ endchar;
+
+ "inverser Nadelimpuls";
+ beginchar(12,1.5sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z10--z2--z1--z7--z6--z11);
+ endchar;
+
+ "Rechteckspannung";
+ beginchar(5,3.1sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3--z4--z5;
+ draw (z0--z1--z2--z3--z4--z5) shifted z4;
+ endchar;
+
+ "Rechteckimpulse";
+ beginchar(13,2.6sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z6--z7--z8;
+ draw (z0--z1--z2--z6--z7--z8) shifted z4;
+
+ endchar;
+
+ "S"&ditto&"agezahn";
+ beginchar(6,1.9sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z9--z3--z4--z5;
+ endchar;
+
+ "Trigger";
+ beginchar(7,.87sym#,sym#,0);
+ trigger
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z5;
+ draw z1--z3--z4;
+ endchar;
+
+ "Abstandsst"&ditto&"uck";
+ fourchars(8)(disarrow)(z0)(.5darr_ht#,darr_lt#,.5darr_ht#);
+
+"sinus wave";
+beginchar(16,1.6sym#,9/35*sym#,9/35*sym#);
+ pickup pencircle scaled normalline;
+ sinus(9/35*sym,1.6sym/360,45);
+endchar;
+
+"variable sinus wave";
+beginchar(17,1.6sym#,9/35*sym#,9/35*sym#);
+ pickup pencircle scaled normalline;
+ sinus(9/35*sym,1.6sym/360,45);
+ fillarrow((.8*sym,0),20/35*sym,15/35*sym,45,15/35*sym,15)();
+endchar;
+
+"symbol of amplifier";
+beginchar(24,cosd(30)*1.9sym#,.95sym#,.95sym#);
+ z0=(0,0);
+ eqtriangle(1.9sym);
+ pickup pencircle scaled normalline;
+ draw z1--z2--z3--cycle;
+endchar;
+
+"symbol of buffer";
+beginchar(25,cosd(30)*1sym#,.5sym#,.5sym#);
+ z0=(0,0);
+ eqtriangle(1sym);
+ pickup pencircle scaled normalline;
+ draw z1--z2--z3--cycle;
+endchar;
+
+bye;
+%%
+%%
+%% End of file `cisym.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf b/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf
new file mode 100644
index 00000000000..d82dd1770a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf
@@ -0,0 +1,160 @@
+%%
+%% This is file `ciwidko.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csywidko')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def resistor =
+ numeric pl;
+ pl:=.5(res_lt-res_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(res_wd,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,res_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ z8=z0+(res_x,-res_y);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z2--z3;
+ draw z4--z6--z7--z5--cycle;
+enddef;
+
+usR_iwd# = 3lLE#;
+usR_iht# = 1lLE#;
+usR_wd# = 4lLE#;
+usR_f = .25;
+define_pixels(usR_iwd, usR_iht, usR_wd);
+
+vardef usR =
+ z0=(0,0);
+ z1=z0;
+ y1=y2=y3=y4;
+ x2-x1=usR_wd;
+ x4-x3=usR_iwd;
+ .5[x1,x2]=.5[x3,x4];
+ y5=y7=y9;
+ y6=y8=y10;
+ y5-y6=usR_iht;
+ .5[y5,y6]=y1;
+ x7-x5=x9-x7=x11-x9=x8-x6=x10-x8;
+ x6=.5[x5,x7];
+ x8-x6=(usR_wd-usR_iwd);
+ x5-x3=usR_f*(x8-x6);
+ pickup pensquare scaled normalline;
+ draw z1--z3--z5--z6--z7--z8--z9--z10--z4--z2;
+enddef;
+
+vardef usR_var =
+ {{
+ addxTF(shifted -z6 rotated -90);
+ usR;
+ pickup pensquare scaled normalline;
+ arrow(z6,.8res_ara,.5usR_iht,res_phi,arr_lt,arr_phi)
+ (pickup pencircle scaled normalline);
+ }}
+enddef;
+
+def resistor_var =
+ {{
+ addxTF(shifted -z8 rotated -90);
+ resistor;
+ pickup pensquare scaled normalline;
+ arrow(z8,res_ara,0,res_phi,arr_lt,arr_phi)
+ (pickup pencircle scaled normalline);
+ }}
+enddef;
+
+def capacitor =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cap_lt-cap_spc);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(cap_spc,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,cap_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ draw z0--z1;
+ draw z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+
+def capacitor_var =
+ capacitor;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z1,z2],cap_ara,cap_arb,cap_phi,arr_lt,arr_phi)();
+enddef;
+
+def electrolytic_capacitor =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cap_lt-cap_spc-cap_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(cap_spc,0);
+ z3=z2+(cap_wd,0);
+ z4=z3+(pl,0);
+ z5-z6=z7-z8=z9-z10=(0,cap_ht);
+ z1=.5[z5,z6];
+ z2=.5[z7,z8];
+ z3=.5[z9,z10];
+ draw z0--z1;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z9--z10--z8--cycle;
+enddef;
+
+"Widerstand";
+twochars(0)(resistor)(.5res_ht#,res_lt#,.5res_ht#);
+
+"US Widerstand";
+twochars(24)(usR)(.5res_ht#,res_lt#,.5res_ht#);
+
+"Widerstand variabel";
+eightchars(8)(resistor_var)(res_y#,res_lt#-res_x#,res_x#,res_o#);
+
+"US Widerstand variabel";
+eightchars(32)(usR_var)(res_y#,res_lt#-res_x#,res_x#,res_o#);
+
+"Kondensator";
+twochars(128)(capacitor)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+"Kondensator variabel";
+twochars(130)(capacitor_var)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+"Elektrolyt-Kondensator";
+fourchars(136)(electrolytic_capacitor)(z4)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+end;
+%%
+%%
+%% End of file `ciwidko.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/csym.mf b/Master/texmf-dist/fonts/source/public/circ/csym.mf
new file mode 100644
index 00000000000..8656865f7eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/csym.mf
@@ -0,0 +1,499 @@
+%%
+%% This is file `csym.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csym')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+mode_setup;
+
+lLE# :=7pt#;
+define_whole_pixels(lLE);
+
+linethickness#:= 0.45pt#;
+thinline# := 0.5linethickness#;
+normalline# := 1.0linethickness#;
+thickline# := 1.5linethickness#;
+verythickline#:= 2.5linethickness#;
+define_whole_blacker_pixels(normalline,thinline,thickline,verythickline);
+
+fontdimen6: 1lLE#;
+
+
+
+box_wd# := 4lLE#;
+define_pixels(box_wd);
+
+osc_dia# := 3lLE#;
+osc_t := .75; % settings from Andreas Tille
+osc_spc := .5lLE;
+define_pixels(osc_dia);
+
+ww_spc := .25lLE;
+
+darr_ht# := 1.3lLE#;
+darr_lt# := 1lLE#;
+darr_phi := 10;
+darr_rad := 1lLE;
+define_pixels(darr_ht,darr_lt);
+
+bnd_lt# := 1lLE#;
+bnd_phi := 60;
+define_pixels(bnd_lt);
+
+dsw_wd# := 4lLE#;
+dsw_ht# := 2lLE#;
+dsw_ov := .2lLE;
+dsw_t := .2;
+dsw_cc := .35;
+dsw_c := .3;
+dsw_phi := 12;
+define_pixels(dsw_wd,dsw_ht);
+
+tri_lt := 0.8lLE;
+tri_phi := 18;
+
+arr_lt := 0.8lLE;
+arr_phi := 10;
+
+cap_wd := .4lLE; %only for electrolytic capacitor
+cap_spx := .32lLE; %only for electrolytic capacitor
+cap_spy := .5lLE; %only for electrolytic capacitor
+cap_rad := .4lLE;
+cap_spc := .32lLE;
+cap_ht# := 2lLE#;
+cap_lt# := 2lLE#;
+cap_phi := 45;
+cap_ara := 1.4lLE;
+cap_arb := 1.2lLE;
+define_pixels(cap_lt,cap_ht);
+
+res_wd := 3lLE;
+res_ht# := 1lLE#;
+res_lt# := 4lLE#;
+res_ara# := 3.3lLE#;
+res_phi := 45;
+res_x# := 1lLE#;
+res_y# := 1lLE#;
+res_o# := res_ara#*cosd(res_phi)-res_y#;
+define_pixels(res_lt,res_ht,res_x,res_y,res_o,res_ara);
+
+did_wd := 1.5lLE;
+did_ht# := 1.5lLE#;
+did_lt# := 3lLE#;
+did_zlt := .4lLE;
+Dcap_ht := .5lLE;
+Dcap_spc := .15lLE;
+Dcap_wd := .35lLE;
+define_pixels(did_lt,did_ht);
+
+thy_ht# := 1lLE#;
+define_pixels(thy_ht);
+
+led_lt# := 1.5lLE#;
+led_wd := .8lLE;
+led_phi := 10; %aperture-angle of arrows
+led_psi := 50; %angle of arrows from baseline
+led_spc := .4lLE; %space between arrows
+led_spx := .4lLE;
+led_spy# := .8lLE#;
+define_pixels(led_spy, led_lt);
+
+pnp_dis := 0.18;
+npn_dis := (1-pnp_dis);
+tst_fac := 0.23333;
+tst_phi := 20;
+tst_iht := 3lLE;
+tst_wd# := 1lLE#;
+tst_lt# := 2lLE#;
+tst_ht# := 4lLE#;
+define_pixels(tst_ht,tst_lt,tst_wd);
+
+cry_wd := .8lLE;
+cry_spc := .32lLE;
+cry_ht# := 2lLE#;
+cry_lt# := 4lLE#;
+define_pixels(cry_lt,cry_ht);
+
+ioc_dia := .5lLE;
+ioc_ht# := .5lLE#;
+ioc_lt# := 1lLE#;
+ioc_arr := 0.7lLE;
+ioc_phi := 12;
+define_pixels(ioc_ht,ioc_lt);
+
+cdt_dia := .4lLE;
+cdt_ht# := .4lLE#;
+cdt_lt# := .2lLE#;
+define_pixels(cdt_ht,cdt_lt);
+
+GND_wd# := 1.4res_ht#;
+gnd_wd# := 1.8lLE#;
+gnd_ht# := 1lLE#;
+gnd_spc# := .2lLE#;
+gnd_q := .7;
+define_pixels(gnd_ht,gnd_spc,gnd_wd,GND_wd);
+
+inv_rad := .36lLE;
+gat_ht# := 5lLE#;
+gat_lt# := 7lLE#;
+define_pixels(gat_lt,gat_ht);
+
+bbd_wd# := 6lLE#;
+bbd_ht# := 10lLE#;
+bba_wd# := 8lLE#;
+bba_ht# := 4lLE#;
+define_pixels(bbd_wd,bbd_ht,bba_wd,bba_ht);
+
+pin_lt# := 2lLE#; % pin length
+ios_wd# := 2.5lLE#; % in out space
+mid_wd# := 0lLE#; % middle width
+pin_spc# := 2lLE#; % pin space
+out_spc# := 1lLE#; % outer space between pin and box
+
+define_pixels(pin_lt,ios_wd,mid_wd,pin_spc,pin_wht,out_spc);
+
+val_lt# := 2lLE#;
+val_phi := 7;
+val_lft := 0;
+val_rht := 0.9;
+val_ht# := .2lLE#;
+define_pixels(val_lt,val_ht);
+
+cir_ht# := 1.2lLE#;
+cir_lt# := 4lLE#;
+cir_phi := 45;
+cir_ara := 2.2lLE;
+cir_arb := 1.8lLE;
+define_pixels(cir_ht,cir_lt);
+
+uso_ht# := 1.5lLE#;
+uso_lt# := 4lLE#;
+uso_min := 1lLE;
+uso_pls := 3lLE;
+uso_spc := .5lLE;
+uso_rad := 3lLE;
+uso_dis := 0.2;
+uso_phi := 45;
+uso_ara := 1.6lLE;
+uso_arb := .8lLE;
+define_pixels(uso_ht,uso_lt);
+
+iso_ht# := 1.2lLE#;
+iso_lt# := 4lLE#;
+iso_dis := 0.7;
+iso_rad := .8lLE;
+iso_phi := 45;
+iso_ara := 2.2lLE;
+iso_arb := 1.8lLE;
+define_pixels(iso_ht,iso_lt);
+
+coi_ht# := .35lLE#;
+coi_lt# := 4lLE#;
+define_pixels(coi_ht,coi_lt);
+coi_rad := coi_ht;
+coi_num := 4;
+
+swt_lt# := 4lLE#;
+swt_phi := 30;
+swt_dis := 0.3;
+swt_ind := 0.8;
+swt_slt := 0.4lLE;
+swt_ht# := (1-2swt_dis)*sind(swt_phi)*swt_lt#;
+define_pixels(swt_ht,swt_lt);
+
+opv_ht# := 4.5lLE#;
+opv_lt# := 14lLE#;
+opv_dis# := 3lLE#;
+opv_frc := 1.1;
+define_pixels(opv_lt,opv_ht,opv_dis);
+
+fet_SD# := 4lLE#; % Source--Drain
+fet_GSx# := 2lLE#; % Gate--Source, x
+fet_GSy# := 1lLE#; % Gate--Source, y
+fet_Gsub := 1lLE; % Gate--Substrat
+fet_soSD := 0.3lLE; % Substrat "uber Source und Drain
+fet_sarr := 0.2lLE; % Substrat--Pfeil
+define_pixels(fet_SD,fet_GSx,fet_GSy);
+
+mos_SD# := fet_SD#;
+mos_GSx# := fet_GSx#;
+mos_GSy# := fet_GSy#;
+
+mos_sd := 2.3lLE;
+mos_Gsub := fet_Gsub;
+mos_ox := 0.3lLE;
+mos_soSD := fet_soSD;
+mos_rad := 0.2lLE;
+define_pixels(mos_SD,mos_GSx,mos_GSy);
+
+sym# := 232/36pt#;
+define_pixels(sym);
+
+
+extra_endchar:=extra_endchar & "labels(range 0 thru 30);";
+
+def {{ =
+ begingroup
+ save T; transform T;
+ T:=currenttransform;
+ save currenttransform;
+ transform currenttransform;
+ currenttransform:=T;
+enddef;
+
+def }} = endgroup; enddef;
+
+def noarrowTF =
+ transform _aT;
+ numeric _x[],_y[];
+ _aT:=currenttransform;
+ for $=1 upto 20 : _x[$]:=x[$]; _y[$]:=y[$]; endfor;
+ endgroup;
+ for $=1 upto 20 : x[$]:=_x[$]; y[$]:=_y[$]; endfor;
+ {{
+enddef;
+
+def addTF(text t) = currenttransform:=currenttransform t; enddef;
+def addxTF(text t) = currenttransform:=(identity t) transformed
+ currenttransform; enddef;
+
+def triangle(expr p, l, alpha, phi) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0+((l,0) rotated (alpha+phi));
+ iz2=iz0+((l,0) rotated (-alpha+phi));
+ fill ((iz0--iz1--iz2--cycle) shifted round(p));
+enddef;
+
+def arrow(expr p, a, b, phi, l, alpha)(text doother) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0-((l,0) rotated (alpha+phi));
+ iz2=iz0-((l,0) rotated (-alpha+phi));
+ iz3=p transformed if known _aT : _aT; else: identity; fi;
+ iz3-iz4=(b,0) rotated phi;
+ iz5-iz3=(a,0) rotated phi;
+ iz6-iz3=(a-3*rt(0),0) rotated phi;
+ draw iz4--iz6;
+ doother;
+ draw ((iz1--iz0--iz2) shifted round(iz5));
+ transform _aT; %Transformation l"oschen
+enddef;
+
+def fillarrow(expr p, a, b, phi, l, alpha)(text doother) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0-((l,0) rotated (alpha+phi));
+ iz2=iz0-((l,0) rotated (-alpha+phi));
+ iz3=p transformed if known _aT : _aT; else: identity; fi;
+ iz3-iz4=(b,0) rotated phi;
+ iz5-iz3=(a,0) rotated phi;
+ iz6-iz3=(a-3*rt(0),0) rotated phi;
+ draw iz4--iz6;
+ doother;
+ fill ((iz1--iz0--iz2--cycle) shifted round(iz5));
+ transform _aT; %Transformation l"oschen
+enddef;
+
+lightarr_spc#=.5lLE#;
+lightarr_lt#=1.5lLE#;
+lightarr_alt=round(.7lLE);
+lightarr_awd=round(.2lLE);
+define_pixels(lightarr_spc,lightarr_lt);
+def lightarrows(expr zpoint,lightarr_psi) =
+ z100=zpoint;
+ x100=x103=x105;
+ x101=x104=x106=x100+lightarr_lt;
+ y103=y104=y100+.5lightarr_spc;
+ y105=y106=y100-.5lightarr_spc;
+ x107=x108=x109=x110=x104-lightarr_alt;
+ y107-y108=y109-y110=good.y(lightarr_awd);
+ .5[y107,y108]=y104;
+ .5[y109,y110]=y106;
+ pickup pensquare scaled normalline rotated lightarr_psi;
+ draw (z107--z104--z108--cycle) rotatedaround(z100,lightarr_psi);
+ draw (z109--z106--z110--cycle) rotatedaround(z100,lightarr_psi);
+ draw (z103--z104) rotatedaround(z100,lightarr_psi);
+ draw (z105--z106) rotatedaround(z100,lightarr_psi);
+
+enddef;
+
+def eightchars(expr cfchar) % erster Zeichenkode
+ (text dochar) % Zeichenkommandos
+ (expr x, yf, ys, o) = % Abst"ande
+
+ beginchar(cfchar,x,ys,yf); charic:=o;
+ dochar;
+ endchar;
+ beginchar(cfchar+1,x,ys,yf); charic:=o;
+ {{addTF(reflectedabout(up,down)); dochar;}}
+ endchar;
+ beginchar(cfchar+2,yf,x,o+x); charic:=ys;
+ {{addTF(rotated 270); dochar;}}
+ endchar;
+ beginchar(cfchar+3,yf,x+o,x); charic:=ys;
+ {{addTF(rotated 270); addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+4,x,yf,ys); charic:=o;
+ {{addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+5,x,yf,ys); charic:=o;
+ {{addTF(rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+6,ys,x,x+o); charic:=yf;
+ {{addTF(rotated 270); addTF(reflectedabout(up,down)); dochar;}}
+ endchar;
+ beginchar(cfchar+7,ys,x+o,x); charic:=yf;
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+enddef;
+
+def twochars(expr cfchar)(text dochar)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+enddef;
+
+def fourchars(expr cfchar)(text dochar)(text op)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+2,wd,dp,ht);
+ {{addTF(shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+3,ht,wd,dp);
+ {{addTF(shifted -op rotated -90); dochar;}}
+ endchar;
+enddef;
+
+def fourfourchars(expr cfchar)(text dochar)(text op)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+2,wd,dp,ht);
+ {{addTF(shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+3,ht,wd,dp);
+ {{addTF(shifted -op rotated -90); dochar;}}
+ endchar;
+ beginchar(cfchar+4,wd,dp,ht);
+ {{addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+5,ht,wd,dp);
+ {{addTF(reflectedabout(left,right) rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+6,wd,ht,dp);
+ {{addTF(reflectedabout (left,right) shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+7,dp,wd,ht);
+ {{addTF(reflectedabout(left,right) shifted -op rotated -90); dochar;}}
+ endchar;
+enddef;
+
+
+primarydef x gridmod y = if x>0: (x mod y) else: -(-x mod y) fi enddef;
+
+def vshade(suffix pa, pb)(expr di, patternpath) = begingroup
+ path vl;
+ boolean ifshift;
+
+ if not cycle patternpath:
+ errmessage "patternpath has to be a cyclic path!" fi;
+
+ interim smoothing:=0; %change local only
+ interim autorounding:=0;
+
+ ifshift:=true;
+ ydi:=round(1.41di); % round against pattern in
+ xdi:=round(di); % pattern
+ if xdi<2: errmessage "di to small! di>=2" fi;
+ xs:=xpart(point 0 of pa);
+ xe:=xpart(point infinity of pa);
+ if xs>xe: ye:=xe; xe:=xs; xs:=ye; fi %force xs<xe
+ xs:=xs+((xe-xs) mod xdi) / 2; %adjust grid horizontally
+ vl:=(xs,infinity)--(xs,-infinity);
+ oys:=ypart(pa intersectionpoint vl);
+ oys:=oys-.5ydi; %adjust grid vertically
+ for xs:=xs step xdi until xe:
+ vl:=(xs,infinity)--(xs,-infinity); % new cut line
+ ys:=ypart(pa intersectionpoint vl);
+ ye:=ypart(pb intersectionpoint vl);
+ ifshift:=not(ifshift); %shift periodically
+ sy:=ydi-((ys-oys) gridmod ydi);
+ ys:=ys+sy if ifshift: if sy-.5ydi<0:+else:-fi .5ydi fi;
+ for ys:=ys step if ys>ye:-fi ydi until ye:
+ fill patternpath shifted (xs,ys);
+ endfor
+ endfor;
+ endgroup
+enddef;
+
+def hshade(suffix pa, pb)(expr di, patternpath) = begingroup
+ path hl;
+ boolean ifshift;
+
+ if not cycle patternpath:
+ errmessage "patternpath has to be a cyclic path!" fi;
+
+ interim smoothing:=0; %change local only
+ interim autorounding:=0;
+
+ ifshift:=true;
+ xdi:=round(1.41di); % round against pattern in
+ ydi:=round(di); % pattern
+ if ydi<2: errmessage "di to small! di>=2" fi;
+ ys:=ypart(point 0 of pa);
+ ye:=ypart(point infinity of pa);
+ if ys>ye: xe:=ye; ye:=ys; ys:=xe; fi %force ys<ye
+ ys:=ys+((ye-ys) mod ydi) / 2; %adjust grid vertically
+ hl:=(infinity,ys)--(-infinity,ys);
+ oxs:=xpart(pa intersectionpoint hl);
+ oxs:=oxs-.5ydi; %adjust grid horizontally
+ for ys:=ys step ydi until ye:
+ hl:=(infinity,ys)--(-infinity,ys); % new cut line
+ xs:=xpart(pa intersectionpoint hl);
+ xe:=xpart(pb intersectionpoint hl);
+ ifshift:=not(ifshift); %shift periodically
+ sx:=xdi-((xs-oxs) gridmod xdi);
+ xs:=xs+sx if ifshift: if sx-.5xdi<0:+else:-fi .5xdi fi;
+ for xs:=xs step if xs>xe:-fi xdi until xe:
+ fill patternpath shifted (xs,ys);
+ endfor
+ endfor;
+ endgroup
+enddef;
+
+endinput;
+%%
+%%
+%% End of file `csym.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/defcirc.mf b/Master/texmf-dist/fonts/source/public/circ/defcirc.mf
new file mode 100644
index 00000000000..34c990935ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/defcirc.mf
@@ -0,0 +1,160 @@
+%%
+%% This is file `defcirc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `defcircmf')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+mode_setup;
+font_coding_scheme:="CIRC symbols";
+
+message("CIRC %<*"&font_identifier_&">");
+message("CIRC \freecirc");
+message("CIRC \addCIRCfont "&font_identifier_);
+message("CIRC %</"&font_identifier_&">");
+message("CIRC %<+doc> \optionline "&optionname);
+message("CIRC %<*"&font_identifier_&",doc>");
+message("");
+
+def endCIRCfont =
+ message("CIRC %</"&font_identifier_&",doc>");
+ message("CIRC %<*"&font_identifier_&">");
+ message("CIRC \protectcirc");
+ message("CIRC %</"&font_identifier_&">");
+ message("");
+ bye;
+enddef;
+
+CIu#:=7pt#; define_whole_pixels(CIu);
+
+current_char_code:=0;
+
+pair shiftpoint;
+
+linethickness#:= 0.45pt#;
+thinline# := 0.5linethickness#;
+normalline# := 1.0linethickness#;
+thickline# := 1.5linethickness#;
+verythickline#:= 2.5linethickness#;
+define_whole_blacker_pixels(normalline,thinline,thickline,verythickline);
+
+fontdimen6: 1CIu#;
+
+extra_endchar:=extra_endchar & "labels(range 0 thru 100);";
+
+def {{ =
+ begingroup
+ save T; transform T;
+ T:=currenttransform;
+ save currenttransform;
+ transform currenttransform;
+ currenttransform:=T;
+enddef;
+
+def }} = endgroup; enddef;
+
+def addTF(text t) = currenttransform:=currenttransform t; enddef;
+
+def twopinchar(text name, lab, doc)(expr wd, ht, dp)(text body) =
+ message("CIRC \cdef "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code));
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code, wd, ht, dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+
+def twopincharfour(text name, lab, pini, pinii, doc)
+ (expr wd, ht, dp)(text body) =
+ message("CIRC \cdefiv "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code)&" "&
+ pini&" "&pinii);
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code,wd,ht,dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+
+def twopincharfourfour(text name, lab, pini, pinii, doc)
+ (expr wd, ht, dp)(text body) =
+ message("CIRC \cdefiviv "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code)&" "&
+ pini&" "&pinii);
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code,wd,ht,dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(reflectedabout(left,right)); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(reflectedabout(left,right) rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,ht,dp);
+ {{addTF(reflectedabout (left,right) shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(reflectedabout(left,right) shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+%%
+%%
+%% End of file `defcirc.mf'.