2026-10-26 18:31:04 +08:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
%% 标题、目录等设定
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
|
2026-10-29 15:47:33 +08:00
|
|
|
|
%----------------------------------------------------------------------
|
|
|
|
|
|
% 各级标题字体(#19)
|
|
|
|
|
|
%
|
|
|
|
|
|
% 目标:编号和标题文字**都是鸿蒙**。
|
|
|
|
|
|
%
|
|
|
|
|
|
% 踩的坑:原来只写 format=\hm\bfseries,以为 \hm 就够了。实际 \hm 在旧版
|
|
|
|
|
|
% 是纯 xeCJK 中文字族切换,管不到阿拉伯数字 —— 编号 "1." "3.1" 被判成
|
|
|
|
|
|
% 西文,仍走 \setmainfont,于是同一个标题里中文鸿蒙、编号衬线。
|
|
|
|
|
|
%
|
|
|
|
|
|
% 修法:本次在 cls/font.cls 里把 \hm 重定义为「中西文一起切鸿蒙」,
|
|
|
|
|
|
% 所以这里维持 format=\hm\bfseries 即可,不需要再写 \hmlatin。
|
|
|
|
|
|
% 换个说法:问题统一在 \hm 的定义处解决,而不是在每一处调用点逐个补 ——
|
|
|
|
|
|
% 后者必然漏(封面、摘要、目录标题、页眉都会各自漏一次)。
|
|
|
|
|
|
%----------------------------------------------------------------------
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\ctexset{
|
|
|
|
|
|
% 修改 section文字样式,
|
|
|
|
|
|
section={
|
|
|
|
|
|
name={,.},%编号和文字中间用.。
|
|
|
|
|
|
number={\arabic{section}},%编号形式:\arabic设置为阿拉伯数字,\chinese设置为中文,\roman设置为小写罗马字母,\Roman设置为大写罗马字母,\alph设置为小写英文,\Alph设置为大写英文。
|
2026-10-29 15:47:33 +08:00
|
|
|
|
format=\hm\bfseries\raggedright\zihao{4},%鸿蒙字体(中西文都用鸿蒙),小四号字,右对齐。
|
2026-10-26 18:31:04 +08:00
|
|
|
|
aftername=\hspace{5pt},%编号和标题的距离
|
|
|
|
|
|
% beforeskip=1ex,%标题与前文的距离
|
|
|
|
|
|
% afterskip=1ex,%标题与后文的距离
|
|
|
|
|
|
},
|
|
|
|
|
|
%修改subsection文字样式
|
|
|
|
|
|
subsection={
|
|
|
|
|
|
format=\hm\bfseries\raggedright\zihao{-4},
|
|
|
|
|
|
aftername=\hspace{5pt},%编号和标题的距离
|
|
|
|
|
|
},
|
|
|
|
|
|
%修改subsubsection文字样式
|
|
|
|
|
|
subsubsection={
|
|
|
|
|
|
format=\hm\bfseries\raggedright\zihao{5},
|
|
|
|
|
|
aftername=\hspace{5pt},%编号和标题的距离
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
%设置目录的显示样式
|
|
|
|
|
|
\renewcommand{\contentsname}{\begin{center} \normalsize \hm\zihao{4}\textbf{目录} \end{center}}
|
|
|
|
|
|
\renewcommand{\listfigurename}{\begin{center} \normalsize \hm\zihao{4}\textbf{插图目录} \end{center}}
|
|
|
|
|
|
\renewcommand{\listtablename}{{\begin{center} \normalsize \hm\zihao{4}\textbf{表格目录} \end{center}}}
|
|
|
|
|
|
%给目录加上点
|
|
|
|
|
|
\renewcommand{\cftpartleader}{\cftdotfill{\cftdotsep}} % 给 parts 加点
|
|
|
|
|
|
%\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % 给 chapters 加点
|
2026-10-29 15:47:33 +08:00
|
|
|
|
\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % 给 sections加点
|
|
|
|
|
|
|
|
|
|
|
|
%----------------------------------------------------------------------
|
|
|
|
|
|
% 目录条目的字族统一(#19)
|
|
|
|
|
|
%
|
|
|
|
|
|
% 问题:一条目录里能出现两种字体。编号 "1." 是阿拉伯数字 → 被 xeCJK
|
|
|
|
|
|
% 判成西文 → 走 \setmainfont;条目标题是中文 → 走 \setCJKmainfont。
|
|
|
|
|
|
% 旧版 \setmainfont 是鸿蒙、\setCJKmainfont 是思源宋体,于是同一条里
|
|
|
|
|
|
% 「编号鸿蒙粗 + 标题宋体粗」,看着就是标题字体一会儿一个样。
|
|
|
|
|
|
%
|
|
|
|
|
|
% 把西文改回衬线(Cochineal)之后这个分裂本身已经消失,但这里仍然显式
|
|
|
|
|
|
% 声明一次,理由有二:
|
|
|
|
|
|
% ① 不依赖 \setmainfont 的间接效果 —— 将来若有人改了 font.cls 的
|
|
|
|
|
|
% 西文设置,目录不会跟着又裂开;
|
|
|
|
|
|
% ② tocloft 的 \cftsecfont 是"只管目录条目"的开关,改它比调全局安全。
|
|
|
|
|
|
%
|
|
|
|
|
|
% ⚠️ 只设 \cftsecfont / \cftsubsecfont / \cftsubsubsecfont,不动
|
|
|
|
|
|
% \cftsecpagefont —— 页码那列保持默认,不用跟着正文加粗。
|
|
|
|
|
|
% ⚠️ \cftsecfont 里不要塞 \bfseries:加粗与否是各条目录自己的事
|
|
|
|
|
|
% (正文章节标题本就 \bfseries),在这里硬加会让二级三级也变粗。
|
|
|
|
|
|
%----------------------------------------------------------------------
|
|
|
|
|
|
\renewcommand{\cftsecfont}{\normalfont}
|
|
|
|
|
|
\renewcommand{\cftsubsecfont}{\normalfont}
|
|
|
|
|
|
\renewcommand{\cftsubsubsecfont}{\normalfont}
|
|
|
|
|
|
|
|
|
|
|
|
% 页码列单独归零。上面三条只管条目文字,页码走的是 \cft*pagefont,
|
|
|
|
|
|
% 默认继承条目的粗体设置 —— 不显式清掉的话,目录里页码会比标题还粗,
|
|
|
|
|
|
% 一眼看过去页码最抢眼。
|
|
|
|
|
|
\renewcommand{\cftsecpagefont}{\normalfont}
|
|
|
|
|
|
\renewcommand{\cftsubsecpagefont}{\normalfont}
|
|
|
|
|
|
\renewcommand{\cftsubsubsecpagefont}{\normalfont}
|