
Kontext. DerProduktintegralist das kontinuierliche Analogon des gewöhnlichen Integrals (Riemann, Lebesgue, Denjoy, Perron usw.) und wurde 1887 von Vito Volterra eingeführt, um eine kompakte funktionale Möglichkeit zu bieten, die Lösung des Cauchy-Problems für Systeme gewöhnlicher Differentialgleichungen auszudrücken. Der interessierte Leser kann einen Blick darauf werfendieses Buch von Antonín Slavík,Produktintegration, ihre Geschichte und Anwendungen, Matfyzpress 2007.
In der üblichen Praxis (auch in der oben zitierten Referenz) wird das Produktintegral \Pi
durch den Standardbefehl \prod
in der üblichen „Großschreibung“ dargestellt, ähnlich dem, was man durch Verwendung des Codes erhält
\prod_0^t (1+r(s))^{\operatorname{d}s}
Aus logischer und übersichtlicher Sicht ist dies jedoch etwas unbefriedigend:warum sollten wir für das Produkt endlicher oder unendlicher diskreter Terme dasselbe Symbol verwenden, selbst für das Produkt unendlicher „infinitesimaler“ Terme?
Beim gewöhnlichen Integral wissen wir, dass diese Grenzwertoperation vom Summationssymbol \sum
zum \int
Symbol führt, also eine Art großes „S“ im Schreibschriftstil ist.
Das zu lösende Problem. Meine Idee ist, einen Befehl zu definieren \pint
, der eine Art Großbuchstaben „P“ im Skriptstil ausgibt und sich genau wie das \int
Symbol verhält. Genau
\pint
sollte der Standardbefehl sein,- Der Ausdruck nach dem Befehl sollte grafisch zentriert sein, bezogen auf die Höhe des Symbols (wie es beim Standardsymbol der Fall ist
\int
), \pint\limits
soll der Befehl sein, um die Produktintegrationsgrenzen oberhalb und unterhalb des\pint
Symbols zu setzen,- Das „P“ im Schreibschriftstil könnte durch die Verwendung von etwas Ähnlichem
\mathscr{P}
oder durch die Verwendung einer SVG- oder anderen Vektorbilddatei erstellt werden, die durch Ändern des Standardsymbols erhalten wurde\int
.
Einige Experimente zielten darauf ab, das gewünschte grafische Ergebnis zu erzielen. Ich habe es geschafft, etwas dieser Art zu produzieren, indem ich die folgenden Präambel-Codedeklarationen verwendet habe
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{stix}
\newcommand{\dm}{\mathrm{d}}
Um einen "Standardstil" zu erhalten, \pint
habe ich dann den folgenden Befehl definiert
% Definition of Volterra's product integral, standard style.
\DeclareMathOperator{\pint}{{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\mathscr{P}}}}}}}
welches, im Hauptteil des Dokuments als aufgerufen \pint_{\!\!\!\!\!\!0}^{t}(1+r(s))^{\dm s}
, die folgende grafische Ausgabe erzeugt:
Um einen \int\limits
Flavour-Befehl zu erhalten, habe ich danach Folgendes definiert
% Definition of Volterra's product integral, \limits style.
\DeclareMathOperator*{\pint}{{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\mathscr{P}}}}}}}
welches, im Hauptteil des Dokuments als aufgerufen \pint_{\!\!\!\!\!\!0}^{\quad t}(1+r(s))^{\dm s}
, die folgende grafische Ausgabe erzeugt:
Während die erzielte grafische Darstellung der gewünschten ähnelt, sind die präsentierten Lösungen in Bezug auf den ersten der oben genannten Punkte etwas unbefriedigend, d. h.
- das Aufrufen des
\pint
Befehls reicht nicht aus, um die tiefgestellten und hochgestellten Zeichen richtig zu platzieren, da Sie ihre Position mit bloßen Händen anpassen müssen, und - der Ausdruckist grafisch nicht zentriertin Bezug auf das
\pint
Symbol, und schließlich - Um das
\pint\limits
Verhalten zu erhalten, muss ich den Befehl komplett neu definieren.
Antwort1
Hier ist mein Vorschlag
\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}
Ich möchte das prodint
Paket erwähnen. Allerdings mit einer kleinen Besonderheit.
\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}
Antwort2
Eine direkte Anpassung meiner Antwort unterWie werden große Betreiber definiert?. Hier \foo
ergibt ein größeres Symbol in \displaystyle
, ebenso wie \int
, während \barr
die Größe des mit verknüpften Symbols \textstyle
auch in der Anzeigemathematik beibehält.
\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 merkt an, dass dies \barr
in keinem der Skriptstile verwendet werden sollte, was auch stimmt. Wenn diese Verwendung notwendig wäre, \barr
könnte then stattdessen wie folgt definiert werden:
\DeclareMathOperator*{\barr}{\scalerel*{\mathscr{P}}{\mathchoice
{\textstyle\sum}{\sum}{\sum}{\sum}}}
Im obigen MWE wird das „P“ auf die gleiche Größe wie skaliert \sum
. Wenn Sie es lieber auf die Größe von skaliert hätten \int
, ersetzen Sie einfach in jedem der s \sum
durch und das Ergebnis sieht folgendermaßen aus:\int
\DeclareMathOperator
Antwort3
Meiner Meinung nach ist die funktionale (Einzelbuchstaben-)Notation für das Integral einfacher und wirtschaftlicher als das Integralsymbol, sie kann dx
die integrierende Variable bei Bedarf explizit anzeigen (anstatt sie in oft ungenutzten zu verstecken) und ist nicht von der Dimension abhängig. Die Notation muss auch leicht verwendbar sein, wenn man im Unterricht an die Tafel schreibt. Eine einfache Notation sollte also \DeclareMathOperator*{\pint}{\mathbf{P}}
ausreichen, aber im Beispiel unten wird zur Unterscheidung eine Schriftart mit längerem Hals verwendet, und sie kann trotzdem leicht handschriftlich reproduziert werden.
\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}