
Как получить следующий вывод (без ручного добавления пробела)? Думаю, мне следует использовать среду align, но я не могу выровнять домен и кодомен по центру с соответствующими элементами во второй строке. Мне нужен общий алгоритм, который я бы использовал всякий раз, когда мне нужно определить карту.
Обратите внимание, что имеются три отдельные центрированные части, а именно домен с его элементами, стрелки и кодомен с изображениями карты.
решение1
Мне это не кажется особенно привлекательным, но вот оно:
\documentclass{article}
\usepackage{amsmath,amssymb,array}
\newcommand{\numberset}[1]{\mathbb{#1}}
\newcommand{\R}{\numberset{R}}
\newcommand{\C}{\numberset{C}}
\begin{document}
\begin{equation*}
\setlength{\arraycolsep}{0pt}% disable standard intercolumn spaces
\renewcommand{\arraystretch}{1.5}% more room between rows
\begin{array}{r c >{{}}c<{{}} c}
\Phi\colon{} & \R\times\R & \longrightarrow & \C\times\R=\R^3 \\
& (u,v) & \longmapsto & (e^{iu},v)=(\cos u,\sin u,v)
\end{array}
\end{equation*}
\end{document}
Немного другая версия l
для последнего столбца:
\begin{equation*}
\setlength{\arraycolsep}{0pt}% disable standard intercolumn spaces
\renewcommand{\arraystretch}{1.5}% more room between rows
\begin{array}{r c >{{}}c<{{}} l}
\Phi\colon{} & \R\times\R & \longrightarrow & \C\times\R=\R^3 \\
& (u,v) & \longmapsto & (e^{iu},v)=(\cos u,\sin u,v)
\end{array}
\end{equation*}
решение2
Вы также можете сделать это с помощью пакета eqparbox
:
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][M]{\eqmakebox[#1]{$\displaystyle#2$}}
\newcommand{\numberset}[1]{\mathbb{#1}}
\newcommand{\R}{\numberset{R}}
\newcommand{\C}{\numberset{C}}
\begin{document}
\begin{align*}
\Phi\colon\eqmathbox[L]{\R\times\R} & \longrightarrow \eqmathbox[R]{\C\times\R=\R^3} \\
\eqmathbox[L]{(u,v)} & \longmapsto \eqmathbox[R]{(e^{iu},v)=(\cos u,\sin u,v)}
\end{align*}
\end{document}