von KOMA » Di 29. Nov 2022, 14:07
Könnte sein, dass ich nicht ganz verstanden habe, was Du willst.
- Auf jeder Seite im Kopf in der Mitte: Autor: Kapiteltitel.
- Auf linken Seiten im Kopf in der Mitte: Autor. Auf rechten Seiten im Kopf in der Mitte: Kapiteltitel.
Ich bin bisher von 2. ausgegangen. Dann würde eine gute Lösung beispielsweise so aussehen:
\documentclass[paper=A4, headings=small]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\renewcommand*{\raggedsection}{\centering}
\usepackage{scrlayer-scrpage}
\automark{chapter}% Automatisch erst einmal nur Kapitel in die Kopfzeile
% eintragen.
\renewcommand*{\chaptermark}[1]{% Allerdings nicht wie in der Voreinstellung
% in die linke Marke mit löschen der rechten,
\markright{#1}% sondern in die rechte Marke.
}
\clearpairofpagestyles
\chead{\headmark}
\ofoot*{\pagemark}
\setkomafont{pagehead}{\small}% Kopf in \small
\setcounter{secnumdepth}{-\maxdimen}% Gliederungsbefehle ohne Nummern
% Neuen Verzeichniseintragstyp chapterauthor definieren.
\DeclareTOCStyleEntry[%
level=\chaptertocdepth,% Gleiche Ebene wie Kapitel.
beforeskip:=chapter,
indent=0pt,% Kein Einzug.
numwidth=0pt,% Da wir ohnehin nicht nummerieren, braucht es auch keine
% Breite für die Nummer.
linefill=\hfill,% Keine Pünktchen
pagenumberbox=\gobble,% keine Seitenzahl
]{tocline}{chapterauthor}
\newcommand*{\gobble}[1]{}
\DeclareTOCStyleEntry[beforeskip=0pt]{chapter}{chapter}% Kein Abstand mehr vor
% Kapiteleinträgen im Inhaltsverzeichnis
\newcommand*{\chapterauthor}[1]{%
\cleardoublepage% Damit die Seite für den Eintrag stimmt, falls das doch
% mein eine Seite mit ausgegeben werden soll.
\addchapterauthortocentry{}{#1}%
\markleft{#1}% Autor in die linke Marke.
\setchapterpreamble{%
\centering\usekomafont{chapterauthor}{#1\par}%
\vspace{2\baselineskip}%
}%
}
\newkomafont{chapterauthor}{\large\scshape}
\newcommand{\addchapterauthortocentry}[2]{%
\addtocentrydefault{chapterauthor}{#1}{#2}%
}
\renewcaptionname{ngerman}{\contentsname}{Inhaltsverzeichnis}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapterauthor{Max Mustermann}
\chapter{Das eine Bildnis}
\blindtext[13]
\chapterauthor{Eva Musterfrau}
\chapter{Das andere Musikstück}
\blindtext[13]
% Ab hier soll der Abstand im Inhaltsverzeichnis nun wieder vor dem Kapitel
% stehen.
\addtocontents{toc}{%
\protect\DeclareTOCStyleEntry[beforeskip:=chapterauthor]{chapter}{chapter}%
}
\addchap{Literaturverzeichnis}
\end{document}
Ich will auch nicht verschweigen, dass es recht trickreiche Alternativlösungen gibt, beispielsweise:
% Achtung: Diese Lösung verwendet Interna von KOMA-Script bei denen nicht garantiert ist,
% dass sie auch in Zukunft so funktionieren!
\documentclass[ngerman,headings=small,headings=optiontotocandhead]{scrbook}
\usepackage{babel}
\usepackage{blindtext}
\renewcommand*{\raggedsection}{\centering}
\usepackage[automark]{scrlayer-scrpage}
\renewcommand*{\chaptermark}[1]{%
\markboth{\chapterauthor}{#1}%
}
\clearpairofpagestyles
\chead{\headmark}
\ofoot*{\pagemark}
\setkomafont{pagehead}{\small}% Kopf in \small
\setcounter{secnumdepth}{-\maxdimen}% Gliederungsbefehle ohne Nummern
\makeatletter
\newcommand*{\chapterauthor}{}% Darin merken wir uns den Kapitelautor.
\FamilyStringKey[.section]{KOMAarg}{author}{\chapterauthor}% Den wir ab sofort per Option zu \chapter etc. setzen können.
\AddtoDoHook{heading/preinit/chapter}{\renewcommand*{\chapterauthor}{}\@gobble}% Natürlich muss er auch bei jedem \chapter leer initialisiert werden.
\renewcommand*{\chapterlinesformat}[3]{%
\@hangfrom{#2}{#3}% Das ist die normale Ausgabe.
\ifx\chapterauthor\@empty\else% Wenn der Kapitelautor gesetzt wurde, geben
% wir den aus
\vskip 10pt
\usekomafont{chapterauthor}{\chapterauthor\par}%
\fi
}
\NewCommandCopy\savedaddchaptertocentry\addchaptertocentry
\renewcommand*{\addchaptertocentry}[2]{%
\ifx\chapterauthor\@empty% Wenn der Kapitelautor leer ist
\savedaddchaptertocentry{#1}{#2}% schreiben wir einen normalen Eintrag
\else
\savedaddchaptertocentry{#1}{\chapterauthor\newline#2}% sonst einen mit
% Autor (hier könnte man auch einen eigenen
% Eintrag für den Autor erzeugen)
\fi
}
\makeatother
\renewcaptionname{ngerman}{\contentsname}{Inhaltsverzeichnis}
\newkomafont{chapterauthor}{\large\scshape}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter[author=Max Mustermann]{Das eine Bildnis}
\blindtext[13]
\chapterauthor{Eva Musterfrau}
\chapter[author=Eva Musterfrau]{Das andere Musikstück}
\blindtext[13]
\automark[chapter]{chapter}% Ab hier eine andere Markierung verwenden.
\addchap{Literaturverzeichnis}
\blindtext[13]
\end{document}
Falls du stattdessen 1. willst, sieht die Lösung natürlich etwas anders aus.
BTW: Dass
\automark[chapterauthor]{chapter} nicht funktioniert, ist übrigens kein Wunder.
\chapterauthor ist kein Gliederungsbefehl und deshalb
chapterauthor keine
scrlayer-scrpage bekannte Gliederungsebene. Das hatte ich deshalb auch nie angeregt, jedenfalls nicht, solange man nicht einen Gliederungbefehl
\chapterauthor per
\DeclareNewSectionCommand definiert.
Könnte sein, dass ich nicht ganz verstanden habe, was Du willst.
[list=1]
[*]Auf jeder Seite im Kopf in der Mitte: [i]Autor[/i]: [i]Kapiteltitel[/i].
[*]Auf linken Seiten im Kopf in der Mitte: [i]Autor[/i]. Auf rechten Seiten im Kopf in der Mitte: [i]Kapiteltitel[/i].
[/list]
Ich bin bisher von 2. ausgegangen. Dann würde eine gute Lösung beispielsweise so aussehen:
[code]
\documentclass[paper=A4, headings=small]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\renewcommand*{\raggedsection}{\centering}
\usepackage{scrlayer-scrpage}
\automark{chapter}% Automatisch erst einmal nur Kapitel in die Kopfzeile
% eintragen.
\renewcommand*{\chaptermark}[1]{% Allerdings nicht wie in der Voreinstellung
% in die linke Marke mit löschen der rechten,
\markright{#1}% sondern in die rechte Marke.
}
\clearpairofpagestyles
\chead{\headmark}
\ofoot*{\pagemark}
\setkomafont{pagehead}{\small}% Kopf in \small
\setcounter{secnumdepth}{-\maxdimen}% Gliederungsbefehle ohne Nummern
% Neuen Verzeichniseintragstyp chapterauthor definieren.
\DeclareTOCStyleEntry[%
level=\chaptertocdepth,% Gleiche Ebene wie Kapitel.
beforeskip:=chapter,
indent=0pt,% Kein Einzug.
numwidth=0pt,% Da wir ohnehin nicht nummerieren, braucht es auch keine
% Breite für die Nummer.
linefill=\hfill,% Keine Pünktchen
pagenumberbox=\gobble,% keine Seitenzahl
]{tocline}{chapterauthor}
\newcommand*{\gobble}[1]{}
\DeclareTOCStyleEntry[beforeskip=0pt]{chapter}{chapter}% Kein Abstand mehr vor
% Kapiteleinträgen im Inhaltsverzeichnis
\newcommand*{\chapterauthor}[1]{%
\cleardoublepage% Damit die Seite für den Eintrag stimmt, falls das doch
% mein eine Seite mit ausgegeben werden soll.
\addchapterauthortocentry{}{#1}%
\markleft{#1}% Autor in die linke Marke.
\setchapterpreamble{%
\centering\usekomafont{chapterauthor}{#1\par}%
\vspace{2\baselineskip}%
}%
}
\newkomafont{chapterauthor}{\large\scshape}
\newcommand{\addchapterauthortocentry}[2]{%
\addtocentrydefault{chapterauthor}{#1}{#2}%
}
\renewcaptionname{ngerman}{\contentsname}{Inhaltsverzeichnis}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapterauthor{Max Mustermann}
\chapter{Das eine Bildnis}
\blindtext[13]
\chapterauthor{Eva Musterfrau}
\chapter{Das andere Musikstück}
\blindtext[13]
% Ab hier soll der Abstand im Inhaltsverzeichnis nun wieder vor dem Kapitel
% stehen.
\addtocontents{toc}{%
\protect\DeclareTOCStyleEntry[beforeskip:=chapterauthor]{chapter}{chapter}%
}
\addchap{Literaturverzeichnis}
\end{document}
[/code]
Ich will auch nicht verschweigen, dass es recht trickreiche Alternativlösungen gibt, beispielsweise:
[code]
% Achtung: Diese Lösung verwendet Interna von KOMA-Script bei denen nicht garantiert ist,
% dass sie auch in Zukunft so funktionieren!
\documentclass[ngerman,headings=small,headings=optiontotocandhead]{scrbook}
\usepackage{babel}
\usepackage{blindtext}
\renewcommand*{\raggedsection}{\centering}
\usepackage[automark]{scrlayer-scrpage}
\renewcommand*{\chaptermark}[1]{%
\markboth{\chapterauthor}{#1}%
}
\clearpairofpagestyles
\chead{\headmark}
\ofoot*{\pagemark}
\setkomafont{pagehead}{\small}% Kopf in \small
\setcounter{secnumdepth}{-\maxdimen}% Gliederungsbefehle ohne Nummern
\makeatletter
\newcommand*{\chapterauthor}{}% Darin merken wir uns den Kapitelautor.
\FamilyStringKey[.section]{KOMAarg}{author}{\chapterauthor}% Den wir ab sofort per Option zu \chapter etc. setzen können.
\AddtoDoHook{heading/preinit/chapter}{\renewcommand*{\chapterauthor}{}\@gobble}% Natürlich muss er auch bei jedem \chapter leer initialisiert werden.
\renewcommand*{\chapterlinesformat}[3]{%
\@hangfrom{#2}{#3}% Das ist die normale Ausgabe.
\ifx\chapterauthor\@empty\else% Wenn der Kapitelautor gesetzt wurde, geben
% wir den aus
\vskip 10pt
\usekomafont{chapterauthor}{\chapterauthor\par}%
\fi
}
\NewCommandCopy\savedaddchaptertocentry\addchaptertocentry
\renewcommand*{\addchaptertocentry}[2]{%
\ifx\chapterauthor\@empty% Wenn der Kapitelautor leer ist
\savedaddchaptertocentry{#1}{#2}% schreiben wir einen normalen Eintrag
\else
\savedaddchaptertocentry{#1}{\chapterauthor\newline#2}% sonst einen mit
% Autor (hier könnte man auch einen eigenen
% Eintrag für den Autor erzeugen)
\fi
}
\makeatother
\renewcaptionname{ngerman}{\contentsname}{Inhaltsverzeichnis}
\newkomafont{chapterauthor}{\large\scshape}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter[author=Max Mustermann]{Das eine Bildnis}
\blindtext[13]
\chapterauthor{Eva Musterfrau}
\chapter[author=Eva Musterfrau]{Das andere Musikstück}
\blindtext[13]
\automark[chapter]{chapter}% Ab hier eine andere Markierung verwenden.
\addchap{Literaturverzeichnis}
\blindtext[13]
\end{document}
[/code]
Falls du stattdessen 1. willst, sieht die Lösung natürlich etwas anders aus.
BTW: Dass [tt]\automark[chapterauthor]{chapter}[/tt] nicht funktioniert, ist übrigens kein Wunder. [tt]\chapterauthor[/tt] ist kein Gliederungsbefehl und deshalb [tt]chapterauthor[/tt] keine [tt]scrlayer-scrpage[/tt] bekannte Gliederungsebene. Das hatte ich deshalb auch nie angeregt, jedenfalls nicht, solange man nicht einen Gliederungbefehl [tt]\chapterauthor[/tt] per [tt]\DeclareNewSectionCommand[/tt] definiert.