Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on MetaPost.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/metapost.e>
#           or at <http://angg.twu.net/e/metapost.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.mailing-lists»		(to "mailing-lists")
# «.debian»			(to "debian")
# «.drawdot»			(to "drawdot")
# «.scrollmode»			(to "scrollmode")
# «.emp»			(to "emp")
# «.asymptote»			(to "asymptote")
# «.euclid-byrne»		(to "euclid-byrne")
# «.stitz-zeager»		(to "stitz-zeager")
# «.entry-level-metapost»	(to "entry-level-metapost")




# (find-angg ".emacs.papers" "metapost")
# (find-angg ".emacs" "metapost")
# (find-es "tex" "metapost")
# (find-zsh "availabledebs | sort | grep texlive-metapost")





#####
#
# mailing-lists
# 2019dec01
#
#####

# «mailing-lists» (to ".mailing-lists")
# https://tug.org/mailman/listinfo/metapost
# https://tug.org/pipermail/metapost/




#####
#
# Debian packages
# 2011apr14
#
#####

# «debian»  (to ".debian")
# (find-status   "texlive-metapost")
# (find-vldifile "texlive-metapost.list")
# (find-udfile   "texlive-metapost/")
# (find-status   "texlive-metapost-doc")
# (find-vldifile "texlive-metapost-doc.list")
# (find-udfile   "texlive-metapost-doc/")

/usr/share/texmf-texlive/metapost/base

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat /var/lib/dpkg/info/texlive-metapost-doc.list \
  | grep 'pdf$' \
  | sort \
  | tee /tmp/o \
  | awk '{ print "(find-pdf-page \"" $1 "\")"}' \
  | tee /tmp/o2

# (find-fline "/tmp/o2")

# (find-mpintropage 1  "Contents")
# (find-mpintrotext "")
# (find-mpintropage 10 "btex $f(x)=x^2$ etex")
# (find-mpintrotext    "btex $f(x)=x^2$ etex")
# (find-mpmanpage  1 "Contents")
# (find-mpmantext "")
# (find-mpmanpage (+ 1  5) "outputtemplate :=")
# (find-mpmantext          "outputtemplate :=")
# (find-mpmanpage (+ 1 27) "when prologues is 3")
# (find-mpmantext          "when prologues is 3")

# (find-mpmanpage (+ 1  8) "4     Curves")
# (find-mpmantext          "4     Curves")

# (find-mpmanfile "examples.mp.gz" "beginfig(5)")
# (find-mpmanpage (+ 1 42) "beginfig(34)")
# (find-mpmantext          "4     Curves")


# (find-mpmanpage (+ 1 42) "beginfig(34)")
# (find-mpmantext          "4     Curves")
# (find-mpmanfile "examples.mp.gz" "beginfig(1)")
# (find-mpmanfile "examples.mp.gz" "% Keep the function single-valued")
# (find-mpmanfile "mpman.tex.gz" "z1 = (60,40)")
# (find-mpmangrep "zgrep -nH -e 60,40 *")
# (find-mpmangrep "zgrep -nH -e beginfig.26. *")






* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
outputtemplate:="/tmp/mp-%3c.mps"; prologues:=3;
beginfig(26);
numeric scf, #, t[]; 
3.2scf = 2.4in;
path fun;
# = .1;  % Keep the function single-valued
fun = ((0,-1#)..(1,.5#){right}..(1.9,.2#){right}..{curl .1}(3.2,2#))
  yscaled(1/#) scaled scf;
x1 = 2.5scf;
for i=1 upto 2:
  (t[i],whatever) =
    fun intersectiontimes ((x[i],-infinity)--(x[i],infinity));
  z[i] = point t[i] of fun;
  z[i]-(x[i+1],0) = whatever*direction t[i] of fun;
  draw (x[i],0)--z[i]--(x[i+1],0);
  fill fullcircle scaled 3bp shifted z[i];
endfor
label.bot("x1", (x1,0));
label.bot("x2", (x2,0));
label.bot("x3", (x3,0));
draw (0,0)--(3.2scf,0);
pickup pencircle scaled 1pt;
draw fun;
endfig;
% (find-pspage "/tmp/mp-026.mps")


beginfig(26);
endfig;




% (find-mpmanpage (+ 1 36) "beginfig(26)")
% (find-mpmantext          "4     Curves")





beginfig(1);
a=.7in; b=0.5in;
z0=(0,0); z1=(a,0); z2=(0,b);
z0=.5[z1,z3]=.5[z2,z4];
draw z1..z2..z3..z4..cycle;
drawarrow z0..z1;
drawarrow z0..z2;
label.top(btex $a$ etex, .5[z0,z1]);
label.lft(btex $b$ etex, .5[z0,z2]);
endfig;


* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
outputtemplate:="/tmp/mp-%3c.mps"; prologues:=3;
beginfig(1);
endfig;
% (find-pspage "/tmp/mp-001.mps")




* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
outputtemplate:="/tmp/mp-%3c.mps"; prologues:=3;
beginfig(1);
endfig;
% (find-pspage "/tmp/mp-001.mps")


beginfig(1);
  draw origin--(100,100);
endfig;

beginfig(5);
for i=0 upto 2:
  z[i]=(0,50i); z[i+3]-z[i]=(60,40);
  z[i+6]-z[i]=(120,0);
endfor
pickup pencircle scaled 24;
def gray = withcolor .8white enddef;
draw z0--z3--z6 gray;
linejoin:=mitered; draw z1..z4--z7 gray;
linejoin:=beveled; draw z2..z5--z8 gray;
dotlabels.bot(0,1,2,3,4,5,6,7,8);
endfig; linejoin:=rounded;

% (find-pspage "/tmp/mp-005.mps")


* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
beginfig(1);


;; (find-zsh "dmissing microtype")


http://www.gnu.org/software/3dldf/



#####
#
# scrollmode
# 2011apr14
#
#####

# «scrollmode»  (to ".scrollmode")

* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
tracingonline:=1; scrollmode;
show drawdot;
show drawdot(1);

# (find-mfbookpage (+ 13  61)   "tracingonline:=1; scrollmode;")
# (find-mfbooktext              "tracingonline:=1; scrollmode;")



#####
#
# drawdot
# 2011apr14
#
#####

# «drawdot»  (to ".drawdot")
# (find-metapostgrep "grep -nH -e drawdot base/*")
# (find-metapostfile "base/mfplain.mp" "def drawdot")
# (find-metapostfile "base/mfplain.mp" "def t_ =")
# (find-metapostfile "base/mfplain.mp" "def pc_ =")
# (find-metapostfile "base/plain.mp"   "def drawdot")
# (find-metapostfile "base/plain.mp"   "def _op_ =")
(find-3
 '(find-metapostfile "base/mfplain.mp" "def drawdot")
 '(find-metapostfile "base/plain.mp"   "def drawdot")
 )



#####
#
# Embedded MetaPost
# 2011apr25
#
#####

# «emp»  (to ".emp")
# http://www.ntg.nl/maps/28/16.pdf
# (find-pdf-page "/usr/share/doc/texlive-metapost-doc/latex/emp/emp.pdf")



# (find-sh "locate luamplib")

# (find-fline "/usr/share/texmf-texlive/tex/luatex/luamplib/")
# (find-fline "/usr/share/texmf-texlive/tex/luatex/luamplib/luamplib-createmem.lua")
# (find-fline "/usr/share/texmf-texlive/tex/luatex/luamplib/luamplib.lua")
# (find-fline "/usr/share/texmf-texlive/tex/luatex/luamplib/luamplib.sty")

;; (find-udfile "texlive-luatex/luatex/luamplib/")
;; (find-udfile "texlive-luatex/luatex/luamplib/README")
(code-pdf-page "luamplib" "/usr/share/doc/texlive-luatex/luatex/luamplib/luamplib.pdf")
(code-pdf-text "luamplib" "/usr/share/doc/texlive-luatex/luatex/luamplib/luamplib.pdf")
;; (find-luamplibpage)
;; (find-luamplibtext)






#####
#
# Asymptote
# 2013may04
#
#####

# «asymptote» (to ".asymptote")
# http://www.artofproblemsolving.com/Wiki/index.php/Asymptote_%28Vector_Graphics_Language%29
# https://asymptote.sourceforge.io/gallery/
# https://asymptote.sourceforge.io/






#####
#
# Jeremy Button's MetaPost version of Oliver Byrne's Euclid's Elements
# 2020apr07
#
#####

# «euclid-byrne» (to ".euclid-byrne")
# See: (find-books "__analysis/__analysis.el" "euclid-byrne")
# http://www.math.ubc.ca/~cass/Euclid/byrne.html
# https://github.com/jemmybutton/byrne-euclid
# https://github.com/jemmybutton/byrne-euclid/releases/tag/0.4%2B0.1
# https://github.com/jemmybutton/byrne-euclid/releases/download/0.4%2B0.1/byrne_context.pdf
# (code-pdf-page "byrneeuclid" "$S/https/github.com/jemmybutton/byrne-euclid/releases/download/0.4%2B0.1/byrne_context.pdf")
# (code-pdf-text "byrneeuclid" "$S/https/github.com/jemmybutton/byrne-euclid/releases/download/0.4%2B0.1/byrne_context.pdf")
# (find-byrneeuclidpage)
# (find-byrneeuclidtext)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv ~/usrc/byrne-euclid/
cd      ~/usrc/
git clone https://github.com/jemmybutton/byrne-euclid
cd      ~/usrc/byrne-euclid/

export PAGER=cat
git branch --list -a
git for-each-ref
git log --oneline --graph --all -20

# (find-fline "~/usrc/")
# (find-fline "~/usrc/byrne-euclid/")
# (find-gitk  "~/usrc/byrne-euclid/")

# (code-c-d "byrneeuclid" "~/usrc/byrne-euclid/")
# (find-byrneeuclidfile "")
# (find-byrneeuclidgrep "grep --color -nH --null -e input *")
# (find-byrneeuclidfile "byrne_euclid_man.tex" "to generate the book pdf")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/usrc/byrne-euclid/

context byrne_euclid_man.tex  |& tee ocbe
# (find-pdf-page "~/usrc/byrne-euclid/byrne_euclid_man.pdf")
# (find-pdf-text "~/usrc/byrne-euclid/byrne_euclid_man.pdf")

context byrne_context.tex     |& tee ocbc
# mpost lettrines.mp
# context byrne_context.tex

# On building errors:
#   (find-byrneeuclidfile "ocbc"              "EBGaramond12-Regular")
#   (find-byrneeuclidfile "byrne_context.log" "EBGaramond12-Regular")
#   https://github.com/jemmybutton/byrne-euclid/issues/41
# See:
#   https://wiki.contextgarden.net/Fonts_in_LuaTeX#How_LuaTeX_handles_system_fonts






#####
#
# stitz-zeager
# 2022jul26
#
#####

# «stitz-zeager»  (to ".stitz-zeager")
# (find-books "__analysis/__analysis.el" "stitz-zeager")
# https://stitz-zeager.com/Precalc4Source.zip
# https://stitz-zeager.com/Precalculus4.pdf
# (code-c-d "stitzz4" "~/usrc/Precalc4Prelim/")
# (find-stitzz4file "")
# (find-stitzz4sh "find * | grep jp")
# (find-stitzz4file "IntroductiontoFunctions/FunctionsandtheirRepresentations.tex")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "~/usrc/Precalc4Prelim/")
rm -Rv   ~/usrc/Precalc4Prelim/ ~/usrc/__MACOSX/
mkdir    ~/usrc/Precalc4Prelim/
cd       ~/usrc/Precalc4Prelim/
unzip -d ~/usrc/ $S/https/stitz-zeager.com/Precalc4Source.zip
rm -Rv   ~/usrc/__MACOSX/





#####
#
# entry-level-metapost
# 2022dec20
#
#####

# «entry-level-metapost»  (to ".entry-level-metapost")
# https://tug.org/TUGboat/contents.html Entry-level MetaPost
# https://tug.org/TUGboat/intromp/
# https://tug.org/TUGboat/intromp/tb106voipio-grid.pdf
# https://tug.org/TUGboat/intromp/tb107voipio-moveit.pdf
# https://tug.org/TUGboat/intromp/tb108voipio-color.pdf
# https://tug.org/TUGboat/intromp/tb109voipio-lines.pdf

;; <voipio1>
;; https://tug.org/TUGboat/intromp/tb106voipio-grid.pdf
;; (find-fline "$S/https/tug.org/TUGboat/intromp/")
(code-pdf-page "voipio1" "$S/https/tug.org/TUGboat/intromp/tb106voipio-grid.pdf")
(code-pdf-text "voipio1" "$S/https/tug.org/TUGboat/intromp/tb106voipio-grid.pdf")
;; (find-voipio1page)
;; (find-voipio1text)

# (find-angg "MP/test1.mp")











https://tex.stackexchange.com/questions/517137/how-do-i-draw-this-picture-of-boxes-with-arrows-in-latex

\documentclass[border=5mm]{standalone}
\usepackage{luatex85}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
def drawtailarrow expr p = _apth := p; _fintarr enddef;
def _fintarr text t =
  draw (up--down) scaled 3 shifted point 0 of _apth t;
  draw _apth t;
  filldraw arrowhead _apth t
enddef;
beginfig(1);
    numeric ht, wd; ht = 21; wd = 34;

    path box[];
    box1 = unitsquare xscaled wd yscaled ht;
    box3 = box1 shifted (3 wd, 0);
    box5 = box1 shifted (6 wd, 0);

    box2 = unitsquare scaled ht shifted point 1 of box1;
    box4 = unitsquare scaled ht shifted point 1 of box3;
    box6 = unitsquare scaled ht shifted point 1 of box5;

    z0 = center box1 shifted (-3/2 wd, 0);
    label("$C$", z0);
    label("$4$", center box1);
    label("$6$", center box3);
    label("$6$", center box5);
    label("Nil", center box6);

    forsuffixes $=1,2,3,4,5,6: draw box$ withcolor 3/4 blue; endfor

    interim linecap := 0;  % these parameters improve the look of 
    interim linejoin := 0; % the arrows drawn with a fat pen
    interim ahangle := 30;

    drawoptions(withpen pencircle scaled 1.2 withcolor 2/3 red);
    drawtailarrow z0 shifted 10 right -- point 7/2 of box1;
    drawtailarrow center box2 -- point 7/2 of box3;
    drawtailarrow center box4 -- point 7/2 of box5;
    drawoptions();

endfig;
\end{mplibcode}
\end{document}





# http://tug.org/mailman/listinfo/metapost
# http://tug.org/pipermail/metapost/
# http://www.tug.org/metapost.html
# http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html
# http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.305.gif

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
for i in $(seq 1 305); do
  psnec http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.$i.gif
done

http://www.tug.org/TUGboat/Articles/tb28-3/tb90hoekwater-mplib.pdf
http://www.tug.org/TUGboat/Articles/tb29-3/tb93hoekwater.pdf
http://www.tug.org/TUGboat/Articles/tb28-3/tb90hoekwater-mplib.pdf
http://www.tug.org/TUGboat/Articles/tb30-1/tb94zheng.pdf






tracingall;






#  Local Variables:
#  coding:               utf-8-unix
#  End: