
Não consigo descobrir como fazer isso e olhei para odocumentação do etoolbox
O problema é simples de explicar: eu uso o etoolbox para acrescentar um \clearpage
antes de qualquer um \section
em um documento grande para que cada seção comece em uma nova página. (é um documento estilo livro, mas o MWE abaixo é um artigo)
Existem algumas seções que são pequenas, e quero dizer ao etoolbox para não fazer isso na seção seguinte e, em seguida, solicitar que ele comece novamente após a conclusão da seção.
Como fazer isso? qual é o comando etoolbox ou Latex para isso?
Aqui está um 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.
Responder1
Uma possibilidade é criar uma opção e dependendo se a opção é verdadeira ou falsa executar o \clearpage
comando.
\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}
Responder2
Uma possibilidade é criar um comando que localmente (leiaem grupo) relax
é \clearpage
:
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
Desta forma, \clearpage
está definido por padrão para todas as seções do documento, mas para \specialsection
s não se aplica.
O exemplo completo:
\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}