Hi Hans,

I believe that in MkIV some \framed[location=...] keys are not
working, namely `depth`, `height`, and `hanging`. In MkIV these all
place the bottom of the frame flush with the baseline, like
[location=].  In MkII they behave more sensibly, as follows:

* depth: place bottom of frame flush with bottom of the line (i.e.
\strutdepth below baseline)
* height: place top of frame flush with top of line
* hanging: place top of frame flush with baseline

Test code below, mkii and mkiv output attached.

I have produced a fix for the code in pack-rul.mkiv [1], placed at the
very bottom of this e-mail. It works; but it is a pure-bred example of
cargo cult programming, i.e. lots of 'making it look right' and very
little understanding, so you will probably want to check it.

[1] http://repo.or.cz/w/context.git/blob/HEAD:/tex/context/base/pack-rul.mkiv

All the best,
Sietse

\setupcolors[state=start]
\setupblackrules[depth=\strutdepth,height=\strutheight,width=1mm,color=red]

\starttext
    \ruledhbox
      {A
       \framed[width=2cm,align=middle,location=]
{location\\equals\\(nothing)}%
       \blackrule
       \framed[width=2cm,align=middle,location=depth]
{location\\equals\\depth}%
       \blackrule
       \framed[width=2cm,align=middle,location=height]
{location\\equals\\height}%
       \blackrule
       
\framed[width=2cm,align=middle,location=hanging]{location\\equals\\hanging}
       B}
    \vskip2cm
    \ruledhbox
      {A
       \framed[width=2cm,align=middle,location=low]    {location\\equals\\low}
       \framed[width=2cm,align=middle,location=line]   {location\\equals\\line}
       \framed[width=2cm,align=middle,location=high]   {location\\equals\\high}
       B}
    \vskip2cm
    \ruledhbox
     {A
      \framed[width=2cm,align=middle,location=bottom] {location\\equals\\bottom}
      \framed[width=2cm,align=middle,location=lohi]   {location\\equals\\lohi}
      \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle}
      \framed[width=2cm,align=middle,location=top]    {location\\equals\\top}
      B}
\stoptext

------- This is the fixed code --------

\installframedlocator \v!hanging % best with strut=no
  {}
- {\dp\b_framed_normal\scratchdimen
+ {\scratchdimen\ht\b_framed_normal
+  \setbox\b_framed_normal\hbox{\lower\scratchdimen\box\b_framed_normal}%
+  \dp\b_framed_normal\scratchdimen
   \ht\b_framed_normal\zeropoint
   \hbox{\box\b_framed_normal}}

\installframedlocator \v!depth
  {}
-  \ht\b_framed_normal\dimexpr\ht\b_framed_normal-\strutdp\relax
+ {\setbox\b_framed_normal\hbox{\lower\strutdp\box\b_framed_normal}%
+  \ht\b_framed_normal\dimexpr\ht\b_framed_normal-\strutdp\relax
   \dp\b_framed_normal\strutdp
   \hbox{\box\b_framed_normal}}

\installframedlocator \v!height
  {}
- {\dp\b_framed_normal\dimexpr\ht\b_framed_normal-\strutht\relax
+ {\scratchdimen\dimexpr \ht\b_framed_normal - \strutht \relax
+  \setbox\b_framed_normal\hbox{\lower\scratchdimen\box\b_framed_normal}%
+  \dp\b_framed_normal\dimexpr\ht\b_framed_normal-\strutht\relax
   \ht\b_framed_normal\strutht
   \hbox{\box\b_framed_normal}}

Attachment: mwe-framed-mkii.pdf
Description: Adobe PDF document

Attachment: mwe-framed-mkiv.pdf
Description: Adobe PDF document

___________________________________________________________________________________
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  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to