尝试在同一页上开始章节时出错

尝试在同一页上开始章节时出错

这是我在这里的第一篇文章。我尝试过这个网站提出的解决方案,即在上一章结束的同一页上开始下一章,但总是出错。我是 TeX 新手,我觉得我自己无法找到答案。

我正在使用报告类和一些其他命令和包来使标题按照我的论文规范行事,但是当我使用其他主题中提出的清除页面解决方案时,我收到错误:

第 2 章。!软件包 titlesec /b/c9/cError:/b/c0/c 进入水平模式。请参阅 titlesec 软件包文档以了解解释。

我该如何解决这个问题,并在前一章结束后立即开始下一章?我会尽力提供 MWE:

\documentclass[11pt,a4paper]{report}
\usepackage{titlesec}
\newcommand{\cchapter}[1]{\chapter[#1]{\centering #1}}
\newcommand{\ssection}[1]{\section[#1]{\centering #1}}
\newcommand{\ssubsection}[1]{\subsection[#1]{\centering #1}}
\titleformat{\chapter}[hang]  
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter:}{1em}{}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}
\usepackage{etoolbox} 
\makeatletter 
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{} 
\makeatother 

\begin{document}
...
\cchapter{first}
bla bla bla
\cchapter{second}
bla bla bla2
\end{document}

谢谢!

答案1

问题是,\chapter你没有确保垂直模式(即段落终止)等\chapter。最好使用titlesec工具定义所有章节标题

\documentclass[11pt,a4paper]{report}
\usepackage{titlesec}

\titleformat{\chapter}[hang]
  {\normalfont\huge\bfseries}
  {\chaptertitlename\ \thechapter:\ }
  {0pt}
  {\filcenter}
\titlespacing*{\chapter}{0pt}{40pt}{40pt}
\titleformat*{\section}{\centering\Large\bfseries}
\titleformat*{\subsection}{\centering\large\bfseries}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\par}{}{}
\makeatother

\begin{document}
\chapter{first}
bla bla bla
\section{Sec}
bla bla bla
\subsection{Subsec}
bla bla bla
\chapter{second}
bla bla bla2
\end{document}

不需要\cchapter\ssection\ssubsection

答案2

方法这个答案您的情况失败了,我认为是因为包的原因。不过,我们用titlesec替换 中的\clearpage\cleardoublepage命令似乎有效。\chapter\par

\documentclass[11pt,a4paper]{report}
\usepackage{titlesec}
\newcommand{\cchapter}[1]{\chapter[#1]{\centering #1}}
\titleformat{\chapter}[hang]  
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter:}{1em}{}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}
\usepackage{etoolbox} 
\makeatletter 
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\par}{}{} 
\makeatother 

\begin{document}
...
\cchapter{first}
bla bla bla
\cchapter{second}
bla bla bla2
\end{document}

相关内容