summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv')
-rw-r--r--Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv25
1 files changed, 20 insertions, 5 deletions
diff --git a/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv b/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv
index 3a5dfa81e62..c84d8dfbfbd 100644
--- a/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv
+++ b/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv
@@ -1164,7 +1164,7 @@ primarydef p randomized s = (
elseif pair p :
p randomshifted s
elseif cmykcolor p :
- if color s :
+ if cmykcolor s :
((uniformdeviate cyanpart s) * cyanpart p,
(uniformdeviate magentapart s) * magentapart p,
(uniformdeviate yellowpart s) * yellowpart p,
@@ -1175,7 +1175,7 @@ primarydef p randomized s = (
((uniformdeviate s) * p)
fi
elseif rgbcolor p :
- if color s :
+ if rgbcolor s :
((uniformdeviate redpart s) * redpart p,
(uniformdeviate greenpart s) * greenpart p,
(uniformdeviate bluepart s) * bluepart p)
@@ -2205,7 +2205,9 @@ enddef ;
primarydef p enlonged len =
begingroup
- if pair p :
+ if len == 0 :
+ p
+ elseif pair p :
save q ; path q ; q := origin -- p ;
save al ; al := arclength(q) ;
if al > 0 :
@@ -2228,8 +2230,12 @@ enddef ;
% drawarrow p withcolor red ;
% drawarrow p shortened 1cm withcolor green ;
+% primarydef p shortened d =
+% reverse ( ( reverse (p enlonged -d) ) enlonged -d )
+% enddef ;
+
primarydef p shortened d =
- reverse ( ( reverse (p enlonged -d) ) enlonged -d )
+ reverse ( ( reverse (p enlonged -xpart paired(d)) ) enlonged -ypart paired(d) )
enddef ;
% yes or no, untested -)
@@ -3153,6 +3159,15 @@ def endglyph =
endfig ;
enddef ;
+def beginfont(expr name) =
+ begingroup;
+ passvariable("fontname",name) ;
+enddef ;
+
+def endfont =
+ endgroup;
+enddef ;
+
%D Dimensions have never been an issue as traditional MP can't make that large
%D pictures, but with double mode we need a catch:
@@ -3341,7 +3356,7 @@ let dump = relax ;
def loadmodule expr name = % no vardef
% input can't be used directly in a macro
- if unknown scantokens("context_" & name) :
+ if (unknown scantokens("context_" & name)) and (unknown scantokens("metafun_loaded_" & name)) :
save s ; string s ;
% s := "mp-" & name & ".mpiv" ;
% message("loading module",s) ;