Personalizar el título del capítulo en contexto

Personalizar el título del capítulo en contexto

Hace unos días hice una pregunta sobre cómo personalizar los títulos de los capítulos en contexto (aquí). Mi pregunta no era tan apropiada aunque @mickep dio respuesta.

Mi intención es conseguir algo como esto.ingrese la descripción de la imagen aquí

El cual está basado en la portada de la revista Typograph Vol 01 (2014) y también en un diseño de un usuario de instagram apodado @nochedeespectros.

Para lograrlo, esta vez estuve jugando con el código de esta respuesta.este

El resultado es

\mainlanguage[es] % Idioma = Español

\setuppapersize[A4] % Tamaño del papel

\setupbodyfont
[modern,12pt] % Fuente = Latin Modern, 12 puntos


%\setuphead % Formato de los capítulos
%[chapter]
%[style=\bfc]

\startsetups[titles_table]
    \setupTABLE[r][each][align=lohi,frame=off]
\setupTABLE[2][ leftframe=on,loffset=5mm,rulethickness=2pt,framecolor=darkred,background=color,backgroundcolor=red 
]
\stopsetups

\define[2]\titlesT{%
\bTABLE[setups=titles_table]
    \bTR
         \bTD[nr=2] #1 \hspace[oneem] \eTD  \bTD  #2\eTD    
                                                         \eTR
    \bTR
                                  \bTD \setupinterlinespace[small]\placecontent\eTD
                                                                                   \eTR    
\eTABLE
}

