
Ich arbeite daran, ein Buch zu setzen, das schöne Illustrationen für die Kapitelüberschriften und ganzseitige Illustrationen für jeden Teil hat (Teil 1 erhält also eine Illustration, die den Text „Teil 1“ enthält usw.). Ich habe die Kapitelüberschrift erfolgreich unterdrückt mit:
\newcommand{\mychapter}[1]{%
\begingroup
\let\@makechapterhead\@gobble % make \@makechapterhead do nothing
\chapter{#1}
\endgroup
}
(Das funktioniert, aber Koma beschwert sich über die Neudefinition von @makechapterhead. Damit bin ich im Moment einverstanden, aber idealerweise hätte ich gerne eine Lösung, die Koma nicht nervt.)
Allerdings möchte ich dasselbe sowohl mit \part als auch mit \chapter machen, aber ich bekomme es nicht zum Laufen.
Hier ist ein MWE, bei dem das Inhaltsverzeichnis und die Seitenaufteilung genau richtig sind, ABER ich möchte nicht, dass die Seite mit „Teil 1“ oder die leere Seite gegenüber gedruckt werden:
\documentclass[twoside,chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\makeatletter
\newcommand{\mychapter}[1]{%
\begingroup
\let\@makechapterhead\@gobble
\chapter{#1}
\endgroup
}
\makeatother
\begin{document}
\tableofcontents
\KOMAoptions{headings=openleft}
\part{It begins}
%beautiful artwork goes... around here somewhere?
\includegraphics[width=\textwidth]{example-image-golden}
\KOMAoptions{headings=openright}
\mychapter{a chapter}
\begin{figure}[t!]
\centering
%beautiful chapter head artwork goes here
\includegraphics[width=\textwidth]{example-image-a}
\end{figure}
\blindtext
\mychapter{another chapter}
\begin{figure}[t!]
\centering
%beautiful chapter head artwork goes here
\includegraphics[width=\textwidth]{example-image-b}
\end{figure}
\blindtext
\KOMAoptions{headings=openleft}
\part{The middle bit}
%beautiful artwork goes... around here somewhere?
\includegraphics[width=\textwidth]{example-image-golden}
\KOMAoptions{headings=openright}
\mychapter{yet another chapter}
\includegraphics[width=\textwidth]{example-image-c}
\blindtext
\end{document}
(Wir tun so, als wäre das „goldene“ Bild die ganzseitige Grafik, die anstelle der LaTeX-Ausgabe „Teil N: Titel“ verwendet werden soll.)
Ich möchte, dass die Seite mit „Teil N: Titel“ und die leere Seite gegenüber ausgeblendet (nicht gedruckt) werden. Das Dokument sollte direkt vom Inhaltsverzeichnis zu einer Doppelseite mit der Teilabbildung auf der linken Seite und dem Kapitelanfang auf der rechten Seite übergehen.
Das Erstellen eines \newcommand analog zu \mychapter scheint nichts zu bewirken und schreibt nicht einmal etwas Interessantes ins Protokoll:
\makeatletter
\newcommand{\mypart}[1]{%
\begingroup
\let\@makeparthead\@gobble
\part{#1}
\endgroup
}
\makeatother
Der Versuch, eine Rolle vorzutäuschen, indemWeglassenden \part{It Begins}
Befehl und dotiert stattdessen das Inhaltsverzeichnis mit
\addcontentsline{toc}{part}{Part \thepart: It Begins}
führt dazu, dass die Teilüberschrift im Inhaltsverzeichnis angezeigt wirduntenKapitel 1 und ohne Teilenummer. Außerdem weiß ich nicht, wie ich \thepart erhöhen kann, damit nachfolgende Teile richtig nummeriert werden. Der Versuch, es manuell zu erhöhen, \stepcounter{\thepart}
führt zu einem Fehler.
Wenn dies im englischen Koma-Handbuch behandelt wird, habe ich es ehrlich gesagt übersehen.
Danke an alle!
Antwort1
Ich bin mir nicht sicher, ob ich genau verstehe, was Sie wollen. Aber anstatt an den Interna der Klasse herumzufummeln, würde ich vorschlagen, einen Befehl zu definieren, der genau das tut, was Sie wollen, und sonst nichts. Soweit ich weiß, wollen Sie:
- Beginnen Sie eine neue ungerade Seite (für Kapitel) oder eine neue gerade Seite (für Teile).
- trete den Zähler
- optional einen Inhaltsverzeichniseintrag und eine Markierung für Seitenüberschriften hinzufügen
- Drucken eines Bildes
Ich verwende ein optionales Argument für den Inhaltsverzeichniseintrag und die Markierung. Und ich definiere auch eine Sternvariante ohne Erhöhung der Zahl und ohne Inhaltsverzeichniseintrag und Markierung ähnlich wie \part*
und \chapter*
. Ich verwende das obligatorische Argument für die Bilddatei:
\documentclass[chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\makeatletter
\NewDocumentCommand\ArtPart{som}{%
\cleardoubleevenpage
\IfBooleanTF{#1}{% star version: no TOC entry or page header
}{%
\refstepcounter{part}%
\IfValueTF{#2}{% optional argument: Use for TOC entry and page header
\addparttocentry{\thepart.}{#2}%
\partmark{#2}%
}{}%
}%
\noindent\includegraphics[width=\textwidth]{#3}%
\par\nobreak
\@afterindentfalse% don't indent first paragraph after the heading
\@afterheading% don't allow page break here etc.
}
\NewDocumentCommand\ArtChapter{som}{%
\cleardoubleoddpage
\IfBooleanTF{#1}{% star version: no TOC entry or page header
}{%
\refstepcounter{chapter}%
\IfValueTF{#2}{% optional argument: Use for TOC entry and page header
\addchaptertocentry{\thechapter}{#2}%
\chaptermark{#2}%
}{}%
}%
\noindent\includegraphics[width=\textwidth]{#3}%
\par\nobreak
\@afterindentfalse% don't indent first paragraph after the heading
\@afterheading% don't allow page break here etc.
}
\makeatother
\begin{document}
\tableofcontents
\ArtPart[It begins]{example-image-golden}
\ArtChapter[a chapter]{example-image-a}
\blindtext
\ArtChapter[another chapter]{example-image-b}
\blindtext
\ArtPart[The middle bit]{example-image-golden}
\ArtChapter[yet another chapter]{example-image-c}
\blindtext
\end{document}
Beachten Sie auch, dass dies \thepart
nicht der Zähler, sondern die Ausgabe des Zählers ist. Der Zähler wäre part
und daher müssen Sie zur Manipulation des Zählers \stepcounter{part}
, \refstepcounter{part}
, \addtocounter{part}{…}
, und verwenden \setcounter{part}{…}
, aber nicht \stepcounter{\thepart}
. Beachten Sie auch, dass in KOMA-Script kein vordefiniertes vorhanden ist \@makeparthead
.
Weitere Informationen zu\NewDocumentCommand
finden Sie unter„LaTeX für Autoren – aktuelle Version“Nähere Informationen zu den verwendeten KOMA-Script-Befehlen finden Sie im KOMA-Script-Handbuch.
Wenn Sie es wirklich verwenden möchten \part
, \chapter
sollten Sie es meiner Meinung nach neu definieren \chapterlineswithprefixformat
und \partlineswithprefixformat
anstelle der internen Befehle:
\documentclass[chapterprefix,headings=big]{scrbook}
\usepackage{blindtext}
\usepackage{mwe}
\newcommand\mypart[2]{%
\begingroup
\KOMAoption{open}{left}%
\renewcommand*{\partlineswithprefixformat}[3]{%
\includegraphics[width=\textwidth]{#2}% this is the second argument of
% \mypart not of \partlineswithprefixformat
}%
\renewcommand*{\partheademptypage}{}% don't add an empty page after \part
\part[#1]{#2}%
\endgroup
}
\newcommand\mychapter[2]{%
\KOMAoption{open}{right}%
\DeclareCommandCopy\ChapterLinesWithPrefixFormat\chapterlineswithprefixformat
\renewcommand*{\chapterlineswithprefixformat}[3]{%
\includegraphics[width=\textwidth]{#2}% this is the second argument of
% \mychapter not of \chapterlineswithprefixformat
}%
\chapter[#1]{#2}%
\DeclareCommandCopy\chapterlineswithprefixformat\ChapterLinesWithPrefixFormat
}
\begin{document}
\tableofcontents
\mypart{It begins}{example-image-golden}
\mychapter{a chapter}{example-image-a}
\blindtext
\mychapter{another chapter}{example-image-b}
\blindtext
\mypart{The middle bit}{example-image-golden}
\mychapter{yet another chapter}{example-image-c}
\blindtext
\end{document}
Damit lässt sich \RedeclareSectionCommand
beispielsweise weiterhin der vertikale Abstand vor und nach der Überschrift = vor und nach dem Bild verändern.
Wie man sieht, habe ich für diesen zweiten Vorschlag keine internen Befehle benötigt, sondern nur Befehle, die im KOMA-Script-Handbuch für Anwender oder Fortgeschrittene dokumentiert sind oder die in„LaTeX für Autoren – aktuelle Version“.
Hinweis: Ich habe \begingroup…\endgroup
in nicht verwendet \mychapter
, da dies auch die Möglichkeit zum Hinzufügen eines \label
after zerstören würde \mychapter
und auch die afterindent=false
Funktion von zerstören würde. Stattdessen habe ich die Bedeutung von before \RedeclareSectionCommand
gespeichert und after wiederhergestellt .\chapterlineswithprefixformat
\chapter
\chapter
Für den ersten Vorschlag habe ich nur \@afterindentfalse
und \@afterheading
aus dem LaTeX-Kernel benötigt. Dies sind die üblichen Befehle für Klassen-/Paketautoren, aber keine internen KOMA-Script-Befehle.