Alinear la figura en una cuadrícula por su borde superior

Alinear la figura en una cuadrícula por su borde superior

Estoy intentando colocar figuras en un libro que estoy tipografiando. La mayoría de ellos terminan en la parte superior de una página. Me gustaría que mis subtítulos usaran una fuente más pequeña con un interlineado más pequeño que el texto principal del libro.

\usemodule[visual] % for fake words and images
\useMPlibrary[dum]

\setuppapersize[B5]

\setuplayout[
    backspace=25mm,
    topspace=20mm,
    width=131mm,
    height=200mm,
    footer=0mm,
    grid=yes]
\showgrid

\setupinterlinespace[
    line=3.5ex]

\setupbodyfont[serif,12pt]

\setupcaptions[figure][
    number=no,
    style={\itx\setupinterlinespace[small]}]

\starttext

\startplacefigure[
    location=top,
    title={\fakenwords{30}{0}}]
\externalfigure[dummy][width=\textwidth,height=7cm]
\stopplacefigure

\fakenwords{80}{1} \par
\fakenwords{80}{2}

\stoptext

ingrese la descripción de la imagen aquí

Por lo que veo, ConTeXt alinea los flotadores en una cuadrícula con la línea inferior de un título. El resultado es que la parte superior de la imagen termina a una altura aleatoria dependiendo de la altura de la imagen y del número de líneas del título.

Mi objetivo es alinear el borde superior de la imagen a la altura X de la línea superior, para que coincida con el texto de la página opuesta. Cualquier espacio en blanco necesario debe ir debajo del título. ¿Hay alguna manera de lograrlo sin ajustar manualmente cada flotador?

Respuesta1

Puede hacerlo anulando el comando de colocación flotante en la rutina de salida. Simplemente copié el comando original.\page_one_command_flush_float_box, le cambiamos el nombre y lo eliminamos \snaptogrid.

\usemodule[visual] % for fake words and images
\useMPlibrary[dum]

\setuppapersize[B5]

\setuplayout
  [backspace=25mm,
   topspace=20mm,
   width=131mm,
   height=200mm,
   footer=0mm,
   grid=yes]

\showgrid

\setupinterlinespace[line=3.5ex]

\setupbodyfont[serif,12pt]

\setupcaptions
  [figure]
  [number=no,
   style={\itx\setupinterlinespace[small]}]

\unexpanded\def\dontsnapfloatbox % \page_one_command_flush_float_box
  {\expandafter\ifconditional\csname c_page_floats_center_box\endcsname
     \ifdim\wd\floatbox<\hsize
       \global\setbox\floatbox\hpack to \hsize{\hss\box\floatbox\hss}%
     \fi
   \fi
   \hpack{\box\floatbox}}

\setupoutputroutine
  [singlecolumn]
  [page_otr_command_flush_float_box=\dontsnapfloatbox]

\starttext

\startplacefigure
  [location=top,
   title={\fakenwords{30}{0}}]
  \externalfigure[dummy][width=\textwidth,height=7cm]
\stopplacefigure

\fakenwords{80}{1} \par
\fakenwords{80}{2}

\stoptext

ingrese la descripción de la imagen aquí

información relacionada