我正在尝试自定义章节标题,将文本放在仅打开左框架的框架内。
我正在思考类似的事情:“1 | 章节”。
任何建议都将非常感激。
答案1
人们通常希望保持内容title={}
不被格式化。通常,最好定义自己的数字命令、文本命令(每个命令一个参数)或命令(两个参数,第一个是数字,第二个是标题)。
以下是我们使用numbercommand的一些替代方案:
\starttexdefinition MyNumberChapterCommand #1
\inframed{#1\enspace}
\stoptexdefinition
\setuphead[chapter][
numbercommand=\MyNumberChapterCommand,
page=no,%Just to have them on the same page here
]
\starttext
\startchapter[title={Foo}]
Bla bla bla
\stopchapter
\starttexdefinition MyNumberChapterCommand #1
\inframed[frame=off,rightframe=on]{#1\enspace}
\stoptexdefinition
\startchapter[title={Bar}]
Bla bla bla
\stopchapter
\starttexdefinition MyNumberChapterCommand #1
#1
\enspace
\blackrule[
height=\lineheight,
depth=\strutdepth,
width=2pt,
color=darkred,
]
\stoptexdefinition
\startchapter[title={With a rule}]
Bla bla bla
\stopchapter
\startchapter[title={With a rule, and with a long title that eventually breaks over two lines}]
Bla bla bla
\stopchapter
\stoptext
答案2
答案3
非常感谢大家提供的有趣的提示。
我不知道“textcommand 和 numbercommand”选项。
我使用表格提出了一个解决方案,以便在多行文本的情况下保持标题编号对齐并居中。
\startsetups[titles_table]
\setupTABLE[r][each][align=lohi,frame=off]
\setupTABLE[2][leftframe=on,offset=5mm,rulethickness=2pt,framecolor=darkred]
\stopsetups
\define[2]\titlesT{%
\bTABLE[setups=titles_table]
\bTR
\bTD #1 \enspace \eTD \bTD #2\eTD
\eTR
\eTABLE
}
\setuphead[chapter][
command=\titlesT,
page=no
]
\starttext
\startchapter[title={Long title ... ith a rule, and with a long title t eer dfgfdg dfg gfdd fgfdg dfg fdg fdg fdg fdg fdg fdg fdg }]
Bla bla bla
\stopchapter
\startchapter[title={short title .. }]
Bla bla bla
\stopchapter
\stoptext
答案4
这无需使用框架即可实现您想要的效果。| 是 ConTeXt 中的保留字符;它前面需要有一个 \ 才能将其用作真正的 |。Chapter 和 1 之间的波浪符号 ~ 是不间断空格。
\starttext
\chapter [title=\| Chapter~1]
\stoptext
我可以用一个框架围绕章节名称,\chapter [title= \inframed{Chapter~1}]
但我不知道如何只打开左框架。