diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/circ/cioptic.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/circ/cioptic.mf | 539 |
1 files changed, 539 insertions, 0 deletions
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'. |