diff options
Diffstat (limited to 'metapost')
| -rw-r--r-- | metapost/context/base/mp-grph.mp | 2 | ||||
| -rw-r--r-- | metapost/context/base/mp-mlib.mp | 29 | ||||
| -rw-r--r-- | metapost/context/base/mp-text.mp | 8 | ||||
| -rw-r--r-- | metapost/context/base/mp-tool.mp | 6 | 
4 files changed, 36 insertions, 9 deletions
| diff --git a/metapost/context/base/mp-grph.mp b/metapost/context/base/mp-grph.mp index 1ff2a9ec2..243b45318 100644 --- a/metapost/context/base/mp-grph.mp +++ b/metapost/context/base/mp-grph.mp @@ -94,7 +94,7 @@ enddef ;  def doloadfigure (expr filename) text figureattributes =    begingroup ;    save figurenumber, figurepicture, number, fixedplace ; -  numeric figurenumber  ; figurenumber  := 0 ; +  numeric figurenumber  ; figurenumber := 0 ;    boolean figureshift ; figureshift := true ;    picture figurepicture ; figurepicture := currentpicture ;    def number primary n = hide(figurenumber := n) enddef ; diff --git a/metapost/context/base/mp-mlib.mp b/metapost/context/base/mp-mlib.mp index 893222473..aeacb3e9c 100644 --- a/metapost/context/base/mp-mlib.mp +++ b/metapost/context/base/mp-mlib.mp @@ -36,10 +36,10 @@ vardef rawtextext(expr str) =          image (              _tt_n_ := _tt_n_ + 1 ;              _tt_p_ := image ( -                draw _tt_p_ ; +                addto currentpicture also _tt_p_ ;                  addto currentpicture doublepath unitsquare withprescript "tf" withpostscript decimal _tt_n_ & ":" & str ;              ) ; -            draw unitsquare withpen pencircle scaled 0 ; +            addto currentpicture doublepath unitsquare withpen pencircle scaled 0 ;          )      else :          image ( @@ -68,8 +68,13 @@ labtype.urt    :=  6 ; labtype.llft :=  7 ; labtype.lrt  :=  8 ;  labtype.d      := 10 ; labtype.dlft := 11 ; labtype.drt  := 12 ;  labtype.origin :=  0 ; labtype.raw  :=  0 ; -laboff.origin = (infinity,infinity) ; labxf.origin := 0 ; labyf.origin := 0 ; -laboff.raw    = (infinity,infinity) ; labxf.raw    := 0 ; labyf.raw    := 0 ; +% laboff.origin = (infinity,infinity) ; labxf.origin := 0 ; labyf.origin := 0 ; +% laboff.raw    = (infinity,infinity) ; labxf.raw    := 0 ; labyf.raw    := 0 ; + +% todo: thelabel.origin("xxxx",origin) (overflows) + +laboff.origin = (0,0) ; labxf.origin := 0 ; labyf.origin := 0 ; +laboff.raw    = (0,0) ; labxf.raw    := 0 ; labyf.raw    := 0 ;  pair laboff.l   ; laboff.l  = laboff.lft  ;  pair laboff.r   ; laboff.r  = laboff.rt   ; @@ -131,7 +136,7 @@ vardef thetextext@#(expr p,z) = % adapted copy of thelabel@              if (labtype@# >= 10) : shifted (0,ypart center p) fi              shifted (z + labeloffset*laboff@# - (labxf@#*lrcorner p + labyf@#*ulcorner p + (1-labxf@#-labyf@#)*llcorner p))      fi -enddef; +enddef ;  vardef textext@#(expr txt) =      interim labeloffset := textextoffset ; @@ -161,7 +166,11 @@ vardef thelabel@#(expr s, z) =  enddef;  primarydef str infont name = % very naughty ! -    textext("\definedfont[" & name & "]" & str) +    if name = "" : +        textext(str) +    else : +        textext("\definedfont[" & name & "]" & str) +    fi  enddef ;  def circular_shade (expr p, n, ca, cb) = @@ -252,9 +261,17 @@ def doexternalfigure (expr filename) text transformation =      draw unitsquare transformation withprescript "fg" withpostscript filename ;  enddef ; +def register (expr label, width, height, offset) = +    draw unitsquare xscaled width yscaled height shifted offset withprescript "ps" withpostscript label ; +enddef ; +  extra_beginfig := extra_beginfig & "currentgraphictext := 0 ; " ;  extra_endfig   := extra_endfig   & "finishsavingdata ; " ;  extra_endfig   := extra_endfig   & "resettextexts ; " ;  boolean cmykcolors ; cmykcolors := true ;  boolean spotcolors ; spotcolors := true ; + +vardef verbatim(expr str) = +    ditto & "\detokenize{" & str & "}" & ditto +enddef ; diff --git a/metapost/context/base/mp-text.mp b/metapost/context/base/mp-text.mp index 292b79b4f..a76458144 100644 --- a/metapost/context/base/mp-text.mp +++ b/metapost/context/base/mp-text.mp @@ -104,8 +104,8 @@ vardef textextstr(expr s, a) =    scantokens ss  enddef ; -pair laboff.origin ; laboff.origin = (infinity,infinity) ; -pair laboff.raw    ; laboff.raw    = (infinity,infinity) ; +pair laboff.origin ; laboff.origin = (0,0) ; % (infinity,infinity) ; +pair laboff.raw    ; laboff.raw    = (0,0) ; % (infinity,infinity) ;  vardef thelabel@#(expr s, z) =    save p ; picture p ; @@ -259,3 +259,7 @@ def build_parshape (expr p, offset_or_path, dx, dy,    endgroup ;  enddef ; + +vardef verbatim(expr str) = +    ditto & "\detokenize{" & str & "}" & ditto +enddef ; diff --git a/metapost/context/base/mp-tool.mp b/metapost/context/base/mp-tool.mp index 817f237b0..3ba5923ea 100644 --- a/metapost/context/base/mp-tool.mp +++ b/metapost/context/base/mp-tool.mp @@ -1054,6 +1054,12 @@ enddef ;  let normaldraw = draw ;  let normalfill = fill ; +% bugged in mplib so ... + +def normalfill expr c = addto currentpicture contour c _op_ enddef ; +def normaldraw expr p = addto currentpicture if picture p: also p else: doublepath p withpen currentpen fi _op_ enddef ; + +  def drawlineoptions   (text t) = def _lin_opt_ = t enddef ; enddef ;  def drawpointoptions  (text t) = def _pnt_opt_ = t enddef ; enddef ;  def drawcontroloptions(text t) = def _ctr_opt_ = t enddef ; enddef ; | 
