Создание символа интеграции продукта, который ведет себя как стандартный символ интеграции

Создание символа интеграции продукта, который ведет себя как стандартный символ интеграции

Контекст.интеграл продуктаявляется непрерывным аналогом обычного интеграла (Римана, Лебега, Данжуа, Перрона и т. д.) и был введен Вито Вольтеррой в 1887 году с целью предоставления компактного функционального способа выражения решения задачи Коши для систем обыкновенных дифференциальных уравнений. Заинтересованный читатель может взглянуть наэта книга Антонина Славика,Интеграция продуктов, ее история и применение, Матфизпресс 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. Букву «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}, создает следующий графический вывод: введите описание изображения здесь

Хотя полученный графический результат похож на желаемый, представленные решения несколько неудовлетворительны по отношению к первому дереву из приведенных выше пунктов, т.е.

  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} 

введите описание изображения здесь

Мико отмечает, что \barrне следует использовать ни в одном из стилей письма, что верно. Если бы такое использование было необходимо, то \barrвместо этого можно было бы определить как

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

В приведенном выше MWE "P" масштабируется до того же размера, что и \sum. Если вы предпочитаете масштабировать до размера \int, просто замените \sumна \intв каждом из \DeclareMathOperators, и результат будет выглядеть так:

введите описание изображения здесь

решение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}

Символ интеграла продукта

Связанный контент