
\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
\chapter
Sie 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 \chapter
in 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 \MyChapter
löscht \cleardoublepage
, führt aus \clearpage
und \chapter
. Er verfügt über alle \chapter
Funktionen Ihres alten , da \chapter
er zuletzt ausgeführt wird und als Argumente alles verwendet, was Sie nach eingeben \MyChapter
.
Doch letzteresist KEINE gute Praxis, da Befehle \cleardoublepage
unbrauchbar 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, \cleardoublepage
es 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, \ResCdp
ohne alle Funktionen zu löschen \cleardoublepage
und beizubehalten , wäre ein erheblicher weiterer Aufwand erforderlich.\chapter
Antwort2
scrbook
Sie haben angegeben, dass Sie die Dokumentklasse verwenden . Wenn Sie \chapter
(und \chapter*
) neu definieren möchten, sodass es \clearpage
statt ausgeführt wird \cleardoublepage
, schlage ich vor, dass Sie das Paket laden etoolbox
und dessen \patchcmd
Makro verwenden, um das chapter
Makro zu ändern:
\usepackage{etoolbox}
\patchcmd{\chapter}{\cleardoublepage}{\clearpage}{}{}
Antwort3
Verwenden Sie ggf. scrbook
die Option openany
und fügen Sie \cleardoublepage
s manuell ein.
Es ist nicht genau die Antwort auf die Frage, aber ich habe mich trotzdem für diese Methode entschieden.