\lim
这是关于命令和包中的限制的后续问题mathtools
。首先,我如何才能使限制从 lim 符号的开头开始,而不是在其前面?这意味着 lim 符号和限制不居中。
此外,在 mathtool 包中,如果我使用 scale 选项,则限制会按比例缩放,但在我看来,它围绕一个点,因此随着比例变小,限制和 lim 符号之间的垂直间隙会变大。我该如何修复它,以便垂直空间与 lim 命令中的原始空间相同?为什么会发生这种情况?
这是我用来尝试一些案例的代码,它属于 Peter Grill,他发布它是为了回答我之前的一个问题。
\documentclass[12pt]{article}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{calc}
% http://tex.stackexchange.com/questions/60453/reducing-font-size-in-equation/
\newcommand*{\Scale}[2][4]{\scalebox{#1}{$#2$}}%
\newcommand*{\Resize}[2]{\resizebox{#1}{!}{$#2$}}%
\begin{document}
\noindent
Without \verb|\mathclap|:
\[ \lim_{n\to +\infty}x(n) \]
But with \verb|\mathclap|::
\[ \lim_{\mathclap{n \to +\infty}}x(n) \]
Using \verb|\scriptstyle| to resize:
\[ \lim_{\scriptscriptstyle n \to +\infty} x(n) \]
Using \verb|\Scale|
\[ \lim_{\Scale[0.5]{n \to +\infty}} x(n) \]
Using \verb|\Resize|
\[ \lim_{\Resize{\widthof{$\lim{}$}}{n \to +\infty}} x(n) \]
\end{document}
答案1
堆栈使这变得非常容易。对齐方式使用模式参数 ( ) 设置\stackalignment
,间隙使用可选堆叠参数设置。使用\useanchorwidth
表示不允许下划线的宽度影响到下一个项目的间距。已编辑以使用\mathop
。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{graphicx}
\stackMath
\def\stackalignment{l}\def\useanchorwidth{T}
\begin{document}
\[
\mathop{\stackunder[3pt]{\lim}{\scriptstyle n\rightarrow+\infty}} x(n)
\]
\[
\mathop{\stackunder[2.5pt]{\lim}{\scriptscriptstyle n\rightarrow+\infty}} x(n)
\]
\[
\mathop{\stackunder[2pt]{\lim}{\scalebox{.33}{$n\rightarrow+\infty$}}} x(n)
\]
\end{document}
如果\usearchorwidth
定义为{F}
而不是{T}
,结果将类似于
对齐和锚宽度参数可以直接合并到语法中,这具有使它们的调用不受当前模式设置影响的进一步优势。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{graphicx}
\stackMath
\begin{document}
\[
\mathop{\stackengine{3pt}{\lim}{\scriptstyle n\rightarrow+\infty}{U}{l}{F}{T}{S}} x(n)
\]
\[
\mathop{\stackengine{2.5pt}{\lim}{\scriptscriptstyle n\rightarrow+\infty}{U}{l}{F}{T}{S}} x(n)
\]
\[
\mathop{\stackengine{2pt}{\lim}{\scalebox{.33}{$n\rightarrow+\infty$}}{U}{l}{F}{T}{S}} x(n)
\]
\end{document}
答案2
这在下标或上标中不起作用(可能会这样):
\documentclass{article}
\makeatletter
\newcommand{\awfullim}{\@ifnextchar_{\@awfullim}{\lim}}
\newcommand{\@awfullim}[2]{% #1 is _
\settowidth{\dimen0}{$\lim$}%
\settowidth{\dimen2}{$\scriptstyle#2$}%
\ifdim\dimen2<\dimen0
\lim_{#2}%
\else
\addtolength{\dimen2}{-\dimen0}%
\kern-\dimen2 \lim_{\kern\dimen2 #2}%
\fi
}
\makeatother
\begin{document}
\[
\awfullim_{x\to0^+}f(x)=\awfullim_{y\to+\infty}f(1/y)
\]
\end{document}
我使用的名字告诉你我有多喜欢这个想法。;-)