5

As far as I know, we can write only one abstract in an amsart document. Is it possible to write several abstracts with the amsart template?

1
  • you can't without redefine the abstract environment
    – touhami
    Feb 14 '15 at 15:32
6

If you are happy with the first abstract being in the document's main language, you can define a \newabstract command taking as argument the language you want to typeset the second (third, …) abstract in.

\documentclass[a4paper]{amsart}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian,english]{babel}

\usepackage{lipsum}

\newcommand{\newabstract}[1]{%
  \par\bigskip
  \csname otherlanguage*\endcsname{#1}%
  \csname captions#1\endcsname
  \item[\hskip\labelsep\scshape\abstractname.]
}

\begin{document}

\title{A title}
\author{A. Uthor}

\begin{abstract}
This is the abstract in the main language. \lipsum[2]

\newabstract{italian}
E questo è il sunto in un'altra lingua. \lipsum[3]
\end{abstract}

\maketitle

\end{document}

I use \otherlanguage* and \captions{...} in order to avoid a command such as \selectlanguage writes unwanted notes in the .aux file.

enter image description here

A version that allows for the abstracts to be given in any order, with a redefinition of the environment accepting the language as an optional argument (default the language which is current when `\begin{abstract} is issued, usually the main document's language).

\documentclass[a4paper]{amsart}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian,english]{babel}

\usepackage{lipsum}

\makeatletter
\renewenvironment{abstract}[1][\languagename]{%
  \ifx\maketitle\relax
    \ClassWarning{\@classname}{Abstract should precede
      \protect\maketitle\space in AMS document classes; reported}%
  \fi
  \global\setbox\abstractbox=\vtop \bgroup
    \unvbox\abstractbox % add the previous abstracts
    \medskip
    \normalfont\Small
    \list{}{\labelwidth\z@
      \leftmargin3pc \rightmargin\leftmargin
      \listparindent\normalparindent \itemindent\z@
      \parsep\z@ \@plus\p@
      \let\fullwidthdisplay\relax
    }%
    % change the current language
    \csname otherlanguage*\endcsname{#1}\csname captions#1\endcsname
    \item[\hskip\labelsep\scshape\abstractname.]%
}{%
  \endlist\egroup
  \ifx\@setabstract\relax \@setabstracta \fi
}
\makeatother

\begin{document}

\title{A title}
\author{A. Uthor}

\begin{abstract}[italian]
E questo è il sunto in un'altra lingua. \lipsum[3]
\end{abstract}

\begin{abstract}
This is the abstract in the main language. \lipsum[2]
\end{abstract}

\maketitle

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.