我目前正在为科学开放获取期刊设计一种新的 LateX 布局。我已为作者信息定义了三个命令:目录 ( \authortoc
)、标题 ( \markauthor
) 和章节开始 ( \chapterauthor
)。请查看下面的最小工作示例 (MWE)。
要求:
标题中仅给出了作者的姓氏。
在目录中,作者的全名(名字、姓氏)以逗号分隔。
章节开头还标明了作者的全名。每个名字后面都有一个换行符。
我的问题是:是否可以将这三个命令集成到一个新的主命令中?这样我只需要在文档中指定此命令(每章指定一次,而不是每章指定三次)?
以下是 MWE。这是我创建的第一个 MWE。因此,如果我需要提供更多信息或有任何不清楚的地方,请告诉我。
顺便说一下,我正在使用 LuaLaTeX 进行编译。
\documentclass[%
fontsize=11pt, paper=a4, twoside]{scrbook}
\usepackage{fontspec}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
%% define author header
\makeatletter
\newcommand*{\authormark}{}
\newcommand*{\markauthor}[1]{%
\renewcommand{\authormark}{#1}%
\ignorespaces
}
%% define author chapter start
\newcommand*{\chapterauthor}[1]{%
\par\vspace{2\baselineskip}%
\textbf{\textsf{\protect\small#1}}%
% \markauthor{#1}% I had to uncomment this part, because otherwise the newline is written in the page header
\par\vspace{2\baselineskip}%
\@afterheading
}
%% define author TOC
\DeclareRobustCommand\authortoctext[1]{%
{\nopagebreak\leftskip0em\relax
\rightskip \@tocrmarg\relax
\noindent\itshape\sffamily#1\par}}
\makeatother
\newcommand\authortoc[1]{%
\addtocontents{toc}{\authortoctext{#1}}}
\usepackage[draft=false,headsepline,plainheadsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\lohead{\authormark}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{First Chapter}
\markauthor{Doe / Miller}%
\chapterauthor{John Doe\\
Joe Miller}%
\authortoc{John Doe, Joe Miller}%
\section*{Introduction}
\lipsum[1-10]
\end{document}