
Я не могу понять, как это сделать, и я посмотрел надокументация etoolbox
Проблему легко объяснить: я использую etoolbox, чтобы добавить a \clearpage
перед any \section
в большом документе, чтобы каждый раздел начинался с новой страницы. (Это документ в книжном стиле, но MWE ниже — это статья)
Есть несколько небольших разделов, и я хочу указать etoolbox не делать этого для следующего раздела, а затем указать ему начать снова после завершения раздела.
Как это сделать? Какая команда etoolbox или Latex для этого нужна?
Вот MWE
\documentclass[12pt]{article}%
\usepackage{etoolbox}\preto\section{\clearpage}
\usepackage{lipsum}
\begin{document}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
%do not add \clearpage here, how?
\section{C}
\lipsum[75]
%now start adding \clearpage, it is ok
\section{D}
\lipsum[75]
\end{document}
Texlive 2013, Linux Mint.
решение1
Можно создать переключатель и в зависимости от того, является ли переключатель истинным или ложным, выполнить команду \clearpage
.
\documentclass[12pt]{article}%
\usepackage{etoolbox}
\usepackage{lipsum}
\newtoggle{clearpagebeforesection}
\preto{\section}{\iftoggle{clearpagebeforesection}{\clearpage}{}}
\begin{document}
\toggletrue{clearpagebeforesection}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
%do not add \clearpage here, how?
\togglefalse{clearpagebeforesection}
\section{C}
\lipsum[75]
%now start adding \clearpage, it is ok
\toggletrue{clearpagebeforesection}
\section{D}
\lipsum[75]
\section{E}
\lipsum[75]
\end{document}
решение2
Одна из возможностей — создать команду, которая будет выполняться локально (читайв группе) relax
ес \clearpage
:
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
Таким образом, \clearpage
он устанавливается по умолчанию для всех разделов документа, но к разделу \specialsection
s он не применяется.
Полный пример:
\documentclass[12pt]{article}%
\usepackage{etoolbox}
\preto\section{\clearpage}
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
\usepackage{lipsum}
\begin{document}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
% we use the new command
\specialsection{C}
\lipsum[75]
\section{D}
\lipsum[75]
\end{document}