私は複数の本をタイプセットするためのマスターConTeXtテンプレートに取り組んでいます。つまり、サブタイトルやエピグラフなどがあるかどうかわからない章を考慮する必要がありました。私が探していた解決策は、この質問ただし、1 つの問題があります...
追加の行を追加し始めると、つまりタイトルの下にサブタイトルをタイプセットすると、章番号はタイトル行に留まらず、サブタイトル行に揃えられます。
注記:alternative=margin
このソリューションに切り替える前に使用していました\setuphead
。新しいレンダリング設定でそのデザインを維持するために、Aditya のソリューションに追加しました\inleftmargin{}
。関連性があるかどうかはわかりませんが、念のため指摘しておこうと思いました。
編集:以下に最小限のコンパイル可能な例を示します。
\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
答え1
そうですね、私は vbox の代わりに ConTeXt のフレーム メカニズムを使用します。\margindata
これが私の提案です:
\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
これが、あなたが望んでいることを実現すると私は信じています。
ところで、いい例ですね!
答え2
\dontleavehmode
あなたの定義にはがありません。 は\space
不要であり、この回答では有害ですらあります。
\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