\makechapterhead 与 \part 的类似物是什么?

\makechapterhead 与 \part 的类似物是什么?

我现在正在格式化我的论文,但我在格式化论文每个部分的标题页时遇到了问题。虽然我可以使用和访问每个章节的格式,\makechapterhead\makeschapterhead我不知道如何访问的类似格式\part。为了说明我的问题,我做了以下事情:

\documentclass[oneside,english,11pt,british]{book}
\usepackage[doublespacing]{setspace}

\makeatletter
\def\hrulefill{\leavevmode \leaders \hrule height 1pt\hfill \kern \z@\vspace* {-10\p@}}
\def\@makechapterhead#1{%
\vspace*{70\p@}%
{\parindent \z@ \raggedleft \reset@font
       \Large \scshape \@chapapp{} \Large \thechapter\vspace*{-25\p@}
    \par\nobreak
    \interlinepenalty\@M\hrulefill\newline\vspace*{-5\p@}
\LARGE \bfseries #1\par\nobreak
\vspace*{-20\p@}%
\hrulefill
\par\nobreak
\vskip 30\p@
}}

\begin{document}
\part{This is part 1}
\chapter{This is my Chapter 1}
bla bla bla
\end{document}

显然,我希望包含部分标题的第一页具有与章节格式相同的格式。但我不知道如何访问默认设置。有人知道类似的吗\makechapterhead

答案1

我想建议你titlesec包。使用此包,您可以轻松自定义章节单元标题,即使不知道原始定义;这里有一个示例,可生成章节和部分标题所需的格式:

\documentclass[oneside,english,11pt,british]{book}
\usepackage[doublespacing]{setspace}
\usepackage{titlesec}

\titleformat{\part}[display]
  {\normalfont\filleft}{\Large\scshape\partname\ \thepart\\*[-15pt]\hrulefill}{-13pt}{\LARGE\bfseries}[\vspace{-25pt}\hrulefill]
\titleformat{\chapter}[display]
  {\normalfont\filleft}{\Large\scshape\chaptertitlename\ \thechapter\\*[-15pt]\hrulefill}{-13pt}{\LARGE\bfseries}[\vspace{-25pt}\hrulefill]
\titlespacing*{\chapter}
  {0pt}{65pt}{40pt}

\begin{document}

\part{Test part}
\chapter{Test chapter}

\end{document}

在此处输入图片描述

答案2

标准 LaTeX 文档类不会将部分格式化为章节,即头部的布局不会布局到另一个宏中。但您可以去修补相关的内部。在这种情况下,它将直接是宏@part

\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
  \refstepcounter{part}%
  \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
  \addcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
 \interlinepenalty \@M
 \normalfont
 \ifnum \c@secnumdepth >-2\relax
   \huge\bfseries \partname\nobreakspace\thepart
   \par
   \vskip 20\p@
 \fi
 \Huge \bfseries #2\par}%
\@endpart}

(详细来自book.cls

相关内容