创建作为标准积分符号的产品积分符号

创建作为标准积分符号的产品积分符号

语境。 这乘积积分是普通积分(黎曼、勒贝格、丹乔伊、佩隆等)的连续类似物,由维托·沃尔泰拉于 1887 年引入,旨在提供一种紧凑的函数方式来表达常微分方程组柯西问题的解。感兴趣的读者可以看看这本书由 Antonín Slavík 撰写,产品集成、其历史和应用, Matfyzpress 2007在通常的实践中(也在上面引用的参考文献中) ,
乘积积分\Pi通过标准命令\prod以类似于使用代码获得的方式表示为普通的“大写”

\prod_0^t (1+r(s))^{\operatorname{d}s} 

然而,从逻辑和清晰度的角度来看,这有点不令人满意:为什么我们要对有限或无限离散项的乘积使用相同的符号,甚至对无限“无穷小”项的乘积也使用相同的符号?
对于普通的积分,我们知道这个极限运算从求和符号引向\sum符号\int,是一种脚本风格的大写“S”。

需要解决的问题。我的想法是定义一个\pint命令,打印一种脚本风格的大写字母“P”,其行为与\int符号完全相同。确切地说

  1. \pint应该是标准命令,
  2. 命令后面的表达式应该在图形上相对于符号的高度居中(就像标准\int符号一样),
  3. \pint\limits应该是用来将产品集成限制置于符号上方和下方的命令\pint
  4. \mathscr{P}可以使用类似的或使用通过修改标准符号获得的 .svg 或其他矢量类型的图像来制作脚本样式的“P” \int

为获得所需图形结果而进行的一些实验。我设法通过使用以下序言代码声明来生成此类内容

\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{stix}
\newcommand{\dm}{\mathrm{d}}

然后,为了获得“标准样式”,\pint我定义了以下命令

% Definition of Volterra's product integral, standard style.
\DeclareMathOperator{\pint}{{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\mathscr{P}}}}}}}

在文档主体中调用该函数\pint_{\!\!\!\!\!\!0}^{t}(1+r(s))^{\dm s},生成以下图形输出: 在此处输入图片描述

之后,为了获得\int\limits风味命令,我定义了以下内容

% Definition of Volterra's product integral, \limits style.
\DeclareMathOperator*{\pint}{{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\mathscr{P}}}}}}}

在文档主体中调用该函数\pint_{\!\!\!\!\!\!0}^{\quad t}(1+r(s))^{\dm s},生成以下图形输出: 在此处输入图片描述

虽然获得的图形风格与所需的类似,但对于上述要点的第一棵树而言,所提出的解决方案有些不令人满意,即

  1. 调用\pint命令不足以正确放置下标和上标,因为你必须“徒手”调整它们的位置,并且
  2. 表达方式图形不居中对象征的尊重\pint,最后
  3. 为了获得\pint\limits行为,我必须完全重新定义命令。

答案1

这是我的建议

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx,mathrsfs}

