Alinear el contenido del número de encabezado con el contenido del texto del encabezado en headalternative

Alinear el contenido del número de encabezado con el contenido del texto del encabezado en headalternative

Estoy trabajando en una plantilla maestra de ConTeXt para componer varios libros, lo que significa que necesitaba tener en cuenta los capítulos que pueden tener o no subtítulos, epígrafes, etc. Encontré la solución exacta que estaba buscando enesta pregunta, excepto por un problema...

Cuando empiezo a agregar líneas adicionales, es decir, a componer el subtítulo debajo del título, el número del capítulo se alinea con la línea del subtítulo en lugar de permanecer con la línea del título.

Nota:alternative=marginLo usé \setupheadantes de cambiar a esta solución. Para conservar ese diseño con la nueva configuración de renderizado, lo agregué \inleftmargin{}a la solución de Aditya. No estoy seguro de si es relevante, pero pensé en señalarlo, por si acaso.

Editar:Aquí está el ejemplo mínimo y compilable...

\setuphead [chapter][alternative=newchapterhead]

\defineheadalternative
  [newchapterhead]
  [renderingsetup=newchapterhead]

\startsetups newchapterhead
    \vbox {
    \inleftmargin{\headnumbercontent}\space\headtextcontent
    \doifsomething{\structureuservariable{subtitle}}
      {\blank[small]\structureuservariable{subtitle}}}
\stopsetups

\starttext
\startchapter[title={My Chapter Title}][subtitle={My Chapter Subtitle}]
\input knuth
\stopchapter
\stoptext

Se compila en:
Resultado de ejemplo mínimo

Respuesta1

Mmh, usaría el mecanismo enmarcado de ConTeXt en lugar de un vbox, y \margindata. Aquí está mi sugerencia:

\definemargindata [chapterhead] [left] 

\setuphead [chapter][alternative=newchapterhead]

\defineheadalternative
  [newchapterhead]
  [renderingsetup=newchapterhead]

\startsetups newchapterhead
    \framed[align=right,frame=off]{\chapterhead{\headnumbercontent}\headtextcontent
    \doifsomething{\structureuservariable{subtitle}}
      {\blank[small]\structureuservariable{subtitle}}}
\stopsetups

\starttext
\startchapter[title={My Chapter Title}][subtitle={My Chapter Subtitle}]
  \input knuth
\stopchapter
\stoptext

Que hace, creo, lo que quieres: ingrese la descripción de la imagen aquí

Por cierto, ¡buen ejemplo!

Respuesta2

Te falta un \dontleavehmodeen tu definición. Es \spaceinnecesario y en esta respuesta incluso dañino.

\setuphead
  [chapter]
  [alternative=newchapterhead]

\defineheadalternative
  [newchapterhead]
  [renderingsetup=newchapterhead]

\startsetups newchapterhead
    \vbox{%
      \dontleavehmode
      \inleftmargin{\headnumbercontent}
      \headtextcontent
      \doifsomething{\structureuservariable{subtitle}}
        {\blank[small]\structureuservariable{subtitle}}}
\stopsetups

\starttext
\startchapter[title={My Chapter Title}][subtitle={My Chapter Subtitle}]
  \input knuth
\stopchapter
\stoptext

ingrese la descripción de la imagen aquí

información relacionada