![使用 nccmath 的 `\medint` 重新调整显示数学中的积分](https://linux22.com/image/448560/%E4%BD%BF%E7%94%A8%20nccmath%20%E7%9A%84%20%60%5Cmedint%60%20%E9%87%8D%E6%96%B0%E8%B0%83%E6%95%B4%E6%98%BE%E7%A4%BA%E6%95%B0%E5%AD%A6%E4%B8%AD%E7%9A%84%E7%A7%AF%E5%88%86.png)
我想使用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
。