答案1
我将为事件的无条件和条件概率创建单独的宏。
\documentclass{article}
\usepackage{mleftright} % for '\mleft' and '\mright' macros
\usepackage{mathtools} % for '\DeclarePairedDelimiter' macro
\DeclareMathOperator{\negl}{\textsf{negl}}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
%% Create separarate macros for unconditional and conditional probabilities:
\newcommand\uprob[2][]{\Pr_{#1}\mleft[\,#2\,\mright]}
\newcommand\cprob[3][]{\Pr_{#1}\mleft[\,#2\;\middle\vert\;#3\,\mright]}
\begin{document}
\[
\abs[\Big]{\,\uprob[x\leftarrow X_\lambda]{\mathcal{A}(1^\lambda,x)=1}
- \uprob[y\leftarrow Y_\lambda]{\mathcal{A}(1^\lambda,y)=1}}
\le \negl(\lambda)\,.
\]
\end{document}
答案2
您可以定义一个新命令,这里称为\xPr
。
语法是
\xPr_{<subscript>}[<size>]{<matherial>}
其中_{<subscript>}
和[<size>]
都是可选的。在必选参数中,可以有一个|
表示条件概率的标记。
以下是一些示例,与标准语法进行了比较。
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\negl}{\mathsf{negl}}
\NewDocumentCommand{\xPr}{ e{_} O{} >{\SplitArgument{1}{|}}m}{%
\Pr\IfValueT{#1}{_{#1}}
\xPrCond{#2}#3
}
\NewDocumentCommand{\xPrCond}{mmm}
{
\mathopen{#1[} #2 \IfValueT{#3}{\mathrel{#1|}#3} \mathclose{#1]}
}
\begin{document}
\begin{gather}
% new command
\Bigl|
\xPr_{x\gets X_\lambda}{A(1^\lambda,x)=1}
-
\xPr_{y\gets Y_\lambda}{A(1^\lambda,y)=1}
\Bigr|
\le \negl(\lambda)
\\
% standard
\Bigl|
\Pr_{x\gets X_\lambda}[A(1^\lambda,x)=1]
-
\Pr_{y\gets Y_\lambda}[A(1^\lambda,y)=1]
\Bigr|
\le \negl(\lambda)
\\
% new command
\Bigl|
\xPr_{x\gets X_\lambda}[\big]{A(1^\lambda,x)=1}
-
\xPr_{y\gets Y_\lambda}[\big]{A(1^\lambda,y)=1}
\Bigr|
\le \negl(\lambda)
\\
% standard
\Bigl|
\Pr_{x\gets X_\lambda}\bigl[A(1^\lambda,x)=1\bigr]
-
\Pr_{y\gets Y_\lambda}\bigl[A(1^\lambda,y)=1\bigr]
\Bigr|
\le \negl(\lambda)
\\
% new command
\xPr{A|B}+\xPr[\big]{A|B}+\xPr_{y}[\big]{A|B}
\\
% standard
\Pr[A\mid B]+\Pr\bigl[A\bigm|B\bigr]+\Pr_y\bigl[A\bigm|B\bigr]
\end{gather}
\end{document}
如果你的 LaTeX 版本早于 2020-10-01,你需要\usepackage{xparse}
。