我正在使用 sectsty 来格式化我的章节标题,但我想消除章节编号和章节标题之间的垂直空格,但我找不到在不丢失 sectsty 应用的样式的情况下做到这一点的方法。
这是 MWE
\documentclass[fontsize=12pt, paper=a4]{book}
\usepackage{lipsum}
\usepackage{sectsty}
\chapternumberfont{\LARGE\uppercase}
\chapterfont{\thispagestyle{empty}\LARGE\centering\uppercase}
\sectionfont{\large\uppercase}
\subsectionfont{\normalsize}
\begin{document}
\chapter{Cap name one}
\lipsum[1]
\section{Section 1.1}
\lipsum[2-4]
\chapter{Cap name two}
\lipsum[5]
\section{Section 2.1}
\lipsum[6]
\end{document}
\begin{document}
现在,如果我在空格消失之前添加以下这段代码,但 secsty 的样式也会消失
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space {\thechapter}
\par\nobreak
\vskip 0\p@
\fi
\fi
\interlinepenalty\@M
{\parbox{\textwidth}{\Huge \bfseries \linespread{1.2}\selectfont #1\par\nobreak}}
\vskip 40\p@
}}
\makeatother
答案1
你可以titlesec
使用sectsty
:
\documentclass[12pt,a4paper]{book}
\usepackage{lipsum}
\usepackage{titlesec}
\makeatletter
\titleformat
{\chapter}
[display]
{\centering\LARGE}
{\MakeUppercase{\@chapapp\enskip\thechapter}}
{0pt}
{\MakeUppercase}
\makeatother
\titleformat*{\section}{\large\MakeUppercase}
\titleformat*{\subsection}{\normalsize}
\usepackage{xpatch}
\xpatchcmd{\chapter}{\thispagestyle{plain}}{\thispagestyle{empty}}{}{}
\begin{document}
\chapter{Cap name one}
\lipsum[1]
\section{Section 1.1}
\lipsum[2-4]
\chapter{Cap name two}
\lipsum[5]
\section{Section 2.1}
\lipsum[6]
\end{document}
请注意,我已经更改了fontsize=12pt
和 ,paper=a4
因为它们是班级未知的book
。
结果: