我是 Latex 的新手。我的目标是使用 latex 适当地定义一个函数,即首先定义集合,例如 $f:X \to Y$,然后定义元素如何映射到图像中,即 $x \to f(x)$。我希望两行都能很好地对齐。以下是我遇到的代码和问题:
\begin{alignat*}{2}
X \colon T &\rightarrow {}&& \mathcal{D} \\
t&\mapsto \lim\limits_{n \to \infty}\sum_{\substack{i = 0,...,m}}(f(t_{i,n})-f(t_{i-1,n})\cdot(f(t_{i,n})-f(t_{i-1,n}))\\
\end{alignat*}
我希望“D”与“mapsto”行的限制起点对齐。有人能告诉我怎么做吗?
答案1
我希望它
\mathcal{D}
刚好与行中的限制的开始一致\mapsto
。
我将使用顶部对齐aligned
(双关语......)环境:
\documentclass{article} % or some other suitable document class
\usepackage{mathtools} % for "\smashoperator" macro
\begin{document}
\[
X \colon \begin{aligned}[t]
&T\rightarrow \mathcal{D} \\
&t\mapsto \lim_{n \to \infty}
\smashoperator[r]{\sum_{i = 0,\dots,m}}
(f(t_{i,n})-f(t_{i-1,n}))\cdot
(f(t_{i,n})-f(t_{i-1,n}))
\end{aligned}
\]
\end{document}
附录:这是一个实现@barbarabeeton 建议的解决方案,即\rightarrow
和\mapsto
符号也应该对齐。
\documentclass{article}
\usepackage{array,mathtools}
\begin{document}
\[
\setlength\arraycolsep{0pt}
X \colon \begin{array}[t]{ r >{{}}c<{{}} >{\displaystyle}l }
T &\rightarrow &\mathcal{D} \\[0.5ex]
t & \mapsto &
\smashoperator[l]{\lim_{n \to \infty}}
\smashoperator[r]{\sum_{i = 0,\dots,m}}
\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)
\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)
\end{array}
\]
\end{document}
答案2
使用 Vincent 的想法array
,但使用一些技巧来让 Barbara Beeton 高兴:
\documentclass{article}
\usepackage{amsmath,mathtools,calc}
\usepackage{array}
\begin{document}
\[
\begin{array}{
@{}
r
@{}
c
@{}
>{\displaystyle{}}l
@{}
}
X \colon{} & T & \to \mathop{\mathmakebox[\widthof{$\lim$}][l]{\mathcal{D}}}_{\hphantom{n\to\infty}} \\[1ex]
& t & \mapsto
\lim_{n \to \infty}\sum_{i=0,\dots,m} \mspace{-9mu}
\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)\cdot\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)
\end{array}
\]
\end{document}
另一方面,我只需做
We can define the map $X\colon T\to\mathcal{D}$ by
\begin{equation*}
X(t)=\lim_{n \to \infty}\sum_{i=0,\dots,m} \mspace{-9mu}
\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)\cdot\bigl(f(t_{i,n})-f(t_{i-1,n})\bigr)
\end{equation*}
答案3
看到其他答案后......我真的想重申我的评论并在此处使用align
,所有解释均包含在芭芭拉的评论(对不起,Mico ;-)
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
X \colon T &\rightarrow \mathcal{D} \\
t&\mapsto \lim\limits_{n \to \infty}
\sum_{\substack{i =0,\dots,m}}
(f(t_{i,n})-f(t_{i-1,n})\cdot(f(t_{i,n})-f(t_{i-1,n}))
\end{align*}
\emph{Maybe} one could use \verb|\mathclap| to align the $\mathcal{D}$ with
$\lim$ (but I am not coninced).
\begin{align*}
X \colon T &\rightarrow \mathcal{D} \\
t&\mapsto \lim\limits_{\mathclap{n \to \infty}}\;
\sum_{\substack{i =0,\dots,m}}
(f(t_{i,n})-f(t_{i-1,n})\cdot(f(t_{i,n})-f(t_{i-1,n}))
\end{align*}
Or, in the spirit of barbara beeton's comment.
\begin{align*}
X \colon T &\rightarrow\setbox0\hbox{$\lim\limits_{n \to \infty}$}%
\setbox1\hbox{$\lim$}%
\hspace{\the\dimexpr0.5\wd0-0.5\wd1}\mathcal{D} \\
t&\mapsto \lim\limits_{n \to \infty}\;
\sum_{\substack{i =0,\dots,m}}
(f(t_{i,n})-f(t_{i-1,n})\cdot(f(t_{i,n})-f(t_{i-1,n}))
\end{align*}
\end{document}
答案4
我喜欢使用array
环境来进行这些定义,因为语法非常直观。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{array}{r@{\ }c@{\ }c@{\ }l}
X \colon & T & \to & \mathcal{D} \\
& t & \mapsto & \displaystyle \smashoperator[l]{\lim_{n \to \infty}} \sum_{i=0,...,m} \bigl( f(t_{i,n})-f(t_{i-1,n})\cdot(f(t_{i,n})-f(t_{i-1,n}) \bigr)
\end{array}
\]
\end{document}
这样所有内容就对齐正确了。如果\lim_{n\to\infty}
看起来离符号太近,可以在和命令前\mapsto
添加一些间距(例如\,
)。当然,如果添加了这个间距但不在两行上都添加,对齐就会丢失。\mathcal{D}
\lim_{n\to\infty}