
\newcommand{\Chapter}[1]{{\let\cleardoublepage\relax\chapter{#1}}}
funciona bien. ¿Cómo puedo hacer lo mismo con la versión marcada (*) dentro de un archivo .cls?
(Podría ser interesante para otros: ¿hay alguna diferencia al definirlo en el documento principal?)
Respuesta1
Ha indicado que desea redefinir \chapter
y \chapter*
. Para esto te sugiero que eches un vistazo a un nivel más profundo en tu clase y no es una tarea para principiantes.
De todos modos, podría crear una macro que haya incorporado una versión destacada y utilice el comando \chapter
escrito en su clase.
Una forma muy básica es la siguiente:
\documentclass{scrbook}
\newcommand{\MyChapter}{%
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}
some text
\MyChapter[My Introduction]{Introduction}
some text
\MyChapter*{Introduction}
some text
\end{document}
El comando \MyChapter
borra \cleardoublepage
, ejecuta \clearpage
y \chapter
. Tendrá todas las \chapter
características anteriores, porque \chapter
se ejecuta en último lugar y toma como argumentos lo que pongas después \MyChapter
.
Sin embargo este últimoNO es una buena practica, ya que el comando \cleardoublepage
se vuelve inútil y borrar los comandos de látex a menudo puede causar un mal funcionamiento.
En mi humilde opinión, una práctica "decente" podría ser guardarlo \cleardoublepage
y restaurarlo más tarde:
\documentclass{scrbook}
\newcommand{\ResCdp}{%
\let\cleardoublepage\cdp
}
\newcommand{\MyChapter}{%
\let\cdp\cleardoublepage
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}\ResCdp
some text
\MyChapter[My Introduction]{Introduction}\ResCdp
some text
\cleardoublepage
\MyChapter*{Introduction}\ResCdp
some text
\end{document}
que es algo difícil de leer/escribir pero funciona de forma segura.
Evitar usar esto \ResCdp
sin borrar \cleardoublepage
y conservar todas \chapter
las funciones requeriría muchos más esfuerzos.
Respuesta2
Ha indicado que utiliza la scrbook
clase de documento. Si desea redefinir \chapter
(y \chapter*
) para ejecutar \clearpage
en lugar de \cleardoublepage
, le sugiero que cargue el etoolbox
paquete y use su \patchcmd
macro para modificar la chapter
macro:
\usepackage{etoolbox}
\patchcmd{\chapter}{\cleardoublepage}{\clearpage}{}{}
Respuesta3
En caso de scrbook
utilizar la opción openany
e insertar \cleardoublepage
s manualmente.
No es exactamente la respuesta a la pregunta, aún así decidí usar este método.