Redefina \chapter y \chapter* con \cleardoublepage dentro del archivo .cls

Redefina \chapter y \chapter* con \cleardoublepage dentro del archivo .cls
\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 \chaptery \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 \chapterescrito 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 \MyChapterborra \cleardoublepage, ejecuta \clearpagey \chapter. Tendrá todas las \chaptercaracterísticas anteriores, porque \chapterse 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 \cleardoublepagese 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 \cleardoublepagey 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 \ResCdpsin borrar \cleardoublepagey conservar todas \chapterlas funciones requeriría muchos más esfuerzos.

Respuesta2

Ha indicado que utiliza la scrbookclase de documento. Si desea redefinir \chapter(y \chapter*) para ejecutar \clearpageen lugar de \cleardoublepage, le sugiero que cargue el etoolboxpaquete y use su \patchcmdmacro para modificar la chaptermacro:

\usepackage{etoolbox}
\patchcmd{\chapter}{\cleardoublepage}{\clearpage}{}{}

Respuesta3

En caso de scrbookutilizar la opción openanye insertar \cleardoublepages manualmente.

No es exactamente la respuesta a la pregunta, aún así decidí usar este método.

información relacionada