如何通过对元素的作用来定义数学函数?

如何通过对元素的作用来定义数学函数?

我想通过其作用来定义一个数学函数。比如

     \documentclass{article}
     \begin{document}
     \[
        \begin{array}{cccc}
         f\colon & R\times R & \rightarrow & R\times R\\
                 & v & \mapsto & f(v)
        \end{array}
      \]
      \end{document}

这样,间距就太糟糕了。产生间距的最佳方法是什么?

我希望第二行的元素相对于第一行的元素居中。

答案1

我会选择一些简单的,至少对我来说,非常经典的东西:

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
  f\colon R\times R \to R\times R,\quad v \mapsto f(v)
\]
or
\[
  f\colon \biggl\{\begin{array}{@{}r@{\;}l@{}}
    R\times R &\to R\times R
  ,\\
    v &\mapsto f(v)
  \end{array}
\]
\end{document}

在此处输入图片描述

答案2

可以array通过删除列间空格来实现。但结果无论如何都不太好。

这里还有其他三种方法可以满足您的需求,按优先顺序排列。

\documentclass{article}
\usepackage[tiny]{titlesec} % just to get small section titles
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\usepackage{tikz-cd}

\begin{document}

\section{First way}
With only \texttt{amsmath}
\begin{align*}
f\colon R\times R &\to R\times R\\
v & \mapsto f(v)
\end{align*}

\section{Second way}
With \texttt{amsmath} and \texttt{xy}
\[
\xymatrix@R=0pt@C=1pc{
 f\colon R\times R \ar[r] & R\times R \\
 {\hphantom{f\colon{}}} v \ar@{|->}[r] & f(v)
}
\]

\section{Third way}
With \texttt{amsmath} and \texttt{tikz-cd}
\[
\begin{tikzcd}[row sep=0pt,column sep=1pc]
 f\colon R\times R \arrow{r} & R\times R \\
  {\hphantom{f\colon{}}} v \arrow[mapsto]{r} & f(v)
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

答案3

你为什么要使用 an array?假设你正在使用这个amsmath包(推荐),我只需写

\begin{gather*}
   f\colon R\times R \to R\times R
   \\
   v \mapsto f(v)
\end{gather}

答案4

我发现的另一个解决方案是

\begin{align*}
  f\colon R\times R &\to R\times R\\
  \setbox0\hbox{$R\times R$}%
  \makebox[\wd0][c]{$v$}&
  \setbox1\hbox{$R\times R$}%
  \mapsto\makebox[\wd1][c]{$f(v)$}
\end{align*}

这很接近我的意图:我希望元素相对于集合位于中心,但的\mapsto长度必须相同\to

我不喜欢这个解决方案的地方在于我必须自己决定两者中哪个更大(集合或元素),并且我必须手动修改代码;例如:

\begin{align*}
  \setbox0\hbox{$(v_1,v_2)$}%
  f\colon\makebox[\wd0][c]{$R^2$}&
  \setbox1\hbox{$f((v_1,v_2))$}%
  \to\makebox[\wd1][c]{$R^2$}\\
  (v_1,v_2)&\mapsto f((v_1,v_2))%
\end{align*}

相关内容