我查看了十几个关于如何让章节不产生新页面的帖子。没有一个解决方案对我有用。例如,此解决方案,当同一页面上出现两个章节时会产生错误,与 一起使用时会产生无意义的输出twocolumn
,其中前一章节的文本呈现在后续章节下:
\documentclass[%
paper=A4,
twocolumn
]{scrreprt}%
\usepackage[utf8]{inputenc} % defines file's character encoding
\usepackage{lipsum}
\usepackage{titlesec}
\makeatletter
\renewcommand\chapter{\par%
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
\titleformat{\chapter}{%
\centering\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter} {0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}
\begin{document}
\chapter{bla}
\lipsum[1-5]
\chapter{bla}
CHAPTER TEXT BEGINS HERE.
\lipsum[100]
\end{document}
如何让章节标题的行为与节标题一样?无需分页符,并且可与两列文档完美兼容。
答案1
你只需要使用将titlesec
的类chapter
从改为。我借此机会使用 titlesec 相关选项简化了代码,并简化了(*3.5 表示 3.5ex 具有一定的可拉伸性和微小的可收缩性,根据文档第 5 页)。top
straight
\titlespacing
以下是书籍类的代码和结果:
\documentclass[a4paper, twocolumn]{book}%
\usepackage[utf8]{inputenc} % defines file's character encoding
\usepackage{lipsum}
\usepackage[noindentafter]{titlesec}
\titleformat{\chapter}{%
\thispagestyle{plain}\filcenter\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter} {0pt}{*3.5}{*2.3}
\titleclass{\chapter}{straight}
\begin{document}
\chapter{Bla}
\lipsum[1]
\section{A section}
\lipsum[2-4]
\chapter{Blabla}
CHAPTER TEXT BEGINS HERE.
\lipsum[100]
\end{document}
答案2
不使用包的建议titlesec
(不要将此包与 KOMA-Script 类一起使用):
\documentclass[a4paper, twocolumn]{scrreprt}%
\usepackage[utf8]{inputenc} % defines file's character encoding
\usepackage{lipsum}
\renewcommand\raggedchapter{\centering}
\RedeclareSectionCommand[
font=\normalfont\LARGE\bfseries,
style=section
]{chapter}
\let\originalsectionlinesformat\sectionlinesformat
\renewcommand\sectionlinesformat[4]{%
\ifstr{#1}{chapter}{\raggedchapter\thispagestyle{\chapterpagestyle}}{}%
\originalsectionlinesformat{#1}{#2}{#3}{#4}%
}
\begin{document}
\chapter{Bla}
\lipsum[1]
\section{A section}
\lipsum[2-4]
\chapter{Blabla}
CHAPTER TEXT BEGINS HERE.
\lipsum[100]
\end{document}
结果: