调整数学模式下元素的默认间距

调整数学模式下元素的默认间距

我想自动\,在上限和积分符号之间添加一个,而不必每次都手动输入。我正在使用 latexocr 来剪切方程式并将 latex 代码从 latexocr 复制到我的文档中,如果我使用\renewcommand重新定义\int,那么语法将变成\int{a}{b}{f}但我想保留\int_{a}^{b}{f}格式,其中_^用于表示上限和下限。有没有办法实现这一点,或者有什么方法可以配置原始命令的默认间距\int

\let\st\int
\renewcommand*{\int}[3]{\st_{#1}^{\,#2}{#3}}

% but i want something like this
$\int_{a}^{b}{s}(x)dx$
% instead of this
$\int{a}{b}{s}(x)dx$

答案1

假设您确实想这样做,那么这是一个工作,\RenewDocumentCommand并且是其e修饰参数类型。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\RenewDocumentCommand{\int}{t{\limits}e{_^}}{%
  \DOTSI\intop\ilimits@
  \IfBooleanT{#1}{\limits}
  \IfValueT{#2}{_{#2}}%
  \IfValueT{#3}{^{\IfBooleanF{#1}{\,}#3}}%
}
% just for comparison
\newcommand{\standardint}{\DOTSI\intop\ilimits@}
\makeatother

\begin{document}

\begin{gather*}
\int\limits_{a}^{b}f(t)\,dt
\int_{a}^{b}f(t)\,dt
\\
\standardint_{a}^{b}f(t)\,dt
\end{gather*}

\end{document}

您确实使用了amsmath,不是吗?

在此处输入图片描述

顺便说一句,的语法\int并不要求在被积函数周围加上括号,正如您所认为的那样:它们实际上通常是不受欢迎的。

答案2

您需要使用 Plain-TeX\def指令而不是 LaTeX\renewcommand指令。也就是说,我会定义新版本以\int接受两个参数而不是三个参数,因为\intOP 查询中提到的宏版本对第三个参数没有任何特殊作用。

在此处输入图片描述

\documentclass{article}

\let\st\int
\def\int_#1^#2{\st_{#1}^{\,#2}}

\begin{document}
$\int_a^b s(x)dx$ \quad $\int_{u}^{v} w(x)\,dx$
\end{document} 

相关内容