Ausrichten des Headnumbercontents mit dem Headtextcontent in der Headalternative

Ausrichten des Headnumbercontents mit dem Headtextcontent in der Headalternative

Ich arbeite an einer Master-ConTeXt-Vorlage für den Satz mehrerer Bücher, was bedeutet, dass ich Kapitel berücksichtigen muss, die möglicherweise einen Untertitel, ein Epigramm usw. haben oder nicht. Die genaue Lösung, nach der ich gesucht habe, habe ich indiese Frage, bis auf ein Problem ...

Wenn ich anfange, zusätzliche Zeilen hinzuzufügen, d. h. den Untertitel unter den Titel setze, wird die Kapitelnummer an der Untertitelzeile ausgerichtet und nicht an der Titelzeile.

Notiz:Ich habe es verwendet alternative=margin, \setupheadbevor ich zu dieser Lösung gewechselt bin. Um dieses Design mit dem neuen Rendering-Setup beizubehalten, habe ich \inleftmargin{}Adityas Lösung hinzugefügt. Ich bin nicht sicher, ob es relevant ist, aber ich dachte, ich weise vorsichtshalber darauf hin.

Bearbeiten:Hier ist das minimale, kompilierbare Beispiel ...

\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

Kompiliert zu:
Minimales Beispielergebnis

Antwort1

Mmh, ich würde den Rahmenmechanismus von ConTeXt anstelle einer Vbox verwenden, und \margindata… Hier ist mein Vorschlag:

\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

Das macht, glaube ich, was Sie wollen: Bildbeschreibung hier eingeben

Übrigens, schönes Beispiel!

Antwort2

\dontleavehmodeIn deiner Definition fehlt ein . Das \spaceist unnötig und in dieser Antwort sogar schädlich.

\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

Bildbeschreibung hier eingeben

verwandte Informationen