Benjamin R. Haskell wrote:
> Hi all,
> 
> I recently transitioned from LaTeX to ConTeXt. There was some particular 
> thing I needed to do (which escapes me at the moment) that was far, far 
> easier to do in ConTeXt than in LaTeX. And, as I've learned, I've found 
> that that's quite often the case. So, a huge thank you to everyone 
> involved.
> 
> A couple hours ago I was annoyed that I couldn't find an equivalent for 
> the LaTeX 'cancel' environment/command/style(?)[1]. Now, I'm truly amazed 
> that 'cancel' required a whole package.
> 
> After discovering that 'underline' and 'strikethrough' were implemented as 
> overlays, I quickly coded up the following:
> 
> \startuseMPgraphic{MyCancel}
>      draw (0,.2*\overlayheight)--(\overlaywidth,\overlayheight);
> \stopuseMPgraphic
> \defineoverlay[mycancel][\useMPgraphic{MyCancel}]
> 
> \def\cancel#1{\framed[background=mycancel,frame=off]{#1}}
> 
> 
> Now, I'm sure this is not *quite* the right way to do it. The 'cancel'ed 
> items end up being placed too high on the line, and other spacings are 
> slightly off. But, taking a cue from underlining, I kept the MyCancel 
> graphic and tried:
> 
> \definetextbackground
>     [cancel]
>     [location=text,
>      alternative=1,
>      background=mycancel]
> % plus boilerplate for setting up \startcancel\stopcancel
> 
> ....But, while composing this email, I found what I wanted, which still 
> isn't ``right'' in some sense:
> 
> \def\cancel#1{\framed[background=mycancel,frame=off,width=fit,height=fit,strut=no]{#1}}
> 
> I found the parameters for \framed. I'm still learning to Read The 
> Fantastic Manuals, but sent this anyway since I wanted to say thanks.


\startuseMPgraphic{mpos:par:cancel}
     for i=1 upto nofmultipars :
         draw
             .2[llcorner multipars[i],ulcorner multipars[i]] --
             .2[urcorner multipars[i],lrcorner multipars[i]] ;
     endfor ;
\stopuseMPgraphic

\definetextbackground[cancel][location=text,mp=mpos:par:cancel]

\def\startcancel{\starttextbackground[cancel]}
\def\stopcancel {\stoptextbackground}
\def\cancel     {\groupedcommand\startcancel\stopcancel}

however, this is kind of fuzzy when you cross lines

an alternative is to use:

\definetextbackground[cancel][location=text,alternative=4,background=,frame=off]

\definestartstop
   [cancel]
   [before={\starttextbackground[cancel]},
    after=\stoptextbackground]

however, there is a glitch in the drawing so you need a patch

\startMPinclusions
def draw_multi_pars  =
   for i=1 upto nofmultipars :
     do_draw_par(multipars[i]) ;
         if boxgridtype= 1 :
       draw baseline_grid (multipars[i],if multilocs[i]=1: down else: up 
fi,true) ; % withcolor boxgridcolor ;
     elseif boxgridtype= 2 :
       draw baseline_grid (multipars[i],if multilocs[i]=1: down else: up 
fi,false) ; % withcolor boxgridcolor ;
     elseif boxgridtype= 3 :
       draw baseline_grid (multipars[i],if multilocs[i]=1: down else: up 
fi,true) ; % withcolor boxgridcolor ;
       draw baseline_grid (multipars[i],if multilocs[i]=1: down else: up 
fi,true) shifted (0,ExHeight) ; % withcolor boxgridcolor ;
     elseif boxgridtype= 4 :
       draw baseline_grid (multipars[i],if multilocs[i]=1: down else: up 
fi,true) shifted (0,ExHeight/2) ; % withcolor boxgridcolor ;
     elseif boxgridtype=11 :
       draw 
graphic_grid(multipars[i],boxgriddistance,boxgriddistance,boxgriddistance/2,boxgriddistance/2)
 
;
     elseif boxgridtype=12 :
       draw graphic_grid(multipars[i],boxgriddistance,boxgriddistance,0,0) ;
     fi ;
   endfor ;
enddef ;
\stopMPinclusions

(will be fixed in the next release)


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to