
情境。這產品積分是普通(黎曼、勒貝格、Denjoy、Perron 等)積分的連續模擬,由 Vito Volterra 於 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
,- 腳本樣式的「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
風味命令,我定義了以下內容
% 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}