我正在编辑一个有多名作者的版本。我希望章节的作者姓名显示在目录中。我修改了章节以在其中添加作者,并将其用于页眉,如下所示:
\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 的图像:
我删除了与上述问题无关的原始示例中的代码。我还更改了一些德语单词的拼写,仅用于示例(我懒得更改编辑器的编码),