Dear list,

If I choose the headalternative to be of horizontal type, e.g. “text”, the head
placement will ignore the indentnext option.  This can be traced back to the
\strc_rendering_stop_placement macro where there is a check

   \ifconditional\headisdisplay
     \useindentnextparameter\headparameter
   \else
     \ignoreparskip
     \noindentation % recently added, was a bug
   \fi

If the headalternative is vertical, \headdisplay is true, if it is horizontal,
\headdisplay is false.  It is easy to see that indentnext is not treated on
equal footing for these two, in fact, indentation is generally ignored for
horizontal headalternatives.  Commenting out \noindentation at least gives
indentation in the following paragraph but that is not a proper solution.

Below you can find a MWE with the fix from above applied.  Try commenting in
and out the \noindentation and see what happens to the second paragraph after
the heading.

Cheers, Henri

---

\unprotect

\def\strc_rendering_stop_placement
  {\n_strc_rendering_hang_lines\zerocount
   \ifconditional\headisdisplay
     \strc_rendering_initialize_line_hang
     % kind of special, we want to snap heads also according to local specs 
local
     \setbox\b_strc_rendering_head\hbox
       
{\hskip\dimexpr\d_strc_rendering_local_leftoffset+\headparameter\c!margin\relax
        \box\b_strc_rendering_head
        \getheadsyncs % a latelua why not in the box
        }%
     \ifgridsnapping
       \applygridmethod
         {\headparameter\c!grid}%
         {\ifconditional\headisdisplay
            
\strc_rendering_initialize_style_and_color_display\c!textstyle\c!textcolor
          \fi}%
         {\box\b_strc_rendering_head}
     \else
       \box\b_strc_rendering_head
     \fi
     \flushnotes % new, not really needed
     \endgraf
     \ifvmode
       \ifnum\n_strc_rendering_hang_lines>\zerocount
         
\dorecurse\n_strc_rendering_hang_lines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}%
 to be checked
       \fi
       \nointerlineskip
       \dosomebreak\nobreak
     \fi
%      \getheadsyncs % a latelua why not in the box
   \else
     % somehow this goes ok even when we push in the margin probably because we 
gobble pars
     % in the process of collecting index entries etc
     \strut
     \flushnotes % new, here since we're in par mode
     \unhbox\b_strc_rendering_head
     \getheadsyncs % a latelua
     \ifconditional\headissomewhere
       \strc_sectioning_stay_on_this_line % test case: alternative=margintext 
and \startparagraph ..
     \else
      
%\hskip\headnumberdistance\s!plus\headnumberdistance\s!minus.25\dimexpr\headnumberdistance\relax
       \hskip\headtextdistance\relax
       \strc_sectioning_inject_continuous_signal
     \fi
   \fi
   \ifconditional\headisdisplay
     \ifvmode
       \ifgridsnapping % important, font related depth, see comment
         \prevdepth\strutdp
       \else
         \prevdepth\d_strc_rendering_local_depth
       \fi
     \fi
   \fi
   \synctexpopline
   \egroup
   \egroup
   \ifconditional\headisdisplay
     \useindentnextparameter\headparameter
   \else
     \ignoreparskip
     % \noindentation % recently added, was a bug
   \fi}

\protect

\setupindenting[yes,big]
\setuphead[section][alternative=text,indentnext=yes]
\starttext
\section{Introduction}
\input knuth
\stoptext

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to