上下文:自定义章节标题

上下文:自定义章节标题

我正在尝试自定义章节标题,将文本放在仅打开左框架的框架内。

我正在思考类似的事情:“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

您可以定义一个使用 的命令\framed来绘制规则,然后使用textcommand\setuphead将其应用于所有章节。

\define[1]\leftframed{%
    \inframed[frame=off, leftframe=on]{#1}%
}

\setuphead[chapter][
    textcommand=\leftframed,
]

\starttext
    \chapter{Section}
    Hello world!
\stoptext

输出样本

答案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}]但我不知道如何只打开左框架。

相关内容