[Tex/LaTex] Two abstracts in amsart class

abstractamsart

I am trying to add two abstracts (one in english and one in spanish) to an article, one right after the other. I tried:

\usepackage[spanish,english]{babel}

\selectlanguage{spanish}
\begin{abstract}
spanish abstract here
\end{abstract}

\selectlanguage{english}
\begin{abstract}
english abstract here
\end{abstract}

\maketitle

But it only shows one of the abstracts. Also, I tried:

\usepackage[spanish]{babel}

\renewcommand{\abstractname}{Abstract}
\begin{abstract}
english abstract here
\end{abstract}

\begin{abstract}
spanish abstract here
\end{abstract}

\maketitle

But the same happens, I can only see one of the abstracts

Best Answer

The amsart class has no provision for multiple abstracts. However, we can stretch a bit the code and define an abstracts environment together with an \abstractin command for specifying the language:

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

\makeatletter
\newenvironment{abstracts}{%
  \ifx\maketitle\relax
    \ClassWarning{\@classname}{Abstract should precede
      \protect\maketitle\space in AMS document classes; reported}%
  \fi
  \global\setbox\abstractbox=\vtop \bgroup
    \normalfont\Small
    \list{}{\labelwidth\z@
      \leftmargin3pc \rightmargin\leftmargin
      \listparindent\normalparindent \itemindent\z@
      \parsep\z@ \@plus\p@
      \let\fullwidthdisplay\relax
      \itemsep\medskipamount
    }%
}{%
  \endlist\egroup
  \ifx\@setabstract\relax \@setabstracta \fi
}

\newcommand{\abstractin}[1]{%
  \otherlanguage{#1}%
  \item[\hskip\labelsep\scshape\abstractname.]%
}
\makeatother

\begin{document}

\author{X Y}
\title{Z}

\begin{abstracts}
\abstractin{spanish}
spanish abstract here

\abstractin{english}
english abstract here
\end{abstracts}

\maketitle

\languagename % just to be sure

\end{document}

enter image description here

Related Question