diff options
Diffstat (limited to 'metapost')
| -rw-r--r-- | metapost/context/mp-core.mp | 2 | ||||
| -rw-r--r-- | metapost/context/mp-spec.mp | 37 | ||||
| -rw-r--r-- | metapost/context/mp-tool.mp | 10 | 
3 files changed, 46 insertions, 3 deletions
| diff --git a/metapost/context/mp-core.mp b/metapost/context/mp-core.mp index d4045d3da..3bc42ee74 100644 --- a/metapost/context/mp-core.mp +++ b/metapost/context/mp-core.mp @@ -24,6 +24,8 @@ def box_found (expr n,x,y,w,h,d) =    not ((x=0) and (y=0) and (w=0) and (h=0) and (d=0))  enddef ; +% left / right page problem ! ! ! ! ! +  def initialize_box_pos (expr pos,n,x,y,w,h,d) =    pair lxy, rxy, cxy, llxy, lrxy, ulxy, urxy ;    path pxy ; numeric hxy, wxy, dxy, nxy; diff --git a/metapost/context/mp-spec.mp b/metapost/context/mp-spec.mp index b23164c14..db7cbd256 100644 --- a/metapost/context/mp-spec.mp +++ b/metapost/context/mp-spec.mp @@ -227,4 +227,41 @@ enddef ;  %   % \blank Does it work or not?   +_cmyk_counter_ := 0 ; + +numeric cmykcolorhash[][][][] ; + +boolean cmykcolors ; % cmykcolors := true ; + +let normalcmyk = cmyk ; % see mp-tool.mp  + +vardef cmyk(expr c,m,y,k) = +  if cmykcolors : +    if not known cmykcolorhash[c][m][y][k] : +      _cmyk_counter_ := _cmyk_counter_ + 1 ; +      cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; +      flush_special(1, 7, +        decimal _cmyk_counter_ & " "  &  +        decimal c & " " & +        decimal m & " " & +        decimal y & " " & +        decimal k) ; +    fi +    (_special_signal_/1000,1/1000,cmykcolorhash[c][m][y][k]/1000) +  else : +    normalcmyk(1-c-k,1-m-k,1-y-k) +  fi +enddef ; + +%D Basic position tracking:  + +def register (expr label, width, height, offset) =  +  begingroup ;  +  flush_special(50, 7, +    ddecimal offset & " " &  +    decimal  width  & " " &  +    decimal  height & " " & label) ;  +  endgroup ;  +enddef ;  +  endinput ;  diff --git a/metapost/context/mp-tool.mp b/metapost/context/mp-tool.mp index 958cc3903..76c7708cf 100644 --- a/metapost/context/mp-tool.mp +++ b/metapost/context/mp-tool.mp @@ -1031,8 +1031,6 @@ vardef thefreelabel (expr str, loc, ori) =    (s shifted -l)  enddef ; - -  vardef freelabel (expr str, loc, ori) =     draw thefreelabel(str,loc,ori) ;  enddef ;  @@ -1040,7 +1038,7 @@ enddef ;  vardef freedotlabel (expr str, loc, ori) =     interim linecap:=rounded ;    draw loc withpen pencircle scaled freedotlabelsize ; -  freelabel(str,loc,ori) ; +  draw thefreelabel(str,loc,ori) ;  enddef ;   %D \starttypen @@ -1459,6 +1457,12 @@ primarydef p cornered c =     endfor cycle)   enddef ; +% cmyk color support  + +vardef cmyk(expr c,m,y,k) = +  (1-c-k,1-m-k,1-y-k) +enddef ; +  % done   endinput ; | 
