Code|XeLaTeX:高度个性化章节&目录

ctex
对于章节和目录做了本地化的设置,但若不希望其操控章节&目录的生成方式,则需要我们进行自定义
基本思路:
1.消除ctex的影响+个性化章节
2.个性化目录
3.自定义章节序号&目录生成深度
4.关于无编号章节的特殊处理
具体内容参见下方
消除ctex的影响+个性化章节
1 | \ctexset{ |
name = {}
这一设置关闭了标题的前/后字,如 {第,章}
number = \arabic{chapter}
定义章节的编号格式.\arabic{chapter}
表示使用阿拉伯数字
beforeskip/afterskip
定义章节标题前/后的垂直间距
其余章节同理
个性化目录
注意:所有涉及目录的改动都应当在第二次甚至第多次构建下方生效(需要生成.toc文件)
1 | \usepackage{titletoc} |
titlecontents
为titletoc
的核心控制命令.其接受以下参数,含义如下:
- <section-type>:你希望设置的章节类型(chapter,section…)
- <left>:该行目录的整体左位移大小
- <above-code>:前置代码,你可以在这里设置这行章节的基本样式(例:
{\vspace{1pc}\bfseries}
设置1pc的垂直间距,且后续文字为黑体) - <numbered-entry-format>:定义编号格式,你可以使用
\thecontentslabel
动态设置编号,创建一个box来确保编号在一定的限制内 - <numberless-entry-format>:定义无编号的章节格式
- <filler-page-format>:定义章节和页码间的连接线与页码(建议使用等宽字体处理数字,更美观)
- <after-code>:后置代码
需要注意的是,titlecontents
并没有捕获章节名的能力,latex在传递标题文本时,会将系统生成的编号和标题文本共同传递到目录处理,标题文本默认会插入在编号和连接线之间
1 | \makeatletter |
这段内部代码定义目录中页码区域的最小宽度,提高健壮性和灵活性
自定义章节序号&目录生成深度
特别简单
1 | \setcounter{secnumdepth}{2} |
其中-1对应part
,0对应chapter
,以此类推…
设置到哪个编号,显示到哪个编号
本示例中章节编号和目录生成深度都到subsection
为止
关于无编号章节的特殊处理
我们不使用titlecontents
给予的控制命令,而是重新定义一个宏
我们要明白自己需要干什么:
1.取消章节编号而正常的章节格式显示章节
2.允许被目录捕获
3.允许被页眉页脚捕获
第一条好办,只需要给章节命令加个*
则会去除格式以外的所有功能
1 | \chapter*{第一章} |
第三条也好办,我们使用现有的命令
1 | \markboth{第一章}{第一章} |
它接受两个需要显示的章节名,第一个是显示在奇数页的,第二个是显示在偶数页的
至于这里,我们如果不是排版书籍的话大可以填写一样的
至于第二条我们则定义一个新宏
1 | \newcommand{\zerochapter}[1]{% |
很简单的一个命令,向toc
中手动添加一个条目,类型为chapter
,显示文本为新命令第一个参数
完整的就是:
1 | \chapter*{第一章} |
你甚至可以给他再封装一次awa
- 本文标题:Code|XeLaTeX:高度个性化章节&目录
- 本文作者:结月lalalll
- 创建时间:2025-08-26 20:16:27
- 本文链接:https://lalalll-lalalll.github.io/code/tex-2/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!