\makeatletter
\NewDocumentCommand{\pint}{t\limits e{_^}}{%
  \DOTSI\pint@{#1}{#2}{#3}%
}
\NewDocumentCommand{\pint@}{mmm}{%
  \mathop{%
    \IfBooleanTF{#1}{\pint@limits}{\pint@nolimits}{#2}{#3}%
  }%
}

\NewDocumentCommand{\pint@limits}{mm}{%
  \mathpalette\pint@@limits{{#1}{#2}}%
}
\NewDocumentCommand{\pint@@limits}{mm}{%
  \pint@@@limits#1#2%
}
\NewDocumentCommand{\pint@@@limits}{mmm}{%
  \mathop{\vcenter{
    \sbox\z@{\raisebox{\depth}{$\m@th#1\int$}}%
    \hbox{\resizebox{!}{0.95\ht\z@}{$\m@th\mathscr{P}$}\vphantom{\box\z@}}%
  }}\limits\IfValueT{#2}{_{#2}}\IfValueT{#3}{^{\mspace{\if@display18\else9\fi mu}#3}}%
}

\NewDocumentCommand{\pint@nolimits}{mm}{%
  \mathpalette\pint@@nolimits{{#1}{#2}}%
}
\NewDocumentCommand{\pint@@nolimits}{mm}{%
  \pint@@@nolimits#1#2%
}
\NewDocumentCommand{\pint@@@nolimits}{mmm}{%
  \vcenter{
    \sbox\z@{\raisebox{\depth}{$\m@th#1\int$}}%
    \hbox{\resizebox{!}{0.95\ht\z@}{$\m@th\mathscr{P}$}\vphantom{\box\z@}}%
  }\IfValueT{#2}{_{\mspace{-\if@display24\else12\fi mu}#2}}\IfValueT{#3}{^{#3}}%
}

\makeatother

\begin{document}

\[
\pint_a^b \int_a^b \pint\limits_a^b \int\limits_a^b
\]
\begin{center}
$\pint_a^b \int_a^b \pint\limits_a^b \int\limits_a^b$
\end{center}

\end{document} 

在此处输入图片描述

我想提一下prodint包装。不过,有点不同。

\documentclass{article}
\usepackage{amsmath}
\usepackage{prodint}

\makeatletter
\newcommand\pint{\DOTSI\if@display\PRODI\else\prodi\fi\ilimits@}
\makeatother

\begin{document}

\[
\pint_a^b \int_a^b \pint\limits_a^b \int\limits_a^b
\]
\begin{center}
$\pint_a^b \int_a^b \pint\limits_a^b \int\limits_a^b$
\end{center}

\end{document}

在此处输入图片描述

答案2

直接改编自我的回答大运营商是如何定义的?。这里,\foo在 中给出一个更大的符号\displaystyle,就像 一样\int,而\barr保留与 相关联的符号的大小\textstyle,即使在显示数学中也是如此。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\DeclareMathOperator*{\foo}{\scalerel*{\mathscr{P}}{\sum}}
\DeclareMathOperator*{\barr}{\scalerel*{\mathscr{P}}{\textstyle\sum}}
\usepackage{mathrsfs}
\usepackage{scalerel}

\begin{document}
\[
\foo_{i=3}^{6}(f^2(i))
\]

This is inline: \(\foo_{i=3}^{6}(f^2(i)) \)

\[
\barr_{i=3}^{6}(f^2(i))
\]

This is inline: \(\barr_{i=3}^{6}(f^2(i)) \)
\end{document} 

在此处输入图片描述

Mico 指出,\barr在这两种字体中都不应使用,这是事实。如果必须使用,则\barr可以将其定义为

\DeclareMathOperator*{\barr}{\scalerel*{\mathscr{P}}{\mathchoice
  {\textstyle\sum}{\sum}{\sum}{\sum}}}

在上面的 MWE 中,“P”被缩放到与 相同的大小\sum。如果您希望将其缩放到 的大小\int,只需在每个 s 中替换\sum为,结果如下所示:\int\DeclareMathOperator

在此处输入图片描述

答案3

我认为,积分的函数(单字母)符号比积分符号更简单、更经济,它可以dx在需要时明确显示(而不是将其隐藏在经常不使用的)积分变量,并且它不依赖于维度。在课堂上在黑板上写字时,符号也需要易于使用。因此,简单的符号应该可以\DeclareMathOperator*{\pint}{\mathbf{P}}完成工作,但在下面的示例中,为了区分,使用了带有较长颈部的字体,并且仍然可以轻松地用手写复制。

\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}

% for longer neck letters but don't use them by default
\usepackage[nodefault,typeone]{drm}

% 
\newcommand{\drm}[1]{{\fontfamily{drm}\selectfont #1}}

% Longer neck P
\DeclareMathOperator*{\pint}{\textrm{\drm{P}}}

% Longer neck P large operator
\DeclareMathOperator*{\Pint}{\scalerel*{\textrm{\drm{P}}}{\int}}
\begin{document}

\begin{tabular}{ll}
  $\pint_a^b(1+r(s))$
  & $\displaystyle \pint_a^b(1+r(s))$\\[1cm]
  $\pint_{s \in [a,b]}(1+r(s))$
  & $\displaystyle \pint_{s \in [a,b]}(1+r(s))$\\[1cm]
  $\pint_{(s,t) \in [a,b]\times[c,d]}(1+r(s,t))$
  & $\displaystyle \pint_{(s,t) \in [a,b]\times[c,d]}(1+r(s,t))$\\[1cm]
  $\pint_{s^2+t^2=1}(1+r(s,t))$
  & $\displaystyle \pint_{s^2+t^2=1}(1+r(s,t))$\\[1cm]
  $\Pint_{s^2+t^2=1}(1+r(s,t))$
  & $\displaystyle \Pint_{s^2+t^2=1}(1+r(s,t))$
\end{tabular}

\end{document}

乘积积分符号

相关内容