Definieren Sie \chapter und \chapter* mit \cleardoublepage in der .cls-Datei neu

Definieren Sie \chapter und \chapter* mit \cleardoublepage in der .cls-Datei neu
\newcommand{\Chapter}[1]{{\let\cleardoublepage\relax\chapter{#1}}}

funktioniert einwandfrei. Wie kann ich dasselbe für die mit Sternchen (*) gekennzeichnete Version in einer .cls-Datei tun?

(Könnte für andere interessant sein: Gibt es einen Unterschied zur Definition im Hauptdokument?)

Antwort1

\chapterSie haben angedeutet, dass Sie und neu definieren möchten \chapter*. Ich schlage vor, dass Sie sich das in Ihrem Unterricht auf einer tieferen Ebene ansehen. Das ist keine Aufgabe für Anfänger.

Sie könnten trotzdem ein Makro erstellen, das eine mit einem Sternchen versehene Version integriert hat und den \chapterin Ihrer Klasse geschriebenen Befehl verwendet.

Ein sehr einfacher Weg geht wie folgt:

\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}

Der Befehl \MyChapterlöscht \cleardoublepage, führt aus \clearpageund \chapter. Er verfügt über alle \chapterFunktionen Ihres alten , da \chapterer zuletzt ausgeführt wird und als Argumente alles verwendet, was Sie nach eingeben \MyChapter.

Doch letzteresist KEINE gute Praxis, da Befehle \cleardoublepageunbrauchbar werden und das Löschen von Latex-Befehlen oft zu Funktionsstörungen führen kann.

Meiner Meinung nach könnte es eine „gute“ Vorgehensweise sein, \cleardoublepagees zu speichern und später wiederherzustellen:

\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}

Das ist zwar etwas schwierig zu lesen/schreiben, erfüllt aber seinen Zweck sicher.

Um die Verwendung zu vermeiden, \ResCdpohne alle Funktionen zu löschen \cleardoublepageund beizubehalten , wäre ein erheblicher weiterer Aufwand erforderlich.\chapter

Antwort2

scrbookSie haben angegeben, dass Sie die Dokumentklasse verwenden . Wenn Sie \chapter(und \chapter*) neu definieren möchten, sodass es \clearpagestatt ausgeführt wird \cleardoublepage, schlage ich vor, dass Sie das Paket laden etoolboxund dessen \patchcmdMakro verwenden, um das chapterMakro zu ändern:

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

Antwort3

Verwenden Sie ggf. scrbookdie Option openanyund fügen Sie \cleardoublepages manuell ein.

Es ist nicht genau die Antwort auf die Frage, aber ich habe mich trotzdem für diese Methode entschieden.

verwandte Informationen