将摘要放在自定义类的标题页上

将摘要放在自定义类的标题页上

假设我想将摘要添加到标题页中。我会这样做:

\documentclass[10pt,english,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\title{My title}
\author{Me}
\date{Last update: \today}

\begin{document}

\makeatletter
\begin{titlepage}
  \hrule

  \vfill

  \begin{center}
    {\huge \sffamily \@title} \\[3em]

    {\itshape \@author}
  \end{center}

  \vskip 5em

  \begin{abstract}
    Abstaction is the abstract process of making things abstract.
  \end{abstract}

  \vfill

  \hrule 
  \begin{center}
    \itshape \@date
  \end{center}
\end{titlepage}
\makeatother

\end{document}

现在假设我真的很喜欢我的布局,以至于我想把它变成一个类/包。我的问题是用户必须能够编写摘要而不必担心布局,但我(类的开发人员)没有任何东西可以调用摘要:我怀念这样的东西\@abstract。当然,我的包裹可能包含这样的东西:

\newcommand{\myabsract}[1]{\def\@mysabstract{#1}}

我可以\@myabstract随时随地调用内容,但用户必须写入:

\myabstract{Abstraction is the abstract process of making things abstract.}

而不是使用通常的抽象环境。有没有清洁的方式做我想做的事(也许通过重新定义抽象环境)?

答案1

我最终找到了一个使用 TeX 框的解决方案:

\newbox\@abstractbox
\renewenvironment{abstract}{%
  \global\setbox\@abstractbox=\vbox\bgroup
  \noindent\unskip\textbf{\abstractname}
  \par\medskip\noindent\unskip\ignorespaces}
{\egroup}

(如果发现有什么不对劲的地方,请在评论中指出。)

相关内容