第一个问题:
\titleformat 命令附带了一个可选参数,用以在结束之后的插入命令
你的
\titleformat{\chapter}{\centering\sanhao\hei}{第\,\thechapter\,章}{1em}{}
可以修改为
\titleformat{\chapter}{\centering\sanhao\hei}{第\,\thechapter\,章}{1em}{}[\vspace{-1cm}]
来解决多余空白
第二个问题:
我猜你大概是这样用 fancyhdr 宏包的
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO,RE]{\leftmark}
上面的意思是,对于以后全部页面,使用 fancy 样式,然后设置一些格式。
但是对于 \chapter 这样的命令,如果你有兴趣看一看源代码,
它其实显式地调用了 \thispagestyle{plain},
也就是说,含有 \chapter 命令的章节题目页面不受 fancy 样式的影响,它使用了官方的 \plain 命令。
原则是禁止修改 \chapter 命令,所以我们不能删除 \plain,
只能修改 \plain 的内容来绕过原则,而达到修改章节题目页的目的,
下面是一个完整可编译的例子
\documentclass[openany]{book}
\usepackage{lipsum}
\usepackage[colorlinks]{hyperref}
\renewcommand{\contentsname}{\centerline{mulu}}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO,RE]{\leftmark}
\fancyhead[LE,RO]{}
\fancyfoot[LO,RE]{}
\fancyfoot[LE,RO]{-\,\thepage\,-}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LO,RE]{}
\fancyfoot[LE,RO]{-\,\thepage\,-}
\renewcommand{\headrulewidth}{0pt}
}
\begin{document}
\tableofcontents
\chapter{First}
\section{one} \lipsum[1]
\section{two} \lipsum[2]
%
\chapter{Second}
\section{thr} \lipsum[3]
\section{fur} \lipsum[4]
%
\section{fiv} \lipsum[5-8]
\end{document}
上面
\fancypagestyle{plain}{ ... }
修改了 \plain 所以就把 章节题目 页面给改了。
最后是我的建议:
按照通用美学,一般书籍的章节题目页是不能够有页眉的,页脚也尽量不要出现,右中线页码倒是可以保留,对于book类这样“错误”是很合理的,它是一种科学的设计。
如果仍然希望写出页码,可以在你的代码里加上
\fancypagestyle{plain}{
\fancyfoot[LE,RO]{-\,\thepage\,-}
}