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=margin
Lo usé \setuphead
antes 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
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:
Por cierto, ¡buen ejemplo!
Respuesta2
Te falta un \dontleavehmode
en tu definición. Es \space
innecesario 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