我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 页的顶部如下所示:
进一步的评论:
withcolor darkred
如果不想让线条变色,请删除。- 我把你的改成
header=4.4mm
了header=\lineheight
。这只是一个建议。 - 标题的水平位置取决于内容,因为内容默认是右对齐的。
- 如果内容比边距的宽度宽(如果章节标题很长就会发生这种情况),它会向左移动。
如果您遇到任何其他问题,我建议您就此提出新问题。