使用 nccmath 的 `\medint` 重新调整显示数学中的积分

使用 nccmath 的 `\medint` 重新调整显示数学中的积分

我想使用nccmath's\medint命令使显示的方程中的积分符号变得更小,这看起来非常合适。

有没有办法总是有\medint前置\int 仅在显示的数学中,但无需输入新命令,例如\int在 displaystyle math 中?或许用\mathchoice?

答案1

你可以这样做,尽管我认为这不是一个好主意。

\documentclass{article}
\usepackage{amsmath}
\usepackage{nccmath}

\RenewDocumentCommand\int{t\limits t\nolimits e{^_}}{%
  \mathpalette\usemedint{{#1}{#2}{#3}{#4}}%
}
\ExplSyntaxOn
\NewDocumentCommand{\usemedint}{mm}
 {
  \gargantuar_medint:Nnnnn #1 #2
 }
\cs_new_protected:Nn \gargantuar_medint:Nnnnn
 {
  \use:e
   {
    \token_if_eq_meaning:NNT #1 \displaystyle { \exp_not:N \medint }
    \intop
    \bool_if:nT { #2 } { \limits }
    \bool_if:nT { #3 } { \nolimits }
    \tl_if_novalue:nF { #4 } { \sp { \exp_not:n { #4 } } }
    \tl_if_novalue:nF { #5 } { \sb { \exp_not:n { #5 } } }
   }
 }
\cs_generate_variant:Nn \gargantuar_medint:Nnnn { Neee }
\ExplSyntaxOff

\begin{document}

\begin{center}
$\int_a^b f(x)\,dx$
\end{center}

\[
\int_a^b f(x)\,dx + \int\limits_\Gamma g(z)\,dz
\]

\[
\int\limits_{\text{test}} \qquad \int\nolimits_\Gamma
\]

\[
\int_{\text{test}} \qquad \int\nolimits_\Gamma
\]

\end{document}

在此处输入图片描述

诀窍是收集 后面所有可能的标记\int,即可能的\limits或,然后是上标和下标。如果,则\nolimits所有内容前面都有。\displaystyle\medint

为了比较,这是标准输出

在此处输入图片描述

amsmath如果使用该选项调用,则输出如下intlimits

在此处输入图片描述

相关内容