返回ConTeXt 标题样式的修改
SECTION 样式上的修改,都会用\setuphead。第一组参数 SECTION 可以用名字比如 part, chapter, section, subsection 等,或者使用数字等级 section-1(part), section-2(chapter)…… ,也可以使用我们自定义的标题名字。
以下的例子为了使 chapter 不从新的一页开始,使用了 page=no。 page 的可用参数值可参考\pagebreak, 其他可用的比如 right 可以在双面排版的情况下让 SECTION 在右边的页(也就是奇数页 1,3,5,7……)开始新的 SECTION。

内置编号形式

conversion 可以更改编号形式, 可用的选项有:
    • n, N, numbers: 阿拉伯数字
    • I, R: 大写罗马
    • i, r: 小写罗马
    • A: 大写字母
    • A: 小写字母
    • Words: 首字母大写英文全拼:比如One,Two,Three
    • words: 全小写英文全拼,比如 one, two, three 
    • 内置层级符号:
如果只有个别标题层需要修改编号形式,可以通过\setuphead[SECTION][conversion=?]来更改某一层级的编号。
\setuphead[chapter][page=no,conversion=Words] \setuphead[section][page=no,conversion=set 0] \setuphead[subsection][page=no,conversion=i]
也可以通过\definestructureconversionset自定义一套编号组,再把编号组应用在 SECTION 上。\definestructureconversionset接收 3 组参数,[set名称][conversion样式][默认样式或缺失没有被定义的层级样式]。第二组的 conversion 样式具体设置了从 part,chapter,section,subsection 等依次层级的编号形式。
\definestructureconversionset[mySet][n,A,a,i,n,a,r][n] \setuphead[part,chapter,section,subsection,subsubsection,subsubsubsection][page=no,sectionconversionset=mySet]

编号的显示层级

sectionsegments 可以决定标题前的编号显示多少层,比如条标题层显示:1.2.1 标题, 2.1 标题,1 标题。使用“数字1:数字2”的形式时,标题数字会显示数字区间的层级。
\setuphead[subsection][page=no,conversion=i,sectionsegments=section:subsection] % % % 或者 \setuphead[subsection][page=no,conversion=i,sectionsegments=3:4]
使用层级名称或数字指定层级时(1-part, 2-chapter,3-section……),标题数字会显示名称/数字对应的层级编号。 完整代码见Gitee - structure/section/style_4.tex

颜色样式

% % chapter的编号和标题颜色=绿色 \setuphead[chapter][page=no,color=green] % % % 编号颜色=蓝色,文字颜色=橘色 \setuphead[section][page=no,numbercolor=blue,textcolor=orange]

文字样式

% % 整个chapter文字加粗 \setuphead[chapter][page=no,style=\bf] % % % 编号部分斜体 \setuphead[section][page=no,numberstyle=\it]

更灵活的样式更改

在命令语句参数中,提供了 command 可以让我们定义方法来更灵活的更改标题样式。
command 接收2个参数,#1 是编号,#2 是标题。 以下例子定义了一个叫 HeadTitle 的方法,借助 frame 包装编号和标题。并使用command=\HeadTitle把方法内的样式应用在 chapter 标题上。
\define[2]\HeadTitle {\framed[frame=off,bottomframe=on,rulethickness=2pt,framecolor=darkgray,width=broad,align=flushleft]{#1\\\quad#2}} \setuphead[chapter][page=no,command=\HeadTitle]

Before & after

before 和 after 分别是防止标题前/后执行的命令语句。以下例子中 before 使用了\blank[2cm,force], 强制在 chapter 前加 2 cm 的空白。after 使用了\hairline,在 section 后面加了一条横线。
% % chapter 标题前2cm的空白 \setuphead[chapter][page=no,before=\blank[2cm,force]] % % section 标题后加长横线 \setuphead[section][page=no,after={\hairline}]

标题的位置

标题的位置通过alternative设置,并有如下选项:
alternative = text paragraph normal margin inmargin top middle bottom reverse margintext NAME
\setuphead[chapter][page=no,alternative=reverse] % % 对换编号和标题的位置 \setuphead[section][alternative=middle] \setuphead[subsection][alternative=margin]
©2024 All Rights 石家庄市友文信息技术有限责任公司冀ICP备2023031763号