答案1
TeX 在下标或上标中不会留出关系符号的空格。
您可以通过让 TeX 认为它正在排版文本样式来修改当前情况的行为。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\RenewDocumentCommand{\lim}{e{_}}{%
\qopname\relax m{lim}%
\IfValueT{#1}{_{\text{\m@th\thickmuskip=3mu $#1$}}}%
}
\makeatother
\begin{document}
\[
\lim_{x\to c} f(x)
\]
\end{document}
标准值为\thickmuskip
5mu,但在这里似乎太多了,因此我局部将其减少到 3mu。进行实验,看看哪个最适合您。
奇怪的混合物\qopname\relax m{lim}
是如何\lim
定义的amsmath
。
一次执行多个操作的方法如下:
\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\ExplSyntaxOn
\NewDocumentCommand{\changebigoperators}{m}
{
\clist_map_inline:nn { #1 }
{
\exp_args:Nc \appto { ##1 } { \addspacelimits }
}
}
\ExplSyntaxOff
\NewDocumentCommand{\addspacelimits}{e{_^}}
{%
\IfValueT{#1}{_{\wrap{#1}}}%
\IfValueT{#2}{^{\wrap{#2}}}%
}
\NewDocumentCommand{\wrap}{m}
{%
\text{\mathsurround=0pt\thickmuskip=3mu$#1$}%
}
\changebigoperators{sum,prod,lim}
\begin{document}
\begin{gather*}
\sum_{i=1}^n\dots\prod_{k=1}^n \\
\lim_{x\to c}f(x)
\end{gather*}
\end{document}
答案2
我认为你的解决方案可能是最好的。理由如下
\lim{constraint} F(x)
该约束没有被参数化,这是您的约束,因此,如果内置假设,即存在一个变量,然后是一个符号,然后是另一个参数等,那么\lim
这将是压倒性的。\lim
例如,如果有的变体\lim
,也许可以\roomylim
这样工作:
% Making this up...
\roomylimitspacer{\;}
% ...
\roomylim{x}{\to}{0} F(x)
那么可以设想,新的宏可以接受设置以推动x
和0
远离分隔符。但是,我不记得看到过\lim
这样的变体。
如果您发现自己重复使用了这个习语,那么\newcommand
您的文档可能需要嵌入宽敞分隔符。
我选择“LaTeX 通常知道该做什么,当它不知道时,就会有一个解决办法。”就像你所想的那样\;
(如果这是你对一点点水平空间的偏好,那就这样吧。)
我找到了这篇相关文章。
答案3
我相信你的问题的答案就在这里: 任意长度的箭头
事实上,如果你考虑 AboAmmar 给出的代码,你会得到:
\lim_{x\,\Arrow{.2cm}\,c}f(x)\qquad\lim_{x\,\Arrow{.4cm}\,c}f(x)