如何创建自己的带极限的积分符号

如何创建自己的带极限的积分符号

接着这个问题,我希望能够做到这一点,但使用积分符号。

建议的解决方案如下:

\newcommand{\opA}{\mathop{\vphantom{\sum}\mathchoice
   {\vcenter{\hbox{\huge A}}} 
   {\vcenter{\hbox{\Large A}}}{\mathrm{A}}{\mathrm{A}}}\displaylimits}

我尝试将其修改为积分符号:

\newcommand{\integral}[2]{\mathop{\vphantom{\int}\mathchoice
    {\huge\int #1 \, d#2}
    {\Large\int #1 \, d#2}{\mathrm{A}}{\mathrm{A}}}\displaylimits}

\integral{x}{x}_0^1例如,应用此方法可得到以下结果:

示例积分

但是,这会将极限置于积分上方和下方的中心,而不是您希望它们位于左侧的位置。

所以我的问题是:如何将它们对齐到正确的位置?此外,\mathrm{A}在上面显示的另外两种类型模式中,我应该写什么来代替?

谢谢!

答案1

简单但不灵活的答案

\def\integral#1#2_#3^#4{\int_{#3}^{#4}\mathopen{}#1\mathclose{}\mathop{}\!d#4\mathclose{}}

然后,您必须始终按照该顺序使用带有限制和的命令。因此,如果您不想要限制,则需要\integral{f(x)}{x}_{}^{}


更好的解决方案是xparse,但我现在无法尝试它是否正常工作(如果有人检查并且它不起作用我会将其删除)。

\usepackage{xparse}
\NewDocumentCommand\integral{ m m e{_^} }{\integralaux{#1}{#2}#3}
\NewDocumentCommand\integralaux{mmmm}
 {\int\IfValueT{#3}{_{#3}}\IfValueT{#4}{^{#4}}%
  \mathopen{}#1\mathclose{}\mathop{}\!d#2\mathclose{}}

有了这个第二个版本,您可以灵活使用\integral{x}{x},,,,。\integral{x}{x}_{a}\integral{x}{x}^{a}\integral{x}{x}_{a}^{b}\integral{x}{x}^{a}_{b}

另外,也可以使用\@ifnextchar传统的 LaTeX 来完成此操作,并且已经在此网站上完成了。

答案2

您可能会做类似的事情,但请注意我给新命令赋予的名称。

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse,relsize}

\NewDocumentCommand{\badint}{e{_^}}{%
  \mathop{
    \mathchoice
      {\displaystyle\mathlarger{\mathlarger{\int_{\mathsmaller{\mathsmaller{#1}}}^{\mathsmaller{\mathsmaller{#2}}}}}}
      {\textstyle\mathlarger{\int_{\mathsmaller{#1}}^{\mathsmaller{#2}}}}
      {\scriptstyle\mathlarger{\int_{\mathsmaller{#1}}^{\mathsmaller{#2}}}}
      {\scriptscriptstyle\mathlarger{\int_{\mathsmaller{#1}}^{\mathsmaller{#2}}}}
  }
}

\begin{document}
\[
\badint_0^1 f(x)\,dx \ne \int_0^1 f(x)\,dx
\qquad
\textstyle
\badint_0^1 f(x)\,dx \ne \int_0^1 f(x)\,dx
\]

\end{document}

我发现输出真的很丑陋。

在此处输入图片描述

相关内容