diff options
author | Karl Berry <karl@freefriends.org> | 2015-07-29 20:44:49 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-07-29 20:44:49 +0000 |
commit | 476e23fc645b7f0eb1ffcaae59622b9f62bf198b (patch) | |
tree | f61dc390a811accf13cdadebde8d84fcfb089c44 /Master/texmf-dist/metapost | |
parent | 9a477aa1877f9f798c26d3bee9d239db61fc7838 (diff) |
roundrect (29jul15)
git-svn-id: svn://tug.org/texlive/trunk@37994 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/metapost')
-rw-r--r-- | Master/texmf-dist/metapost/roundrect/roundrect.mp | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/roundrect/roundrect.mp b/Master/texmf-dist/metapost/roundrect/roundrect.mp new file mode 100644 index 00000000000..e14be7511e4 --- /dev/null +++ b/Master/texmf-dist/metapost/roundrect/roundrect.mp @@ -0,0 +1,192 @@ +%% +%% This is file `roundrect.mp', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% roundrect.dtx (with options: `package') +%% This is a generated file. +%% +%% This document is copyright 2015 by Donald P. Goodman, and is +%% released publicly under the LaTeX Project Public License. The +%% distribution and modification of this work is constrained by the +%% conditions of that license. See +%% http://www.latex-project.org/lppl.txt +%% for the text of the license. This document is released +%% under version 1.3 of that license, and this work may be distributed +%% or modified under the terms of that license or, at your option, any +%% later version. +%% +%% This work has the LPPL maintenance status 'maintained'. +%% +%% The Current Maintainer of this work is Donald P. Goodman +%% (dgoodmaniii@gmail.com). +%% +%% This work consists of the files roundrect.dtx and +%% roundrect.ins, along with the generated file roundrect.mp +%% and roundrect.pdf, and the README. + + +input TEX; +color rrinnercolor; rrinnercolor := white; +color rrbordercolor; rrbordercolor := black; +numeric rrborderwd; rrborderwd := 2pt; +numeric rrborderrad; rrborderrad := 40pt; +string rrtitlefont; rrtitlefont := "\fontsize{14pt}{17pt}\selectfont "; +string rrtextfont; rrtextfont := "\fontsize{10pt}{12pt}\selectfont "; +color rrtitlecolor; rrtitlecolor := black; +color rrtextcolor; rrtextcolor := black; +color rrtitlebgcolor; rrtitlebgcolor := white; +color rrtitlebordercolor; rrtitlebordercolor := black; +boolean rrtitlebar; rrtitlebar := false; +string rrtitleside; rrtitleside := "top"; +numeric rrtitleht; rrtitleht := 0pt; +string rrtitlepos; rrtitlepos := "center"; +boolean rrtitlebotborder; rrtitlebotborder := true; +color rrtitlebotbordercolor; rrtitlebotbordercolor := black; +string rrtitletext; rrtitletext := ""; +string rrbodytext; rrbodytext := ""; +string rrbodyalign; rrbodyalign := "justify"; +string rrbodyaligncom; rrbodyaligncom := ""; +def rrrestorevals = +rrinnercolor := white; +rrbordercolor := black; +rrborderwd := 2pt; +rrborderrad := 40pt; +rrtitlefont := "\fontsize{14pt}{17pt}\selectfont "; +rrtextfont := "\fontsize{10pt}{12pt}\selectfont "; +rrtitlecolor := black; +rrtextcolor := black; +rrtitlebgcolor := white; +rrtitlebordercolor := black; +rrtitlebar := false; +rrtitleside := "top"; +rrtitleht := 0pt; +rrtitlepos := "center"; +rrtitlebotborder := true; +rrtitlebotbordercolor := black; +rrtitletext := ""; +rrbodytext := ""; +rrbodyalign := "justify"; +rrbodyaligncom := ""; +enddef; +def roundrect(expr rrht, rrwd)(suffix name) = +TEXPRE("%&latex" & char(10) & "\documentclass{article}\begin{document}"); +TEXPOST("\end{document}"); +if (rrtitleht = 0pt): +rrtitleht := rrht/6; +fi +path rra; path rrb; path rrc; path rrd; +pair a; pair b; pair c; pair d; +a := (0,0) shifted (-rrwd/2,-rrht/2); +b := (0,0) shifted (rrwd/2,-rrht/2); +c := (0,0) shifted (rrwd/2,rrht/2); +d := (0,0) shifted (-rrwd/2,rrht/2); +rra := fullcircle scaled rrborderrad shifted (xpart a + +(rrborderrad/2),ypart a + (rrborderrad/2)); +rrb := fullcircle scaled rrborderrad shifted (xpart b - +(rrborderrad/2),ypart b + (rrborderrad/2)); +rrd := fullcircle scaled rrborderrad shifted (xpart d + +(rrborderrad/2),ypart d - (rrborderrad/2)); +rrc := fullcircle scaled rrborderrad shifted (xpart c - +(rrborderrad/2),ypart c - (rrborderrad/2)); +pair f; f := (a--b) intersectionpoint rra; +pair g; g := (a--b) intersectionpoint rrb; +pair h; h := (b--c) intersectionpoint rrb; +pair i; i := (b--c) intersectionpoint rrc; +pair j; j := (c--d) intersectionpoint rrc; +pair k; k := (c--d) intersectionpoint rrd; +pair l; l := (d--a) intersectionpoint rrd; +pair m; m := (d--a) intersectionpoint rra; +picture name; +picture border; +pair n; pair o; path rrtitlepath; path rrfinalline; +name := image(fill f--g{right}..{up}h--i{up}..{left}j-- +k{left}..{down}l--m{down}..{right}f--cycle +withcolor rrinnercolor); +border := image(pickup pencircle scaled rrborderwd; +draw f--g{right}..{up}h--i{up}..{left}j-- +k{left}..{down}l--m{down}..{right}f--cycle +withcolor rrbordercolor); +addto name also border; +pair rrtitlestation; +picture rrtitlelabel; +if (rrtitlebar): +if (rrtitleside = "top"): +n := (xpart m,ypart k - (rrtitleht)); +o := (xpart i,ypart k - (rrtitleht)); +defaultscale := 4; +if (ypart n > ypart l): +n := (xpart n,ypart l); +o := (xpart o,ypart l); +fi +rrtitlepath := o--i{up}..{left}j--k{left}..{down}l--n; +if (rrtitlepos = "center"): +rrtitlestation := 0.5[n,o] shifted (0,rrtitleht/2); +elseif (rrtitlepos = "left"): +rrtitlestation := n shifted (rrborderrad/4,rrtitleht/2); +elseif (rrtitlepos = "right"): +rrtitlestation := o shifted (-rrborderrad/4,rrtitleht/2); +fi +elseif (rrtitleside = "bot"): +n := (xpart m,ypart f + (rrtitleht)); +o := (xpart i,ypart f + (rrtitleht)); +if (ypart n < ypart m): +n := (xpart n,ypart m); +o := (xpart o,ypart m); +fi +rrtitlepath := o--h{down}..{left}g--f{left}..{up}m--n; +if (rrtitlepos = "center"): +rrtitlestation := 0.5[n,o] shifted (0,-rrtitleht/2); +elseif (rrtitlepos = "left"): +rrtitlestation := n shifted (rrborderrad/4,-rrtitleht/2); +elseif (rrtitlepos = "right"): +rrtitlestation := o shifted (-rrborderrad/4,-rrtitleht/2); +fi +fi +rrfinalline = n--o; +picture rrtitlepic; +picture rrtitlepicb; +picture rrtitlebotborderpic; +rrtitlebotborderpic := image (draw rrfinalline +withcolor rrtitlebotbordercolor); +rrtitlepicb := image(draw rrtitlepath withcolor rrtitlebordercolor); +if (rrtitlebotborder = true): +addto rrtitlepicb also rrtitlebotborderpic; +fi +rrtitlepath := buildcycle(rrtitlepath,rrfinalline); +rrtitlepic := image(fill rrtitlepath withcolor rrtitlebgcolor); +if (rrtitlepos = "center"): +rrtitlelabel := image(label(TEX(rrtitlefont&" "&rrtitletext), +rrtitlestation) withcolor rrtitlecolor); +elseif (rrtitlepos = "left"): +rrtitlelabel := image(label.rt(TEX(rrtitlefont&" "&rrtitletext), +rrtitlestation) withcolor rrtitlecolor); +elseif (rrtitlepos = "right"): +rrtitlelabel := image(label.lft(TEX(rrtitlefont&" "&rrtitletext), +rrtitlestation) withcolor rrtitlecolor); +fi +if (rrbodyalign = "center"): +rrbodyaligncom := "\centering "; +elseif (rrbodyalign = "left"): +rrbodyaligncom := "\flushleft\vskip-\baselineskip "; +elseif (rrbodyalign = "right"): +rrbodyaligncom := "\flushright\vskip-\baselineskip "; +fi +picture rrbodytextpic; +if (rrtitleside = "top"): +rrbodytextpic := +image(label.lrt(TEX("\parbox{"&decimal(rrwd-2rrborderwd-rrborderrad/2)&"bp}{"&rrbodyaligncom&rrtextfont&rrbodytext&"}"),n) withcolor rrtextcolor) shifted (rrborderrad/4,0); +elseif (rrtitleside = "bot"): +rrbodytextpic := +image(label.urt(TEX("\parbox{"&decimal(rrwd-2rrborderwd-rrborderrad/2)&"bp}{"&rrbodyaligncom&rrtextfont&rrbodytext&"}"),n) withcolor rrtextcolor) shifted (rrborderrad/4,0); +fi +addto name also rrtitlepic; +addto name also rrtitlepicb; +addto name also rrtitlelabel; +addto name also rrbodytextpic; +fi +enddef; +\endinput +%% +%% End of file `roundrect.mp'. |