From 91f5bdb707b063e6e7acc31073db4cc17bd66593 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 21 Jul 2003 00:00:00 +0200 Subject: stable 2003.07.21 --- metapost/context/base/mp-form.mp | 6 +++++- metapost/context/base/mp-spec.mp | 18 ++++++++++++++++++ metapost/context/base/mp-tool.mp | 4 ++-- 3 files changed, 25 insertions(+), 3 deletions(-) (limited to 'metapost') diff --git a/metapost/context/base/mp-form.mp b/metapost/context/base/mp-form.mp index b5c06b11a..bad87651c 100644 --- a/metapost/context/base/mp-form.mp +++ b/metapost/context/base/mp-form.mp @@ -333,8 +333,12 @@ vardef isfmtseparator primary c = %%% added by HH %%% ((c <> fmt_separator) and (c <> "%")) enddef ; +def initialize_form_numbers = + initialize_numbers ; % in context: do_initialize_numbers ; +enddef ; + vardef dofmt_@#(expr f, x) = %%% adapted by HH %%% - initialize_numbers ; + initialize_form_numbers ; if f = "" : if fmt_metapost : nullpicture else : "" fi else : diff --git a/metapost/context/base/mp-spec.mp b/metapost/context/base/mp-spec.mp index 10118f2c0..3563e982e 100644 --- a/metapost/context/base/mp-spec.mp +++ b/metapost/context/base/mp-spec.mp @@ -516,6 +516,24 @@ vardef transparent(expr n, t, c) = fi enddef ; +%D This function returns true of false, dependent on transparency. + +vardef is_transparent(text t) = + begingroup ; save transparent ; save _c_, _b_ ; + vardef transparent(expr nn, tt, cc) = _b_ := true ; cc enddef ; + boolean _b_ ; _b_ := false ; + color _c_ ; _c_ := t ; _b_ + endgroup +enddef ; + +%D This function returns the not transparent color. + +vardef not_transparent(text t) = + begingroup ; save transparent ; + vardef transparent(expr nn, tt, cc) = cc enddef ; + t endgroup +enddef ; + %D Basic position tracking: def register (expr label, width, height, offset) = diff --git a/metapost/context/base/mp-tool.mp b/metapost/context/base/mp-tool.mp index b1fd6bf22..9f2464e64 100644 --- a/metapost/context/base/mp-tool.mp +++ b/metapost/context/base/mp-tool.mp @@ -260,8 +260,8 @@ vardef invcos primary x = ((acos(x))/radian) enddef ; vardef acosh primary x = ln(x+(x+-+1)) enddef ; vardef asinh primary x = ln(x+(x++1)) enddef ; -vardef sinh primary x = save xx ; xx = exp xx ; (xx-1/xx)/2 enddef ; -vardef cosh primary x = save xx ; xx = exp xx ; (xx+1/xx)/2 enddef ; +vardef sinh primary x = save xx ; xx = exp x ; (xx-1/xx)/2 enddef ; +vardef cosh primary x = save xx ; xx = exp x ; (xx+1/xx)/2 enddef ; %D We provide two macros for drawing stripes across a shape. %D The first method (with the n suffix) uses another method, -- cgit v1.2.3