ConTeXt:对齐边距标题中的 \frame 以获得顶部边距中的垂直规则

ConTeXt:对齐边距标题中的 \frame 以获得顶部边距中的垂直规则

ConTeXt正在寻找制作这个LaTeX kaobook标题的方法。 在此处输入图片描述

我曾经很\showframe欣赏布局元素以及它们在改变尺寸时发生的变化:

\showframe

\setuppapersize[A4]

\setuppagenumbering[alternative=doublesided,location=none]
\setuplayout[
%  top=12mm,
%  topdistance=0mm,
  topspace=12mm,
  header=4.4mm,
  headerdistance=11mm,
  footdistance=0mm,
  footer=0mm,
  bottomdistance=0mm,
  bottom=27.4mm,
  leftedge=24.8mm,
  edgedistance=0mm,
  margin=47.7mm,
  leftmargindistance=0mm,
  width=107mm,
  rightmargindistance=6.2mm,
%  rightedgedistance=0mm,
  rightedge=24.3mm,
]

\setupheadertexts[margin]
[]
[{\getmarking[sectionnumber]} {\getmarking[section]} {\pagenumber}]
[{\framed[frame=on,width=14mm,height=4.4mm,align={outer,low}]{\pagenumber}} 
{\getmarking[chapternumber]} {\getmarking[chapter]}]
[]

要得到

在此处输入图片描述

页码被框起来了(我原本想使用选项frame=off,rightfram=on)。header margin如果我将以下内容更改为\framed[frame=on,width=20mm

在此处输入图片描述

我不知道我离获得与第一个图的标题类似的内容还有多远。要获得这样的内容还缺少什么?

答案1

可以offset在框架内玩,但也许,为了得到垂直线,最简单的方法是使用 MetaFun 图形。这里我们使用一个简单的图形,它只画一条线,然后伪造边界框(据我记得,0.5pt 是线的默认宽度)。选择 3cm 是为了让它在顶部突出。

\setuppagenumbering
  [alternative=doublesided,
   location=none]

\setuplayout[
  topspace=12mm,
  header=\lineheight,% Changed
  headerdistance=11mm,
  footdistance=0mm,
  footer=0mm,
  bottomdistance=0mm,
  bottom=27.4mm,
  leftedge=24.8mm,
  edgedistance=0mm,
  margin=47.7mm,
  leftmargindistance=0mm,
  width=107mm,
  rightmargindistance=6.2mm,
  rightedge=24.3mm,
]

\startuseMPgraphic{thebar}
  draw (0,-StrutDepth) -- (0,3cm) withcolor darkred ;
  setbounds currentpicture to unitsquare shifted (-0.5,0) xysized (0.5pt,LineHeight) ;
\stopuseMPgraphic

\setupheadertexts
  [margin]
  []
  [{\getmarking[sectionnumber]} {\getmarking[section]} {\pagenumber}]
  [{\pagenumber\space\space \useMPgraphic{thebar}\space\space \getmarking[chapternumber]\space {\it \getmarking[chapter]}}]
  []

\starttext

\dorecurse{10}{
  \startchapter[title={Foo}]
  \dorecurse{20}{
    \startsection[title={Bar}]
      \samplefile{knuth}
    \stopsection
  }
  \stopchapter
}

\stoptext

第 24 页的顶部如下所示:

第 24 页顶部

进一步的评论:

  • withcolor darkred如果不想让线条变色,请删除。
  • 我把你的改成header=4.4mmheader=\lineheight。这只是一个建议。
  • 标题的水平位置取决于内容,因为内容默认是右对齐的。
  • 如果内容比边距的宽度宽(如果章节标题很长就会发生这种情况),它会向左移动。

如果您遇到任何其他问题,我建议您就此提出新问题。

相关内容