假设我想将摘要添加到标题页中。我会这样做:
\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}
(如果发现有什么不对劲的地方,请在评论中指出。)