我有一本书,它有很多章节,每个章节都有许多部分。
对于某些章节,我想自动让每个部分从新页面开始,但对于其他章节则不然。
问题是,\newcommand{\sectionbreak}{\clearpage}
从titlesec
添加到序言开始,对整个文档具有全局影响。因此,每章的所有部分都将从新页开始。
有没有办法控制此命令何时处于活动状态(或其他解决方案),以便人们可以在他们希望每个部分从新页面开始的章节开始时打开/关闭它?
我当然可以 titlesec
完全不使用命令,而是在特定的章节\clearpage
前面手动添加section
,但这工作量太大,因为有很多部分和章节,而且如果后来我改变主意,我必须再去一个一个地编辑它们。
如果每个章节只有一个命令,那么我必须在一个地方将其关闭,这样维护起来也容易得多。
以下是我所指的 MWE
\documentclass[11pt]{scrbook}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}%this is global effect
\begin{document}
\chapter{introduction}
%\Need Command Here To turn OFF Starting Each
%Section On New Page After The First Section
\section{A}
blabla
\section{B}
blabla
\chapter{Another chapter}
%\Need Command Here To turn ON Starting Each Section On New Page
%And later on, in next chapter, I might turn it off again
\section{A}
blabla
\section{B}
blabla
\end{document}
顺便说一句,我使用 lualatex。
答案1
只需放
\renewcommand\sectionbreak{}
在章节开始时将其禁用,然后\clearpage
在其他章节中将其重新定义。
答案2
这里有一个自动化的方法,只需要你在序言中做出更改。你可以使用\SetChaptersWithPageBreaks
给出一个逗号分隔的章节号列表,其中你想要在每个部分之间设置分页符。例如,使用
\SetChaptersWithPageBreaks{2,3,5}
第 2、3 和 5 章将有这些分页符,而其他章节则没有。在此位置,下面的 MWE 产生:
以及相当多其他页面。以下是完整代码:
\documentclass[11pt]{scrbook}
\usepackage{titlesec}
\usepackage{expl3}
\ExplSyntaxOn
\clist_new:N \g_chapters_with_page_breaks_clist
\newcommand\SetChaptersWithPageBreaks[1]{
\clist_gset:Nn \g_chapters_with_page_breaks_clist {#1}
}
\newcommand{\sectionbreak}{
\clist_if_in:NxT \g_chapters_with_page_breaks_clist {\arabic{chapter}} {\clearpage}
}
\cs_generate_variant:Nn \clist_if_in:NnT {NxT}
\ExplSyntaxOff
% comma separated list of chapters that require page breaks afer sections
\SetChaptersWithPageBreaks{2,3,5}
\begin{document}
\chapter{introduction}
\section{A} blabla \section{B} blabla
\chapter{Another chapter}
\section{A} blabla \section{B} blabla
\chapter{Another chapter}
\section{A} blabla \section{B} blabla
\chapter{Another chapter}
\section{A} blabla \section{B} blabla
\chapter{Another chapter}
\section{A} blabla \section{B} blabla
\chapter{Another chapter}
\section{A} blabla \section{B} blabla
\end{document}