在我的文档中,其中一个章节标题超过一行,因此我想增加行间距。为此,我使用了\linespread{1.8}\selectfont
下面的代码,但使用后,“ Chapter #
”和之间的间距Chapter Heading
也会增加。我该如何避免后者不必要的间距?顺便说一句,我宁愿不使用像titlesec
或 这样的附加包setspace
。
\documentclass{book}
\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 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries \linespread{2}\selectfont #1\par\nobreak
\vskip 40\p@
}}
\makeatother
\begin{document}
\chapter{Chapter Heading which is very very very long}
Some text ...
\end{document}
答案1
不是!在您的代码中,您有一个vskip20\p@
,并且它保持不变。(请参见下面的最小值,我将其归零。
\documentclass{book}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \fbox{\thechapter}
\par\nobreak
\vskip 0\p@
\fi
\fi
\interlinepenalty\@M
\fbox{\parbox{\textwidth}{\Huge \bfseries \linespread{1.2}\selectfont #1\par\nobreak}}
\vskip 40\p@
}}
\makeatother
\begin{document}
\chapter{Chapter Heading which is very very Hery long}
Some text ...
\end{document}
另外不要忘记使用以下命令修改命令的星号版本\@make
schapterhead