在操作符处垂直对齐,但保留默认水平间距

在操作符处垂直对齐,但保留默认水平间距

这是对«我怎样才能对齐“lim”的限制?»。实现以下对齐的最佳方法是什么?也就是说,我希望两者\prod对齐,但每行应与 (La)TeX 默认生成的行保持一致,只需水平移动以满足对齐要求。

垂直对齐的 \prod 运算符的图像

以下是生成上述内容的代码。如您所见,我使用了临时数量的\mspace

\documentclass{standalone}
\usepackage{amsmath}
\begin{document}
\begin{minipage}{.75\textwidth}
  \begin{align*}
    & \prod_{-n\leq k\leq n-1} \left[\frac{k+1}{k}\right] = -1 \\
    & \mspace{16mu} \prod_{1\leq j\leq n} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
  \end{align*}
\end{minipage}
\end{document}

答案1

有趣的是, \tempa 在某些时候会被设置为零,因此必须重新计算。

\documentclass{standalone}
\usepackage{mathtools}

\newlength{\tempa}

\newcommand{\aligncenter}[1]% #1=display math to be aligned
{\settowidth{\tempa}{$\displaystyle #1$}%
\hspace{0.5\tempa}&%
\settowidth{\tempa}{$\displaystyle #1$}%
\hspace{-0.5\tempa}#1}

\begin{document}
\begin{minipage}{0.75\textwidth}
  \begin{align*}
    \aligncenter{\prod_{-n\leq k\leq n-1}} \left[\frac{k+1}{k}\right] = -1 \\
    \aligncenter{\prod_{1\leq j\leq n}} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
  \end{align*}
\end{minipage}
\end{document}

方程

答案2

在这种特定情况下,次优选择是使用\smashoperator[l]

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}% Loads amsmath
\begin{document}
\begin{align*}
  & \smashoperator[l]{\prod_{-n \leq k \leq n-1}}\left[\frac{k+1}{k}\right] = -1 \\
  & \smashoperator[l]{\prod_{1 \leq j \leq n}} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
\end{align*}
\end{document}

我提到次优,因为对齐已实现,但aligned 方程的总水平宽度小于-n\leq顶部宽度为零的 的宽度\prod。可以通过一些工作来纠正这个问题。以下是一次这样的尝试:

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}% Loads amsmath
\DeclareMathOperator*{\dummyop}{}
\begin{document}
\begin{align*}
  & \smashoperator[l]{\prod_{-n \leq k \leq n-1}}\left[\frac{k+1}{k}\right] = -1 \\
  & \smashoperator[l]{\prod_{1 \leq j \leq n}} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
\end{align*}

\begin{align*}
  & \smashoperator[l]{\prod_{-n \leq k \leq n-1}}\left[\frac{k+1}{k}\right] = -1 \\
  & \smashoperator[l]{\prod_{1 \leq j \leq n}} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
    \hphantom{\smashoperator[r]{\dummyop_{-n \leq k \leq n-1}}}
\end{align*}

\end{document}

\dummyop我们创建一个具有相同、最宽限制的空运算符,并将其粉碎[r]在第二个(最长)方程末尾的右侧。

答案3

你可以用命令来实现\mathclap。由于我不明白minipage这里的环境有什么用,所以我删除了它。

\documentclass{article}
\usepackage{mathtools}
\usepackage{nccmath}

\begin{document}

  \begin{align*}
    & \prod_{\mathclap{k = -n}}^{\mathclap{n-1}}\; \biggl[\frac{k+1}{k}\biggr] = -1 \\
    & \prod_{\mathclap{j = 1}}^{n} j = \lim_{m\to\infty} \frac{m^{n+1} m!}{(n+1)(n+2)(n+3)\cdots(n+m+1)}
  \end{align*}

\end{document} 

在此处输入图片描述

相关内容