我怎样才能使“lim”处的限值对齐?

我怎样才能使“lim”处的限值对齐?

我正在尝试将几个极限表达式对齐到不同的 x 值。 align 似乎将“极限”部分及其下标视为一个整体对象,然后对齐这些极限,从而生成在“x”而不是“lim”处对齐的表达式:

\documentclass[reqno,12pt]{article}
\usepackage{amsmath,amssymb,amsthm}
\addtolength{\jot}{3em}

\begin{document}

\begin{flalign*}
    &\lim_{x \to -2} x =&\\
    &\lim_{x \to -1} x =&\\
    &\lim_{\phantom{-}x \to 0} x =&\\
    &\lim_{\phantom{-}x \to 1} x =&\\
    &\lim_{\phantom{-}x \to 2} x =&\\
    &\lim_{\phantom{-}x \to \infty} x =&\\
    &\lim_{x \to -\infty} x =&
\end{flalign*}
\end{document}

我尝试过将对齐标记放在其他地方,还尝试过使用幻影来伪造它(虽然不太好,但比没有好得多)。有没有办法解决这个问题,让每个表达式在“lim”中的“l”处对齐?

在此处输入图片描述

答案1

非常感谢您发布完整的 MWE。

与其\lim直接重新定义来处理您的特殊对齐目标,不如定义一个新的命令,比如\mylim。直接修改 LaTeX 用来放置“数学运算符”参数的方式,例如\lim最终可能会破坏各种事情......

下面定义的宏\mylim有两个参数:极限被接管的项和 的下标参数\lim。请注意,参数括在花括号中——没有使用下标符号。在下面的示例代码中,外部array环境和竖线仅用于说明“lim”和下标参数都左对齐。

在此处输入图片描述

\documentclass[12pt]{article}
\newcommand\mylim[2]{%
    \begin{array}[t]{@{}l@{}}
     \lim #1 \\[-1ex] \scriptstyle #2 
    \end{array}
}
\begin{document}
\[ \begin{array}{|@{}l}
     \mylim{x}{x \to -2}  =\\
     \mylim{x}{x \to -1}  =\\
     \mylim{x}{x \to 0}  =\\
     \mylim{x}{x \to 1}  =\\
     \mylim{x}{x \to 2}  =\\
     \mylim{y}{y \to \infty}  =\\
     \mylim{k}{k \to -\infty}  =
   \end{array} 
\]
\end{document}

附录回答 OP 的后续问题:如果目标是让 LaTeX 忽略(出于水平对齐的目的),即“lim”下方的下标中的任何内容,同时仍将“lim”下方的材料居中,则可以利用 @daleif 提供的注释并使用\smashoperator数学工具包裹:

\smashoperator{\lim_{x\to-2}} f(x)

如果你有很多这样的表达式,并且希望节省打字时间(并减少拼写错误的数量......),你可以定义一个快捷宏,例如,

\newcommand\nlim[1]{\smashoperator{\lim_{#1}}}

然后输入\nlim{x\to-2} f(x)。请注意,如果下标中的材料足够宽,它将“突出”到左侧的空间中在“lim”的右侧。我认为你想要的是双面突出。但是,如果你想让下标材料只在左侧突出,而不在右侧突出,请使用选项[l],即写

\smashoperator[l]{\lim{k\to-\infty}} k

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{mathtools} % for \smashoperator macro
\newcommand\nlim[1]{\smashoperator{\lim_{#1}}}
\begin{document}
\[ \begin{array}{|@{}l}
     \nlim{x \to -2} x =\\
     \nlim{x \to -1} x =\\
     \nlim{x \to 0} x =\\
     \nlim{x \to 1} x =\\
     \nlim{x \to 2} x =\\
     \nlim{y \to \infty} y =\\
     \nlim{k \to -\infty} k =
   \end{array} 
\]
\end{document}

美学\mylim由and生成\nlim:如果您要努力对齐字符串“lim”上的各行,则不应冒险让 lim 的下标材料突出到字符串的左侧,从而破坏整体外观。因此,在我看来,您应该使用 with\mylim而不是 with\nlim来实现对齐目标。

答案2

这种方法使用堆栈,允许使用可选参数来指定“lim”线和下标之间的间隙(默认为 3pt),如 lim 线上所示。

在这种情况下,\mylim(第 1 列)将参数左对齐,而\myclim(第 2 列)将下标居中对齐,同时保持与单词“lim”的整体对齐。最后\myclimB(第 3 列)考虑将参数置于极限时的下标宽度。

修改后的解决方案不仅对齐“lim”,还对齐等号及其后续内容。

\documentclass[12pt]{article}
\usepackage{tabstackengine}
\stackMath
\newcommand\mylim[3][3pt]{%
 \def\stackalignment{l}\ensurestackMath{\stackunder[#1]{\lim #2}{\scriptstyle #3}}%
}
\newcommand\myclim[3][3pt]{%
 \def\stackalignment{c}\ensurestackMath{\stackunder[#1]{\lim #2}{%
  \makebox[0pt]{$\scriptstyle #3$}}}%
}
\newcommand\myclimB[3][3pt]{%
 \setbox0=\hbox{$\lim$}%
 \setbox1=\hbox{$\scriptstyle #3$}%
 \ifdim\wd1>\wd0\kern.5\wd0\kern-.5\wd1\fi%
 \def\stackalignment{c}\mathop{\ensurestackMath{\stackunder[#1]{\lim}{%
  \scriptstyle #3}}}#2%
}
\begin{document}
\[
  \setstackgap{L}{2\baselineskip}\def\stackalignment{l}\TABbinary
     \tabbedCenterstack{
     \mylim{x}{x \to -2}  &=&0\\
     \mylim{x}{x \to -1}  &=&0\\
     \mylim{x}{x \to 0}  &=&0\\
     \mylim{x}{x \to 1}  &=&0\\
     \mylim{x}{x \to 2}  &=&0\\
     \mylim[4pt]{y}{y \to \infty}  &=&0\\
     \mylim{k}{k \to -\infty}  &=&0
}
\quad...\quad
\tabbedCenterstack{
     \myclim{x}{x \to -2}  &=&0\\
     \myclim{x}{x \to -1}  &=&0\\
     \myclim{x}{x \to 0}  &=&0\\
     \myclim{x}{x \to 1}  &=&0\\
     \myclim{x}{x \to 2}  &=&0\\
     \myclim[4pt]{y}{y \to \infty}  &=&0\\
     \myclim{k}{k \to -\infty}  &=&0
}
\quad...\quad
\tabbedCenterstack{
     \myclimB{x}{x \to -2}  &=&0\\
     \myclimB{x}{x \to -1}  &=&0\\
     \myclimB{x}{x \to 0}  &=&0\\
     \myclimB{x}{x \to 1}  &=&0\\
     \myclimB{x}{x \to 2}  &=&0\\
     \myclimB[4pt]{y}{y \to \infty}  &=&0\\
     \myclimB{k}{k \to -\infty}  &=&0
}
\]
\end{document}

在此处输入图片描述

相关内容