related link
出现这一现象的原因是ctexrep.cls
中定义:
其中\CTEX@setthispagestyle
定义如下,这会将myfancy
赋值给了\chapter
的原始定义,将原来的\thispagestyle{plain}
全部替换为\thispagestyle{myfancy}
同时又因为\tableofcontents
定义中将目录也定义为一个\chapter*
,于是导致了“目录的等级应该是和chapter一致的”的现象
\newcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
要想解决这一问题。可以尝试分离\chapter
和\chapter*
的样式。
OS:我感觉让\chapter
样式和ToC
中的\chapter*
样式分离的需求还蛮常见的,是否有可能让ctex
提供ToC/pagestyle
的接口选项呢(这也许值得一个issues...我先去翻翻看...有空会提)?
我不太确定这是不是一个好的实践来分离\chapter
和\chapter*
的样式
一个想法是修改\chapter*
的样式设置,即下面的代码:
\documentclass[11pt]{ctexrep}
\usepackage{etoolbox}
\makeatletter
\pretocmd{\@schapter}{\thispagestyle{plain}}{}{}
\makeatother
%自定义样式
\usepackage{fancyhdr}
\fancypagestyle{myfancy}{%
\fancyhf{}
\fancyhead[C]{\heiti 毕业设计(论文)}
\fancyfoot[C]{第\quad \thepage \quad 页} % 改用 \thepage 显示页码
}
\ctexset{
chapter/pagestyle=myfancy,
}
\begin{document}
\tableofcontents
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\chapter{1}
\chapter{2}
\end{document}
当然,这也会修改所有\chapter*{}
页面的行为...
个人感觉更好的实践是上面issues中提到的,使用\frontmatter
和\mainmatter
来分划文档的不同部分的样式,但是ctexrap
没有提供这几个命令。
Editted Version
也许是一个使用\frontmatter
,\mainmatter
以及\backmatter
划分的例子。
\documentclass[12pt,oneside]{ctexbook}
\usepackage{zhlipsum}
\usepackage{fancyhdr}
\fancypagestyle{myfancy}{%
\fancyhf{}
\fancyhead[C]{\heiti 我是\texttt{myfancy}的样式}
\fancyfoot[C]{第\quad \thepage \quad 页}
}
\fancypagestyle{myfront}{%
\fancyhf{}
\fancyhead[C]{\heiti 我是\texttt{myfront}的样式}
}
\fancypagestyle{myback}{%
\fancyhf{}
\fancyhead[C]{\heiti 我是\texttt{myback}的样式}
}
% \ctexset{
% chapter/pagestyle=myfancy,
% }
\begin{document}
\frontmatter
\pagestyle{myfront}
\tableofcontents % 目录页首页由于\chapter*被重置为plain样式
\clearpage
\zhlipsum %其他页码为myfront样式
\mainmatter
\pagestyle{myfancy}
\chapter{111}\zhlipsum \clearpage
\chapter{222}\zhlipsum \clearpage
\backmatter
\pagestyle{myback}
\chapter*{Appendix} % 首页由于\chapter*被重置为plain样式
\zhlipsum[1-5] %其他页码为myback样式
\end{document}
问 想要将目录首页样式定义为plain