summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/feynmf/manpics.mp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/feynmf/manpics.mp
Initial commit
Diffstat (limited to 'macros/latex/contrib/feynmf/manpics.mp')
-rw-r--r--macros/latex/contrib/feynmf/manpics.mp331
1 files changed, 331 insertions, 0 deletions
diff --git a/macros/latex/contrib/feynmf/manpics.mp b/macros/latex/contrib/feynmf/manpics.mp
new file mode 100644
index 0000000000..e5e666e6f7
--- /dev/null
+++ b/macros/latex/contrib/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: