On 15.06.2011 15:15, Wolfgang Schuster wrote:

Am 15.06.2011 um 10:17 schrieb Hans Hagen:

Did you check the details.pdf manualal?

This won’t help because it’s ConTeXt’s fault.

This is a quick fix for strc-flt.mkiv but the leftmargin etc. keys are
then ignored when the caption is placed in the margin.

%\def\locatefloatbox
%  {\alignstrutmode\zerocount
%   \shiftalignedline
%     {\floatparameter\c!leftmargin }{\floatparameter\c!rightmargin}%
%     {\floatparameter\c!innermargin}{\floatparameter\c!outermargin}%
%   \alignedline{\floatparameter\c!location}\v!middle}

\def\locatefloatbox
   {\alignstrutmode\zerocount
    
\doifnotcommon{\floatcaptionparameter\c!location}{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
      {\shiftalignedline
         {\floatparameter\c!leftmargin }{\floatparameter\c!rightmargin}%
         {\floatparameter\c!innermargin}{\floatparameter\c!outermargin}}%
    \alignedline{\floatparameter\c!location}\v!middle}

Your solution doesn't seems to work, I still don't see a caption anywhere when using location=rightmargin. When I inserted your fix I stumbled upon the fact that there is \def\locatebcaptionbox below \def\locatefloatbox. You provided a fix for \locatefloatbox, but shouldn't it be for \locatecaptionbox? I have no clues about the internals of ConTeXt, but I tried the following:

\def\locatecaptionbox
   {\alignstrutmode\zerocount

\doifnotcommon{\floatcaptionparameter\c!location}{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
      {\shiftalignedline
{\floatcaptionparameter\c!leftmargin }{\floatcaptionparameter\c!rightmargin}%

{\floatcaptionparameter\c!innermargin}{\floatcaptionparameter\c!outermargin}}%
    \alignedline{\floatparameter\c!location}\v!middle}

Note that I just translated your fix to \locatecaptionbox. At least it didn't throw an error!


The reason why the caption disappears is that you put it
in \everyrightofalignedline and the content is replaced with
the rightmargin skip in the \shiftalignedline command.

Wolfgang

My attempt at understanding that explanation: The caption is placed to the right of aligned line (because it is supposed to got into the margin?), and for all things that are placed that way, \everyrightofalignedline is called. And that macro replaces the caption with a skip, but should instead skip across the margin skip and then place the caption?

Regards

Christoph
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : [email protected] / 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