Passen Sie den Kapiteltitel im Kontext an

Passen Sie den Kapiteltitel im Kontext an

Vor ein paar Tagen habe ich eine Frage zum Anpassen von Kapitelüberschriften im Kontext gestellt (Hier). Meine Frage war nicht so passend, obwohl @mickep eine Antwort gegeben hat.

Meine Absicht ist, so etwas zu bekommenBildbeschreibung hier eingeben

Es basiert auf dem Cover des Typograph-Journals Vol. 01 (2014) und auch auf einem Design eines Instagram-Benutzers mit dem Spitznamen @nochedeespectros.

Um dies zu erreichen, habe ich dieses Mal mit dem Code aus dieser Antwort gespieltDas

Das Ergebnis ist

\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

Bildbeschreibung hier eingeben

Es gibt einige Probleme:

  • Ich kann die linke vertikale Linie nicht weiter nach links verschieben, so dass sie (wie im ersten Bild) über der Kapitelnummer steht

  • Ich konnte die Schriftgröße der Mini-Inhaltsverzeichnisse nicht verringern. (Wenn die Schriftgröße des Hauptteils 12pt beträgt, könnten Sie für Mini-Inhaltsverzeichnisse 10pt oder 9pt in Betracht ziehen.) Ich hätte allerdings gern die Möglichkeit, bestimmte Kriterien anzuwenden, falls die Schriftgröße des Hauptteils auf 11pt geändert wird.

  • Ich konnte keinen Zeilenabstand wie den in der Dokumentation vorgeschlagenen einstellen:

    \start

    \setupinterlinespace[small]

    \placecontent

    \stop

  • Mit diesem Code wird auch der Titel des Inhaltsverzeichnisses am Anfang beeinflusst und für den Moment wäre es schön, den Standardstil für den Titel des Inhaltsverzeichnisses zu sehen. Für das Inhaltsverzeichnis habe ich eine weitere Anpassung im Sinn, aber ich werde mich ein anderes Mal damit befassen.

  • Es ist mir nicht gelungen, ein Mini-Inhaltsverzeichnis zu erstellen, das nur Abschnitte enthält (auch nicht mit der Option criterium=section).

  • Ich konnte die Beschriftung für den Kapiteltitel ( \setuplabeltext[chapter=Chapter~]) nicht wie im ersten Bild über dem Kapiteltitel anzeigen.

  • Ich bin nicht sicher, wie ich die Kapitelnummernbasis und die Basis des Mini-Inhaltsverzeichnisses aufeinander abstimmen kann. Und die Oberseite der Kapitelnummer stimmt mit der Oberseite der Beschriftung für den Kapiteltitel überein.

  • Mir ist gerade aufgefallen, dass der Umfang dieser Anpassung im Allgemeinen von der Anzahl der Abschnitte in jedem Kapitel abhängt. Angesichts dessen frage ich mich, ob es nicht sinnvoll wäre, einen Befehl zu erstellen, mit dem in jedem Kapitel die verschiedenen Schriftgrößen angepasst werden können.

PD: Die rote Farbe dient nur als Orientierungshilfe. Die Idee ist, die weiße Farbe zu verwenden, um den Effekt des ersten Bildes zu erzielen. Ich hoffe, ich habe alle notwendigen Informationen gegeben und mich angemessen ausgedrückt, da Englisch nicht meine Muttersprache ist.

Antwort1

Aktualisiert mit einfacherer Lösung

Wir verwenden MetaFun, da die Zahl mit dem Inhalt wachsen soll. Diesmal ohne Ebenen, und das Gute daran ist, dass wir dann den vertikalen Abstand nicht kompensieren müssen.

\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

Ein Überblick:

Überblick

Ein genauerer Blick auf ein Kapitel:

ein Kapitel

verwandte Informationen