\definehspace[oneem][-.50 em]
\starttexdefinition MyNumberChapterCommand #1
    \tfe #1
    % {\tfe #1}% Test this instead of the one above
    % #1% Test this if the numberstyle is enabled
    \hspace[oneem]
    %\blackrule[
    %    height=\strutheight,% I changed \lineheight to \strutheight
    %    depth=\strutdepth,
    %    width=2pt,
    %    color=darkred,
    %]
\stoptexdefinition


% \definebodyfont[12pt][rm][tfe=Serif at 36pt]
\definefontsize[e]
\definebodyfontenvironment[default][e=8]% 8*12=108

\setuphead[chapter][
    numbercommand=\MyNumberChapterCommand,
    command=\titlesT,
    style=\bfc,
    page=no,%Just to have them on the same page here   
    % numberstyle={\definedfont[Serif*default at 36pt]},
]


\setuphead[section] [textstyle=\bf, numberstyle=\bf]

\definehead[paragraph][subsubsubsection]
\setuphead [paragraph]
           [
             number=no, % To imitate LaTeX
             textdistance=0pt,
             commandafter={\quad\bullet\quad\null},
             alternative=text,
             style=\tf,
          ]

\definehead[contenttitle][title]
\setuphead[contenttitle][page=no]

\starttext

 \startfrontmatter
\contenttitle{\headtext{content}}
\placecontent
\stopfrontmatter

\startbodymatter

\chapter{Here start}
\section{The first section}
\subsection{The first subsection}
\input khatt-en

\subsection{The second subsection}
\input khatt-en

\section{The second section}
\subsection{Another subsection}
\input khatt-en

\chapter{Another chapter}
\section{More sections}
\subsection{More subsections}
\input khatt-en

\stopbodymatter
\stoptext

ingrese la descripción de la imagen aquí

Hay algunos problemas:

  • No consigo que la línea vertical izquierda vaya más hacia la izquierda para que quede encima (como en la primera imagen) del número del capítulo.

  • No he podido reducir el tamaño de fuente de las mini tablas de contenido. (Si el tamaño de fuente del cuerpo es 12 puntos, podría considerar 10 puntos o 9 puntos para minitablas de contenido). Aunque me gustaría poder aplicar algunos criterios, en caso de que el tamaño de fuente del cuerpo cambie a 11 puntos.

  • No he podido establecer un interlineado como el sugerido en la documentación:

    \start

    \setupinterlinespace[small]

    \placecontent

    \stop

  • Con este código el título de la tabla de contenido, al principio, también se ve afectado y por ahora sería bueno ver el estilo predeterminado para el título de la tabla de contenido. Para el índice tengo otra personalización en mente pero me ocuparé de ese caso en otra ocasión.

  • No he podido generar una mini tabla de contenidos que incluya solo secciones (incluso con la opción criterium=section).

  • No pude hacer que la etiqueta del título del capítulo ( \setuplabeltext[chapter=Chapter~]) apareciera encima del título del capítulo como en la primera imagen.

  • No estoy seguro de cómo hacer que la base del número de capítulo y la base de la mini tabla de contenido coincidan. Y la parte superior del número del capítulo coincide con la parte superior de la etiqueta del título del capítulo.

  • Acabo de notar que el tamaño de esta personalización dependerá, en general, de la cantidad de secciones de cada capítulo. Siendo este el caso, me pregunto si sería conveniente crear un comando que permita personalizar, en cada capítulo, los diferentes tamaños de fuente que pueden estar involucrados.

PD: El color rojo sólo se muestra como guía. La idea es utilizar el color blanco para lograr el efecto de la primera imagen. Espero haber dado toda la información necesaria y haberme expresado adecuadamente ya que el inglés no es mi lengua materna.

Respuesta1

Actualizado con una solución más simple

Usamos MetaFun porque queremos que el número crezca con el contenido. Esta vez sin capas, y lo bueno es que luego no tenemos que compensar la distancia vertical.

\setupbodyfont[bonum]

% We do not set the chapterlabel but use our own
\mainlanguage[es]
\setuplabeltext[es][mychapter=Capítulo]

% The table of contents
\definecombinedlist[MyContent]

\setupcombinedlist
  [MyContent]
  [list={section},
   criterium=chapter]

\setuplist[section][
  alternative=c,
  width=2em,
  style={\switchtobodyfont[7pt]\setupinterlinespace[line=9pt]},
]

\startuseMPgraphic{MyChapterGraphic}
  picture toc, num ;
  % You can play with the width, offset, fontsizes and so on.
  toc := textext("\unframed[width=8cm,align=normal,offset=5mm,leftframe=on,rulethickness=1pt]
                  {%
                  {\switchtobodyfont[18pt]\labeltext{mychapter}}\blank[small]
                  {\switchtobodyfont[28pt] \MPtext{2}}\blank[big]
                  \placecombinedlist[MyContent]
                  }") ;
  toc := toc shifted (-llcorner toc) ;
  num := textext("\MPtext{1}") ;
  num := num ysized 0.8(ypart ulcorner toc) ;
  num := num shifted (-llcorner num) ;
  % The 0.55 decides how much to shift the number left, we shift 55%
  % The 0.1 here satisfies 2*0.1+0.8=1, where 0.8 is the number above
  num := num shifted (-0.55(xpart lrcorner num), 0.1(ypart ulcorner toc) ) ;
  % The 10cm is just to make sure that we are off so that we do not cut to the left of the number
  clip num to ((-10cm,0) -- (0,0) -- ulcorner toc -- (-10cm, ypart ulcorner toc) -- cycle) ;
  draw toc ;
  draw num ;
  % This midaligns the content
  currentpicture := currentpicture xshifted 0.5(TextWidth - xpart lrcorner toc - xpart llcorner num) ;
  setbounds currentpicture to unitsquare xyscaled (TextWidth, ypart urcorner toc) ;
\stopuseMPgraphic

\define[2]\MyChapterCommand{%
  \setnostrut% Try without (and add \showstruts to see)
  \setMPtext{1}{#1}%
  \setMPtext{2}{#2}%
  \useMPgraphic{MyChapterGraphic}
}

\setuphead
  [chapter]
  [header=high,
   command=\MyChapterCommand,
   numberstyle=\bf,
   textstyle=\bf]

\starttext

\dorecurse{10}{
  \chapter[title={Level #1}]
  \dorecurse{#1}{
    \section[title={Sublevel ##1}]
    \subsection[title={A subsection}]
    \samplefile{ward}
  }
}

\stoptext

Una descripción general:

descripción general

Una mirada más cercana a un capítulo:

un capitulo

información relacionada