CTeX-org/ctex-kit

\ctexset修改目录的行为不统一

Closed this issue · 3 comments

在使用\ctexset进行调整标题设置的问题时,我发现\sectionformat选项行为会同时影响目录的标题样式,表现在下面的MWE中。

我猜测目录的标题【"目录"】也是一个\section级别的标题,因此在修改\ctexsetsection的形式的时候也修改了【"目录"】的样式。虽然"目录"的颜色可以通过\titletoc或者tocloft进行调整,但是我想这样的行为是否有点出人意料?当用户使用 section/format ={\color{cyan}\Large\bfseries\centering},往往只想得到正文标题的样式改变,而非同步修改目录中的标题?是否可以提供一个选项默认同时关闭对目录的修改? 谢谢各位。

\documentclass[12pt]{ctexart}
\usepackage{xcolor}
\ctexset{
    section = {
        format = {\color{cyan}\Large\bfseries\centering},
    },
    subsection = {
        format = {\color{violet}},
        number = {\Roman{section}-\roman{section}},
        numberformat = {\color{magenta}},
    }
}
\begin{document}
\tableofcontents
\section{第一章节}
\subsection{第一小节}
\subsection{第二小节}
\subsection{第三小节}
\section{第二章节}
\subsection{第一小节}
\subsection{第二小节}
\subsection{第三小节}
\end{document}
image

我猜测目录的标题【"目录"】也是一个\section级别的标题,因此在修改\ctexsetsection的形式的时候也修改了【"目录"】的样式。

是这样的。\listoffigures, \listoftables, \begin{thebibliography}, \printindex 等生成的标题也都是某个级别的(不编号)标题。

从一致性角度,全篇文档中同级别的标题(在目录和正文中)应当/最好有相同的样式。

如果想跳过开头的某些部分,现在只能把相关设定放到,比如第一章(或前言)之前。或者如果有使用 \mainmatter,可以加到 \mainmatter 里。如果想跳过末尾的某些部分,目前只能手动重设一遍(也许能加到 \backmatter 里)。理想情况下,ctex 可以提供类似 geometry 包里 \restoregeometry\savegeometry{<name>}\loadgeometry{<name>} 的功能。

我猜测目录的标题【"目录"】也是一个\section级别的标题,因此在修改\ctexset中section的形式的时候也修改了【"目录"】的样式。

是的。补充一点,标准文档类 article.cls 定义的 \tableofcontents 就是直接使用的 \section*

Screenshot 2024-09-03 at 13 12 18

确实如此的话就不奇怪了,从文章样式一致性的角度考虑的话我可以接受这种行为的出现,也很感谢你补充告知我的\listoffigures, \listoftables, \begin{thebibliography}, \printindex等命令同样会出现类似的一致性,非常感谢!