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 许可协议。转载请注明出处!