diff options
Diffstat (limited to 'Master/texmf-dist/metapost/feynmf/manpics.mp')
-rw-r--r-- | Master/texmf-dist/metapost/feynmf/manpics.mp | 331 |
1 files changed, 331 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/feynmf/manpics.mp b/Master/texmf-dist/metapost/feynmf/manpics.mp new file mode 100644 index 00000000000..e5e666e6f76 --- /dev/null +++ b/Master/texmf-dist/metapost/feynmf/manpics.mp @@ -0,0 +1,331 @@ +% manpics.mp -- pictures for the feynmf manual +% Copyright (C) 1995 by Thorsten.Ohl @ Physik.TH-Darmstadt.de +% $Id: manpics.mp,v 1.5 1996/10/08 20:22:02 ohl Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Feynmf 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, or (at your option) +% any later version. +% +% Feynmf 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., 675 Mass Ave, Cambridge, MA 02139, USA. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +input boxes + +verbatimtex + \font\sc=cmcsc10 + \font\manfnt=manfnt + \def\LaTeX{% + {\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} + \def\cs#1{{\tt\char`\\#1}} + \def\arg#1{{\tt\char`\{#1\char`\}}} + \def\c{{\tt\char`\%}} + \parindent=0pt + \parskip=0pt + \def\ctr#1{\vbox{\halign{\hfil##\hfil\cr#1\cr}}} +etex; + +def first_latex_pass = \ enddef; +def second_latex_pass = dashed withdots enddef; +def mf_pass = dashed evenly enddef; +def dvixx_pass = dashed evenly scaled 2 enddef; + +def connect (suffix from, to) = + (from.c -- to.c cutbefore bpath.from cutafter bpath.to) +enddef; + +ahlength := 4mm; +ahangle := 30; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginfig (1); + h := 10cm; + w := 13.3cm; + pickup pencircle scaled 1.5; + boxit.tex (btex \tt\vbox{ + \hbox{\c\ foo.tex} + \hbox{...} + \hbox{\cs{usepackage}\arg{feynmf}} + \hbox{...} + \hbox{\cs{begin}\arg{fmffile}\arg{fd}} + \hbox{\cs{begin}\arg{fmfchar*}(100,50)} + \hbox{...} + \hbox{\cs{end}\arg{fmfchar*}} + \hbox{...} + \hbox{\cs{end}\arg{fmffile}} + \hbox{...}} + etex); + boxit.mf (btex \tt\vbox{ + \hbox{\c\ fd.mf -- do not edit} + \hbox{input feynmf} + \hbox{beginchar(1,100*1pt\#,50*1pt\#,0);} + \hbox{\quad vinit;} + \hbox{\quad ...} + \hbox{\quad vfreeze;} + \hbox{\quad vdraw;} + \hbox{endchar;} + \hbox{...}} + etex); + boxit.log (btex \ctr{\LaTeX{} labels\cr{\tt fd.log}} etex); + boxit.t1 (btex \ctr{\LaTeX{} labels\cr{\tt fd.t1}} etex); + boxit.t2 (btex \ctr{\LaTeX{} labels\cr{\tt fd.t2}} etex); + boxit.tfm (btex \ctr{font metric\cr information\cr{\tt fd.tfm}} etex); + boxit.gf (btex \ctr{font bitmap\cr{\tt fd.300gf}} etex); + boxit.dvi (btex \ctr{device independent\cr output file\cr{\tt foo.dvi}} etex); + boxit.lpr (btex \ctr{printer\cr{\tt lpr}} etex); + tex.nw = (0,h); mf.ne = (w,h); + dvi.sw = (0,0); lpr.se = (w,0); + gf.c = .5[mf.c,lpr.c]; + log.c = .5[mf.c,dvi.c]; + tfm.c = .75[log.c,gf.c] - (0,2cm); + .5[log.c,dvi.c] = .1[t1.c,t2.c]; + t2.w - t1.e = (5mm,0); + % forsuffixes $ = tex, mf, log, tfm, gf, t1, t2, dvi, lpr: + % fill bpath.$ withcolor .9white; + % endfor + drawboxed (tex, mf, log, tfm, gf, t1, t2, dvi, lpr); + drawarrow connect (tex, dvi) second_latex_pass; + drawarrow connect (tex, mf) first_latex_pass; + drawarrow connect (mf, log) mf_pass; + drawarrow connect (mf, tfm) mf_pass; + drawarrow connect (mf, gf) mf_pass; + drawarrow connect (log, t1) second_latex_pass; + drawarrow connect (log, t2) second_latex_pass; + drawarrow connect (t1, dvi) second_latex_pass; + drawarrow connect (t2, dvi) second_latex_pass; + drawarrow connect (tfm, dvi) second_latex_pass; + drawarrow connect (tfm, lpr) dvixx_pass; + drawarrow connect (gf, lpr) dvixx_pass; + drawarrow connect (dvi, lpr) dvixx_pass; + circleit.latex1 (btex {\tt latex foo} etex); + latex1.dx = latex1.dy; + circleit.latex2 (btex {\tt latex foo} etex); + latex2.dx = latex2.dy; + % circleit.mf.gf (btex {\tt mf fd} etex); + % mf.gf.dx = mf.gf.dy; + circleit.mf.tfm (btex {\tt mf fd} etex); + mf.tfm.dx = mf.tfm.dy; + % circleit.mf.log (btex {\tt mf fd} etex); + % mf.log.dx = mf.log.dy; + circleit.dvixx (btex {\tt dvixx foo} etex); + dvixx.dx = dvixx.dy; + latex1.s - (0,2mm) = point .5 of connect (tex, mf); + latex2.e + (2mm,0) = point .5 of connect (tex, dvi); + % mf.gf.w - (2mm,0) = point .5 of connect (mf, gf); + mf.tfm.e + (2mm,0) = point .5 of connect (mf, tfm); + % mf.log.w - (2mm,0) = point .5 of connect (mf, log); + dvixx.n + (0,2mm) = point .5 of connect (dvi, lpr); + forsuffixes $ = latex1, latex2, mf.tfm, dvixx: + fill bpath.$ withcolor .9white; + endfor + drawboxed (latex1, latex2, mf.tfm, dvixx); +endfig; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginfig (2); + h := 10cm; + w := 13.3cm; + pickup pencircle scaled 1.5; + boxit.tex (btex \tt\vbox{ + \hbox{\c\ foo.tex} + \hbox{...} + \hbox{\cs{usepackage}\arg{feynmp}} + \hbox{...} + \hbox{\cs{begin}\arg{fmffile}\arg{fd}} + \hbox{\cs{begin}\arg{fmfchar*}(100,50)} + \hbox{...} + \hbox{\cs{end}\arg{fmfchar*}} + \hbox{...} + \hbox{\cs{end}\arg{fmffile}} + \hbox{...}} + etex); + boxit.mp (btex \tt\vbox{ + \hbox{\c\ fd.mp -- do not edit} + \hbox{input feynmp} + \hbox{beginchar(1,100*1pt\#,50*1pt\#,0);} + \hbox{\quad vinit;} + \hbox{\quad ...} + \hbox{\quad vfreeze;} + \hbox{\quad vdraw;} + \hbox{endchar;} + \hbox{...}} + etex); + boxit.t1 (btex \ctr{\LaTeX{} labels\cr{\tt fd.t1}} etex); + boxit.t2 (btex \ctr{\LaTeX{} labels\cr{\tt fd.t2}} etex); + boxit.p1 (btex \ctr{encapsulated\cr PostScript\cr file\cr{\tt fd.1}} etex); + boxit.p2 (btex \ctr{encapsulated\cr PostScript\cr file\cr{\tt fd.2}} etex); + boxit.dvi (btex \ctr{device independent\cr output file\cr{\tt foo.dvi}} etex); + boxit.lpr (btex \ctr{printer\cr{\tt lpr}} etex); + tex.nw = (0,h); mp.ne = (w,h); + dvi.sw = (0,0); lpr.se = (w,0); + .5[mp.c,dvi.c] = .8[t1.c,t2.c]; + t2.w - t1.e = (5mm,0); + .5[mp.c,lpr.c] = .8[p1.c,p2.c]; + p2.w - p1.e = (5mm,2.5cm); + drawboxed (tex, mp, t1, t2, p1, p2, dvi, lpr); + drawarrow connect (tex, dvi) second_latex_pass; + drawarrow connect (tex, mp) first_latex_pass; + drawarrow connect (mp, t1) mf_pass; + drawarrow connect (mp, t2) mf_pass; + drawarrow connect (mp, p1) mf_pass; + drawarrow connect (mp, p2) mf_pass; + drawarrow connect (t1, dvi) second_latex_pass; + drawarrow connect (t2, dvi) second_latex_pass; + drawarrow connect (p1, dvi) second_latex_pass; + drawarrow connect (p2, dvi) second_latex_pass; + drawarrow connect (p1, lpr) dvixx_pass; + drawarrow connect (p2, lpr) dvixx_pass; + drawarrow connect (dvi, lpr) dvixx_pass; + circleit.latex1 (btex {\tt latex foo} etex); + latex1.dx = latex1.dy; + circleit.latex2 (btex {\tt latex foo} etex); + latex2.dx = latex2.dy; + circleit.run.mp (btex {\tt mp fd} etex); + run.mp.dx = run.mp.dy; + circleit.dvixx (btex {\tt dvixx foo} etex); + dvixx.dx = dvixx.dy; + latex1.s - (0,2mm) = point .5 of connect (tex, mp); + latex2.e + (2mm,0) = point .5 of connect (tex, dvi); + run.mp.w - (2mm,0) = point .5 of connect (mp, t2); + dvixx.n + (0,2mm) = point .5 of connect (dvi, lpr); + forsuffixes $ = latex1, latex2, run.mp, dvixx: + fill bpath.$ withcolor .9white; + endfor + drawboxed (latex1, latex2, run.mp, dvixx); +endfig; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +vardef declare_boxes (text l) = + forsuffixes $ = l: + pair $.n, $.e, $.s, $.w, $.ne, $.se, $.sw, $.nw, $.c; + endfor +enddef; + +vardef setup_boxes (text l) = + forsuffixes $ = l: + $.n = .5[$.nw, $.ne]; $.s = .5[$.sw, $.se]; + $.w = .5[$.nw, $.sw]; $.e = .5[$.ne, $.se]; + $.c = .5[$.n, $.s]; + endfor +enddef; + +vardef border suffix b = + b.nw -- b.ne -- b.se -- b.sw -- cycle +enddef; + +beginfig (3); + h := 10cm; + w := 13.3cm; + pickup pencircle scaled 1.5; + + declare_boxes (mf, tex, immediate, list); + setup_boxes (mf, tex); + + list.n = .5[list.nw, list.ne]; + list.s = .5[list.sw, list.se]; + list.w = .5[list.nw, list.sw]; + % list.e free! + list.c = .5[list.n, list.s]; + + immediate.n = .5[immediate.nw, immediate.ne]; + immediate.s = .5[immediate.sw, immediate.se]; + % immediate.w free! + immediate.e = .5[immediate.ne, immediate.se]; + immediate.c = .5[immediate.n, immediate.s]; + + mf.sw = (0,0); mf.se = (w,0); + tex.nw = (0,h); tex.ne = (w,h); + + mf.nw = tex.sw; mf.ne = tex.se; + tex.sw = .5[tex.nw,mf.sw]; tex.se = .5[tex.ne,mf.se]; + + list.w = .5[tex.nw,mf.sw]; + list.e - list.w = immediate.e - immediate.w = (.4w,0); + list.nw - list.sw = (0,.8h); + immediate.ne - immediate.se = (0,.5h); + immediate.w = list.e; immediate.nw = list.ne; immediate.sw = list.se; + + list.ne = .7[list.nw,immediate.ne]; + list.se = .3[list.sw,immediate.se]; + + fill border tex withcolor .9white; % draw border tex; + fill border mf withcolor .6white; % draw border mf; + fill border list withcolor .8white; % draw border list; + fill border immediate withcolor .7white; % draw border immediate; + + path imm_to_lst, lst_to_imm, tex_to_mf; + + imm_to_lst = immediate.c .. .7[immediate.sw,immediate.nw] .. list.c; + lst_to_imm = list.c .. .3[immediate.sw,immediate.nw] .. immediate.c; + tex_to_mf = .85[tex.nw,tex.ne] .. .95[tex.sw,tex.se] .. .85[mf.sw,mf.se]; + + drawarrow subpath (.3length(imm_to_lst), .7length(imm_to_lst)) of imm_to_lst; + drawarrow subpath (.3length(lst_to_imm), .7length(lst_to_imm)) of lst_to_imm; + drawarrow subpath (.3length(tex_to_mf), .7length(tex_to_mf)) of tex_to_mf; + + boxit.name.imm_to_lst (btex \cs{fmfforce} etex); + boxit.name.lst_to_imm (btex \tt\ctr{vloc\cr vpath} etex); + boxit.name.tex_to_mf (btex \cs{fmfcmd} etex); + boxit.name.tex (btex \LaTeX etex); + boxit.name.mf (btex \manfnt METAFONT etex); + + name.imm_to_lst.s = point .5length(imm_to_lst) of imm_to_lst + (-2mm,3mm); + name.lst_to_imm.n = point .5length(lst_to_imm) of lst_to_imm - (0,2mm); + name.tex_to_mf.se = point .5length(tex_to_mf) of tex_to_mf - (2mm,0); + name.tex.ne = (.95w,.95h); + name.mf.se = (.95w,.05h); + + boxit.name.lst (btex \vbox{\halign{ + \hfil # \cr + {\sc Vertex Mode}\cr\cr + Objects:\qquad\cr + vertices\cr + arcs\cr + polygons\cr\cr + Commands:\qquad\cr + \cs{fmf}\arg{}\arg{}\cr + \cs{fmfv}\arg{}\arg{}\cr + \cs{fmfleft}\arg{}\cr + {\tt ...}\cr}} + etex); + + boxit.name.imm (btex \vbox{\halign{ + \hfil #\cr + {\sc Immediate Mode}\cr\cr + Objects:\qquad\cr + pairs\cr + paths\cr\cr + Commands:\qquad\cr + \cs{fmfi}\arg{}\arg{}\cr + \cs{fmfiv}\arg{}\cr + \cs{fmfiequ}\arg{}\cr + {\tt ...}\cr}} + etex); + + name.lst.w = list.w + (2mm,0); + name.imm.e = immediate.e - (2mm,0); + + forsuffixes $ = imm_to_lst, lst_to_imm, tex_to_mf, imm, lst, tex, mf: + fill bpath.name.$ withcolor white; + drawunboxed (name.$); + endfor + +endfig; + +end; +endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Local Variables: +compile-command:"sh -c 'mp manpics && tex mproof manpics.[0-9]* && dvips mproof'" +End: |