我现在正在格式化我的论文,但我在格式化论文每个部分的标题页时遇到了问题。虽然我可以使用和访问每个章节的格式,\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
)