我正在開發一個 ConTeXt 主模板來排版多本書,這意味著我需要考慮可能有或可能沒有副標題、銘文等的章節。這個問題,除了一個問題......
當我開始添加額外的行時,即在標題下方排版副標題時,章節號與副標題行對齊,而不是與標題行對齊。
筆記:我在切換到這個解決方案之前使用alternative=margin
過。\setuphead
為了透過新的渲染設定保留該設計,我將其新增\inleftmargin{}
到 Aditya 的解決方案中。不確定它是否相關,但我想我會指出它,以防萬一。
編輯:這是最小的、可編譯的範例...
\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
嗯,我會使用 ConTeXt 的框架機製而不是 vbox,並且\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
您的定義中缺少 a 。這\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