
Контекст.интеграл продуктаявляется непрерывным аналогом обычного интеграла (Римана, Лебега, Данжуа, Перрона и т. д.) и был введен Вито Вольтеррой в 1887 году с целью предоставления компактного функционального способа выражения решения задачи Коши для систем обыкновенных дифференциальных уравнений. Заинтересованный читатель может взглянуть наэта книга Антонина Славика,Интеграция продуктов, ее история и применение, Матфизпресс 2007.
В обычной практике (также в приведенной выше ссылке) интеграл произведения представляется как обычная «заглавная \Pi
» буква стандартной командой \prod
способом, аналогичным тому, который получается при использовании кода
\prod_0^t (1+r(s))^{\operatorname{d}s}
Тем не менее, с точки зрения логики и ясности это несколько неудовлетворительно:почему мы должны использовать один и тот же символ для произведения конечных или бесконечных дискретных членов даже для произведения бесконечных «бесконечно малых» членов?
Для обычного интеграла мы знаем, что эта предельная операция ведет от символа суммирования \sum
к \int
символу , представляющему собой своего рода заглавную букву «S» в письменном виде.
Проблема, которую необходимо решить. Моя идея заключается в том, чтобы определить \pint
команду, которая печатает своего рода заглавную букву «P» в стиле скрипта и ведет себя точно так же, как этот \int
символ. Именно
\pint
должна быть стандартной командой,- выражение, следующее за командой, должно быть графически центрировано относительно высоты символа (как это происходит для стандартного
\int
символа), \pint\limits
следует использовать команду для размещения пределов интеграции продукта выше и ниже символа\pint
,- Букву «P» в стиле рукописного текста можно создать, используя что-то вроде
\mathscr{P}
или используя .svg или другой векторный тип изображения, полученный путем изменения стандартного\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
команды flavor я определил следующее
% 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}
Мико отмечает, что \barr
не следует использовать ни в одном из стилей письма, что верно. Если бы такое использование было необходимо, то \barr
вместо этого можно было бы определить как
\DeclareMathOperator*{\barr}{\scalerel*{\mathscr{P}}{\mathchoice
{\textstyle\sum}{\sum}{\sum}{\sum}}}
В приведенном выше MWE "P" масштабируется до того же размера, что и \sum
. Если вы предпочитаете масштабировать до размера \int
, просто замените \sum
на \int
в каждом из \DeclareMathOperator
s, и результат будет выглядеть так:
решение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}