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