
No puedo entender cómo hacer esto, y miré eldocumentación de la caja de herramientas electrónica
El problema es simple de explicar: uso etoolbox para agregar un \clearpage
antes de cualquiera \section
en un documento grande para que cada sección comience en una nueva página. (Es un documento estilo libro, pero el MWE a continuación es un artículo)
Hay algunas secciones que son pequeñas y quiero decirle a etoolbox que no haga esto para la siguiente sección y luego decirle que comience de nuevo una vez finalizada la sección.
¿Como hacer esto? ¿Cuál es el comando etoolbox o Latex para esto?
Aquí hay un 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 perfecto.
Respuesta1
Una posibilidad es crear un interruptor y, dependiendo de si el interruptor es verdadero o falso, ejecutar el \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}
Respuesta2
Una posibilidad es crear un comando que localmente (leeren grupo) relax
es \clearpage
:
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
De esta manera, \clearpage
está configurado por defecto para todas las secciones del documento, pero para las \specialsection
s no aplica.
El ejemplo 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}