我正在准备一本书,其中每一章都是由不同的人贡献的。我想在章节标题后面加上他们的名字。我该怎么做呢?如果我使用\maketitle
它,就是使用标题和作者姓名作为书。这是 MWE:
\documentclass[12pt]{book}
\usepackage{lipsum}
\author{S.Subham Soni}
%\title{A Sample Test} --> I don't want to use this
\begin{document}
%\maketitle
\chapter{This is a test}
\lipsum[4]
\end{document}
答案1
为什么不定义一个新命令\chapterauthor
\makeatletter
\newcommand{\chapterauthor}[1]{%
{\parindent0pt\vspace*{-25pt}%
\linespread{1.1}\large\scshape#1%
\par\nobreak\vspace*{35pt}}
\@afterheading%
}
\makeatother
并以此方式使用它?
\documentclass[12pt]{book}
\usepackage{lipsum}
\makeatletter
\newcommand{\chapterauthor}[1]{%
{\parindent0pt\vspace*{-25pt}%
\linespread{1.1}\large\scshape#1%
\par\nobreak\vspace*{35pt}}
\@afterheading%
}
\makeatother
\begin{document}
\chapter{This is a test}
\chapterauthor{S.Subham Soni}
\lipsum[4]
\end{document}
编辑
万一您想在目录中添加作者信息,这里有一个不同的版本。
在带星号的章节( )对应的位置使用带星号的版本\chapterauthor
()。\chapterauthor*
\chapter*
平均能量损失
\documentclass[12pt]{book}
\usepackage{lipsum}
\usepackage{suffix}
\newcommand\chapterauthor[1]{\authortoc{#1}\printchapterauthor{#1}}
\WithSuffix\newcommand\chapterauthor*[1]{\printchapterauthor{#1}}
\makeatletter
\newcommand{\printchapterauthor}[1]{%
{\parindent0pt\vspace*{-25pt}%
\linespread{1.1}\large\scshape#1%
\par\nobreak\vspace*{35pt}}
\@afterheading%
}
\newcommand{\authortoc}[1]{%
\addtocontents{toc}{\vskip-10pt}%
\addtocontents{toc}{%
\protect\contentsline{chapter}%
{\hskip1.3em\mdseries\scshape\protect\scriptsize#1}{}{}}
\addtocontents{toc}{\vskip5pt}%
}
\makeatother
\begin{document}
\tableofcontents
\chapter{1st chapter}
\chapterauthor{K.DINESH KUMAR \\ II Year B.Tech CSE}
\lipsum[1]
\section{A section}
\lipsum[1]
\chapter{2nd chapter}
\chapterauthor{S.Subham Soni}
\lipsum[1]
\section{A section}
\lipsum[1]
\chapter*{3rd chapter}
\chapterauthor*{Unknown}
\lipsum[1]
\end{document}
输出(目录):
答案2
这不是解决方案,而是如何继续下去的想法
\author{....}
\title{...}
\makechaptertitle
\label{chap:key}
开始一章。然后\makechapter
可以调用标题\chapter
和其他任何您需要的内容。