Проблема с выравниванием выравнивания

Проблема с выравниванием выравнивания

Я написал следующий код:

\mathbb{R}^n\times\cdots\times\mathbb{R}^n&\rightarrow 
\mathbb{R}^m\times\cdots\times\mathbb{R}^m \rightarrow \mathbb{R}\\
(v_1,\cdots,v_k)&\mapsto (f_*(v_1),\cdots,f_*(v_k))\mapsto
 \eta(f_*(v_1),\cdots,f_*(v_k))

Я использую &символ дважды.

Я хочу, чтобы выходной сигнал (v_1,\cdots,v_k)попал под

\mathbb{R}^n\times\cdots\times\mathbb{R}^n

и (f_*(v_1),\cdots,f_*(v_k))попасть под

\mathbb{R}^m\times\cdots\times\mathbb{R}^m 

и \eta(f_*(v_1),\cdots,f_*(v_k))попасть под

\mathbb{R}

Первые два шага идут отлично, но

\eta(f_*(v_1),\cdots,f_*(v_k))

не попадает под

\mathbb{R}

Есть некоторый пробел. Что мне сделать, чтобы убрать этот пробел?

Вот что у меня есть в tex-файле:

\documentclass[article]{amsart}
\renewcommand{\baselinestretch}{1.5}
\textheight 9.3in \textwidth 6.5in \topmargin -1cm
\oddsidemargin-.05cm \evensidemargin -.1cm \topmargin .1cm
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{hyperref}
\usepackage{enumerate}
\usepackage[all]{xy}
\pagestyle{myheadings}
\usepackage{xypic}
\author{..}
\title{..}
\begin{document}
\maketitle

\begin{align*}
\mathbb{R}^n\times\cdots\times\mathbb{R}^n &\rightarrow     \mathbb{R}^m\times\cdots\times\mathbb{R}^m &\rightarrow \mathbb{R}\\
(v_1,\cdots,v_k) &\mapsto (f_*(v_1),\cdots,f_*(v_k)) &\mapsto \eta(f_*   (v_1),\cdots,f_*(v_k))
\end{align*}
\end{document}

решение1

Я бы использовал другую конструкцию и даже не стал бы их выравнивать из-за огромной разницы в размерах.

\documentclass{amsart}
\begin{document}

\begin{alignat*}{2}
\mathbb{R}^n\times\cdots\times\mathbb{R}^n 
& \rightarrow
\mathbb{R}^m\times\cdots\times\mathbb{R}^m
&& \to \mathbb{R}
\\
 (v_1,\dots,v_k)&\mapsto (f_*(v_1),\dots,f_*(v_k))
 &&\mapsto \eta(f_ (v_1),\dots,f_*(v_k))
\end{alignat*}

Better
\begin{gather*}
\mathbb{R}^n\times\cdots\times\mathbb{R}^n 
 \rightarrow
\mathbb{R}^m\times\cdots\times\mathbb{R}^m
 \to \mathbb{R}
\\
 (v_1,\dots,v_k)\mapsto (f_*(v_1),\dots,f_*(v_k))
\mapsto \eta(f_ (v_1),\dots,f_*(v_k))
\end{gather*}

\end{document}

введите описание изображения здесь

решение2

Для максимальной гибкости и программируемости вы можете настроить arrayсреду для отображения двух строк. Следующий код выравнивает материал в первой группе по правому краю, центрирует материал в средней группе и выравнивает материал в последней группе по левому краю; символы \rightarrowи \mapstoрасполагаются по центру в столбцах типа C.

\documentclass{amsart}
\usepackage{array} % for "\newcolumntype" macro
\newcolumntype{C}{>{{}}c<{{}}}
\newcommand\R{\mathbb{R}}
\begin{document}
\[
\setlength\arraycolsep{0pt}
\begin{array}{ rCcCl }
  \R^n\times\dots\times\R^n & \rightarrow &
     \R^m\times\dots\times\R^m & \rightarrow & \R \\
  (v_1,\dots,v_k) & \mapsto & 
     \bigl(f_*(v_1),\dots,f_*(v_k)\bigr) & \mapsto & 
     \eta\bigl(f_*(v_1),\dots,f_*(v_k)\bigr) \\
\end{array}
\]
\end{document}

Если вы хотите расположить материал по центру во всех трех группах, просто замените \begin{array}{ rCcCl }на \begin{array}{ cCcCc }.

Связанный контент