在目录中的章节标题前添加作者

在目录中的章节标题前添加作者

我正在编辑一个有多名作者的版本。我希望章节的作者姓名显示在目录中。我修改了章节以在其中添加作者,并将其用于页眉,如下所示:

\documentclass[10pt,twoside]{memoir}
\usepackage[german]{babel}
\usepackage{blindtext}
\usepackage[ansinew]{inputenc} 
\usepackage{scrpage2}

%%
% Kopf- und Fußzeile
%%
\usepackage{fancyhdr}
\pagestyle{fancy}

\makeatletter

%%
% Kapitelüberschrift um Feld für Autor erweitern
%%
\newcommand*{\orgichapter}{}
\let\orgichapter\chapter
\renewcommand*{\chapter}[1]{%
  \gdef\chapterauthor{#1}% 
  \orgichapter
}
\renewcommand*{\chapterformat}{}

%%
% Kapitelüberschrift formatieren
%%
\renewcommand{\printchaptername}{} % Kapitelnamen unterdrücken
\renewcommand{\chapternamenum}{}
\renewcommand{\printchapternum}{}  % Kapitelnummer unterdrücken
\renewcommand{\afterchapternum}{}

%%
% Autor nach Titel einfügen
%%
\renewcommand{\afterchaptertitle}{%
\vskip\onelineskip\begin{large}\textit{\chapterauthor}\end{large}
\vskip\onelineskip}

%%
% Zählung auf der Ebene \section beginnen
%%
\renewcommand{\thesection}{\arabic{section}}
\setcounter{secnumdepth}{3} % Subsection mit Zähler (1.1) versehen

%%
% Kolumnentitel
%%
\renewcommand{\chaptermark}[1]{ \markboth{#1}{}  } % Stil der Kopfzeile zurücksetzen
\renewcommand{\sectionmark}[1]{ \markright{#1}{} } % Stil der Kopfzeile zurücksetzen
\fancyhf{}                        % Use fancyhdr
\fancyhead[CE]{\small\chapterauthor}    % L for Left, E for Even page
\fancyhead[CO]{\small\leftmark}         % Aufsatztitel als Kolumentitel
%\fancyhead[CO]{\rightmark}       % \chapter als Kolumnentitel
\fancyhead[LE]{\thepage}          % L for Left, E for Even page
\fancyhead[RO]{\thepage} 
\renewcommand{\headrulewidth}{0pt} % Keine Trennlinie

%%
% Inhaltsverzeichnis
%%
\renewcommand*{\cftchapterdotsep}{\cftdotsep}
\settocdepth{chapter}
\renewcommand{\cftchapterfont}{\normalfont}
\renewcommand{\cftchapterpagefont}{\normalfont}

%%
% Dokumentenbeginn
%%
\begin{document}
\tableofcontents* 

\chapter{Walter von der Vogelweide}[]{Ich saß uf eynem Steine?}
\section{Und dachte Bein mit Beine}

\Blindtext

\clearpage

\chapter{Hartman von Aue}[Was auch immer]{So gebt nur mehr und immer mehr}

\section{Moralische Quellen der Irrationalität}
\thispagestyle{empty}
\Blindtext
\section{Das ist nur Blindtext}
\Blindtext
\end{document}

我如何\chapterauthor在 ToC 中使用 now?它应该看起来像这样:

Walter von der Vogelweide
Title of the chapter  ........  123

Hartmann von Aue
Title of the chapter  ........  345

我知道,之前很多人问过这个问题,但是无论如何我都无法让它发挥作用。

答案1

我建议你不要重载标准命令。在下面的例子中,我定义了一个命令,\authortoc在每个命令之前使用\chapter;这个命令在目录中包含它的参数(我选择了斜体字体,但你可以很容易地更改它),并且还为在标题中使用的标记做了准备。

我还使用\makepagestyle及其相关命令系列来定义页面样式(memoir有自己的定义页面样式的机制,因此没有必要(也不建议)使用fancyhdr):

\documentclass[10pt,twoside]{memoir}
\usepackage[german]{babel}
\usepackage{blindtext}
\usepackage[ansinew]{inputenc} 

\renewcommand{\thesection}{\arabic{section}}
\setcounter{secnumdepth}{3} % Subsection mit Zähler (1.1) versehen

%%
% Kolumnentitel
%%
\renewcommand{\chaptermark}[1]{ \markboth{#1}{}  } % Stil der Kopfzeile zurücksetzen
\renewcommand{\sectionmark}[1]{ \markright{#1}{} } % Stil der Kopfzeile 

% Page style
\makepagestyle{mystyle}
\makeevenhead{mystyle}{\thepage}{\small\chapterauthor}{}
\makeoddhead{mystyle}{}{\slshape\leftmark}{\thepage}
\pagestyle{mystyle}

%%
% Inhaltsverzeichnis
%%
\renewcommand*{\cftchapterdotsep}{\cftdotsep}
\settocdepth{chapter}
\renewcommand{\cftchapterfont}{\normalfont}
\renewcommand{\cftchapterpagefont}{\normalfont}

\makeatletter
\DeclareRobustCommand\authortoctext[1]{%
{\addvspace{10pt}\nopagebreak\leftskip0em\relax
\rightskip \@tocrmarg\relax
\noindent\itshape#1\par\addvspace{-7pt}}}
\makeatother
\newcommand\authortoc[1]{%
  \gdef\chapterauthor{#1}%
  \addtocontents{toc}{\authortoctext{#1}}}

%%
% Dokumentenbeginn
%%
\begin{document}
\tableofcontents* 
\authortoc{Walter von der Vogelweide}
\chapter{Ich sass uf eynem Steine?}
\section{Und dachte Bein mit Beine}
\Blindtext\Blindtext\Blindtext\Blindtext

\authortoc{Hartman von Aue}
\chapter[Was auch immer]{So gebt nur mehr und immer mehr}
\section{Moralische Quellen der Irrationalitat}
\Blindtext\Blindtext\Blindtext\Blindtext
\end{document}

以下是生成的 ToC 的图像:

在此处输入图片描述

我删除了与上述问题无关的原始示例中的代码。我还更改了一些德语单词的拼写,仅用于示例(我懒得更改编辑器的编码),

相关内容