将 headnumbercontent 与 headalternative 中的 headtextcontent 对齐

将 headnumbercontent 与 headalternative 中的 headtextcontent 对齐

我正在开发一个主 ConTeXt 模板来排版多本书,这意味着我需要考虑可能有或可能没有副标题、题词等的章节。我找到了我正在寻找的确切解决方案这个问题,除了一个问题……

当我开始添加额外的行,即在标题下方排版副标题时,章节编号与副标题行对齐,而不是与标题行对齐。

笔记:在切换到此解决方案之前,我曾使用过alternative=margin。为了在新的渲染设置中保留该设计,我将其添加到了 Aditya 的解决方案中。不确定这是否相关,但我想指出这一点,以防万一。\setuphead\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

嗯,我会使用 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你的定义中缺少了。\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

在此处输入图片描述

相关内容