我曾见过一份文件,其中的论文标题和作者姓名位于 \chapter*{Abstract}
章节标题上方。它看起来像这样:
如何在章节标题上方添加类似的自定义文本?
以下是根据要求提供的 MWE。我希望“标题”和“作者”文本位于章节标题上方,就像上面的屏幕截图一样。
\documentclass[12pt,a4paper]{book}
\usepackage{lipsum}
\usepackage[parfill]{parskip}
\begin{document}
\chapter*{Abstract}
\textbf{\Large{Title}}
\emph{\large{Author}}
\lipsum[1]
\end{document}
答案1
这是一个基于使用标题包的\thetitle
和\theauthor
命令(由\title
和设置\author
)的实现,用于创建一个新命令\abstracttitleandname
,用于在摘要标题上方打印标题和名称。
我们还引入了一个条件,通过重新定义/命令\ifabstract
将其设置为 true,以检查它是否为真。如果是,它不会在新页面上开始标题,因为已经这样做了。然后将其切换回 false。\abstracttitleandname
\chapter
\chapter*
\abstractittleandname
如果条件给你带来了问题,你可以从使用原始的 TeX 布尔值切换到以下之一更精致的包装处理条件,但这对于您的用例来说可能没有必要。
\documentclass[12pt,a4paper]{book}
\usepackage{lipsum}
\usepackage[parfill]{parskip}
\usepackage{titling}
\makeatletter
% define new boolean conditional switch for whether
% the abstract is being typeset
\newif\ifabstract
\abstractfalse
% redefine `\chapter` so it only starts a new page if not typesetting
% the abstract; sets abstract conditional to false after doing so
\renewcommand\chapter{\ifabstract\relax\else%
\if@openright\cleardoublepage\else\clearpage\fi%
\fi
\abstractfalse%
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
% command for putting the title and name above the abstract; switches
% abstact boolean to true for next `\chapter*` command...
\newcommand{\abstracttitleandname}{%
\if@openright\cleardoublepage\else\clearpage\fi
\textbf{\Large{\thetitle}}\par
\emph{\large{\theauthor}}\par
\abstracttrue}
\makeatother
\author{Someone K. Someone}
\title{The Greatest Work}
\begin{document}
\abstracttitleandname
\chapter*{Abstract}
\lipsum[1]
\chapter{New chapter}
\lipsum[2]
\end{document}