我正在尝试自定义报告类中的章节样式:
- 删除章节之间生成的空白页:完成包
etoolbox
:\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
- 删除“章节编号某物”:完成包
titlesec
:\titleformat{\chapter}[display]{\normalfont\bfseries}}{}{0pt}{\Huge}
- 这就是我感到困惑的地方,当我想删除章节名称前的空格时。我尝试了,
titlesec
\titlespacing{\chapter}{0pt}{0pt}{0pt}
但章节名称前仍然有空格,我也尝试在第二个花括号中使用负值,但文本本身却在写其他内容。
我希望章节名称位于页面顶部,而其他章节前后的空白空间不要太多。如果顶部边距设置为 2.5 厘米,我希望章节名称位于 2.5 厘米处
这是我的代码:
\documentclass[12pt,oneside]{report}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
\makeatother
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\bfseries}{}{0pt}{\Huge}
\titlespacing{\chapter}{0pt}{-50pt}{0pt}
\begin{document}
\chapter{My chapter}
lol
\chapter{Another chapter}
lol
\end{document}
答案1
首先,您实际上不需要修补\chapter
,因为openright
不是 的默认值report
。如果您在 所在的位置使用文档类,则可以使用该选项openany
来防止章节之间出现空白页。
现在,有几种方法可以解决这个问题:
您可以使用 KOMA-Script,它提供了许多宏,比标准类更容易修改布局:
\documentclass{scrreprt}
% makes the page borders visible
\usepackage{showframe}
\renewcommand*\chapterformat{}
\renewcommand*\chapterheadstartvskip{}
\begin{document}
\chapter{My chapter}
lol
\chapter{Another chapter}
lol
\end{document}
如果你喜欢使用report
and titlesec
,那么正确的语法\titlespacing
是
\titlespacing{\chapter}{0pt}{*0}{*0}
或者
\titlespacing*{\chapter}{0pt}{0pt}{0pt}
要删除章节标题上方的部分空格,可以删除 选项display
。\titleformat
但是,如果不对内部命令进行一些修改,我没能删除所有空格。如果我们这样做,那么不用 也可以做到titlesec
:
您可以重新定义\@makechapterhead
章节标题的排版方式。这里我采用了默认定义,并注释掉了所有您不想要的内容。
\documentclass{report}
% makes the page borders visible
\usepackage{showframe}
\makeatletter
\renewcommand*\@makechapterhead[1]{%
% \vspace*{50\p@}%
{%
\parindent\z@\raggedright\normalfont
% \ifnum\c@secnumdepth>\m@ne
% \huge\bfseries\@chapapp\space\thechapter\par
% \nobreak\vskip 20\p@
% \fi
% \interlinepenalty\@M
\Huge\bfseries
#1\par
\nobreak\vskip 40\p@
}
}
\makeatother
\begin{document}
\chapter{My chapter}
lol
\chapter{Another chapter}
lol
\end{document}
答案2
不确定补丁的作用是什么:其主要作用是在\chapter
开始时不会发生分页符。
report
除非您传递该openright
选项,否则该课程不会出现空白页。
\documentclass[12pt,oneside]{report}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{lipsum}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\bfseries\Huge}
{}
{0pt}
{}
\titlespacing{\chapter}
{0pt}
{-50pt}
{0pt}
\begin{document}
\chapter{My chapter}
\lipsum[1-5]
\chapter{Another chapter}
\lipsum[1-5]
\end{document}