# [NTG-context] Indentation after margin float with caption

Tue Sep 6 21:57:41 CEST 2016

On Tue, 6 Sep 2016, Wolfgang Schuster wrote:

>>  Mikael P. Sundqvist <mailto:mickep at gmail.com>
>>  6. September 2016 um 21:07
>>
>>  Dear all,
>>
>>  since I got no answer here I cross posted on stackexchange (see
>>  http://tex.stackexchange.com/q/328147/52406). Now, I got a solution to
>>  this from Aditya. It seems that it is not yet clear to me (or Aditya,
>>  as far as I understand from the reply) which float placements that
>>  respects the \setupfloats[indentnext=yes] and which not. Or more
>>  importantly, why.
>>
>>
>>  \unprotect
>>  \def\page_one_place_float_auto
>>  {\page_one_place_float_otherwise\nonoindentation}
>>  \def\page_one_place_float_bottom
>>  {\page_one_place_float_otherwise\nonoindentation}
>>  \def\page_one_place_float_margin
>>  {\page_margin_blocks_process_float\nonoindentation}
>>  \def\page_one_place_float_leftmargin
>>  {\page_one_place_float_side_indeed\page_sides_process_float_leftmargin\nonoindentation}
>>  \def\page_one_place_float_rightmargin{\page_one_place_float_side_indeed\page_sides_process_float_rightmargin\nonoindentation}
>>  \protect
> When backwards compatiblity is a reason for not changing this adding a hook
> can be solution, e.g.
>
> -\def\page_one_place_float_auto       {\page_one_place_float_otherwise}
> +\def\page_one_place_float_auto
> {\page_one_place_float_otherwise\rootfloatparameter\c!next}
>
> which can be used with \setupfloat[next=\indentation]

In the move to MkII to MkIV, there have been many changes that are not
backward compatible. So, I am not in favor of adding a new key when we
already have an indentnext key just for the sake of backward
compatibility.

It will be nice if all the location alternatives in setupfloat honored the
indentnext key. It is really awkaward that when indentnext=yes (or auto)
location=top and location=bottom behave differently.

If backward compatibility is really important, we could add a mechanism to
control the indentnext key for each location; but that would add too much
complexity to the code for very little benefit. If one wants to mix floats
that indent the next paragraph with floats that don't indent the next
paragraph, it is possible to define different types of floats (with the
same counters and lists) such that indentnext=yes for one type and
indentnext=no for the other.