语境。 这乘积积分是普通积分(黎曼、勒贝格、丹乔伊、佩隆等)的连续类似物,由维托·沃尔泰拉于 1887 年引入,旨在提供一种紧凑的函数方式来表达常微分方程组柯西问题的解。感兴趣的读者可以看看这本书由 Antonín Slavík 撰写,产品集成、其历史和应用, Matfyzpress 2007在通常的实践中(也在上面引用的参考文献中) ,
乘积积分\Pi
通过标准命令\prod
以类似于使用代码获得的方式表示为普通的“大写”
\prod_0^t (1+r(s))^{\operatorname{d}s}
然而,从逻辑和清晰度的角度来看,这有点不令人满意:为什么我们要对有限或无限离散项的乘积使用相同的符号,甚至对无限“无穷小”项的乘积也使用相同的符号?
对于普通的积分,我们知道这个极限运算从求和符号引向\sum
符号\int
,是一种脚本风格的大写“S”。
需要解决的问题。我的想法是定义一个\pint
命令,打印一种脚本风格的大写字母“P”,其行为与\int
符号完全相同。确切地说
\pint
应该是标准命令,- 命令后面的表达式应该在图形上相对于符号的高度居中(就像标准
\int
符号一样), \pint\limits
应该是用来将产品集成限制置于符号上方和下方的命令\pint
,\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}
,生成以下图形输出:
虽然获得的图形风格与所需的类似,但对于上述要点的第一棵树而言,所提出的解决方案有些不令人满意,即
- 调用
\pint
命令不足以正确放置下标和上标,因为你必须“徒手”调整它们的位置,并且 - 表达方式图形不居中对象征的尊重
\pint
,最后 - 为了获得
\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}