我刚刚写了一条命令来在同一页面上开始新的章节:
\documentclass{report}
\usepackage[utf8]{inputenc}
\newcommand{\chapterh}[1]{
{
\let
\clearpage
\relax
\chapter{#1}
}
}
\begin{document}
\chapter{}
Here some text.
\bigskip
Here some text after a bigskip.
\chapterh{}
Here some text.
\section{Section 1}
Here some text.
\section{Section 2}
Here some text.
\end{document}
它可以起作用,但是本章文本和本章第一节之间的空间异常小:
我发现问题在于上一章的代码中有一个空行(就在 \bigskip 之前和之后)。没有空行,一切都正常。我该如何解决这个问题?
答案1
clearpage hack 看起来很简单,但它将章节放在一个组中,这不是一个好主意。它隐藏了一些代码,因此混淆了以下分段命令。
最好从一开始就定义新命令:
\documentclass{report}
\makeatletter
\newcommand\chapterh{%\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
\begin{document}
\chapter{}
Here some text.
\bigskip
Here some text after a bigskip.
\chapterh{}
Here some text.
\section{Section 1}
Here some text.
\section{Section 2}
Here some text.
\end{document}
\usepackage[utf8]{inputenc}
不再需要,utf8 多年来一直是 latex 中的默认设置。