![我怎样才能使用 Tikz 生成这个图形](https://linux22.com/image/433663/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%20Tikz%20%E7%94%9F%E6%88%90%E8%BF%99%E4%B8%AA%E5%9B%BE%E5%BD%A2.png)
我想生成下图(第 6 页https://eprint.iacr.org/2021/150.pdf)。
我认为这个图是使用 Tikz 或 Table 生成的。
但是,我不知道如何生成它。
有人知道如何获得它吗?
谢谢。
答案1
以下是如何将其tabular
放置在环境内部来进行此操作figure
。
\documentclass{article}
\usepackage{mathtools} % For \coloneqq :=
\renewcommand{\arraystretch}{1.4} % Increase spacing between rows by 1.4
\newcommand{\lineNumber}[1]{{\scriptsize \textit{#1}}} % For consistently typesetting the line numbers
\begin{document}
\begin{figure}
\centering
\fbox{
\begin{tabular}{p{5.5cm}ll}
\(\mathsf{aWitExt}_{\mathcal{A},\mathsf{aSIG_{R,SIG}}}(n)\) & \(\mathcal{O}_{\mathrm{S}}(m)\) & \(\mathcal{O}_{\mathrm{pS}}(m, Y)\)\\\hline
\lineNumber{1} : \(\mathcal{Q} \coloneqq \emptyset, (sk, pk) \leftarrow \mathsf{Gen}(1^n)\) & \lineNumber{1} : \(\sigma \leftarrow \mathsf{Sign}_{sk}(m)\) & \lineNumber{1} : \(\tilde{\sigma} \leftarrow \mathsf{pSign}_{sk}(m, Y)\)\\
\lineNumber{2} : \((m^*, Y^*) \leftarrow \mathcal{A}^{\mathcal{O}_{\mathrm{S}}, \mathcal{O}_{\mathrm{pS}}}(pk)\) & \lineNumber{2} : \(\mathcal{Q} \coloneqq \mathcal{Q} \cup \{m\}\) & \lineNumber{2} : \(\mathcal{Q} \coloneqq \mathcal{Q} \cup \{m\}\)\\
\lineNumber{3} : \(\tilde{\sigma} \leftarrow \mathsf{pSign}_{sk}(m^*, Y^*)\) & \lineNumber{3} : \textbf{return} \(\sigma\) & \lineNumber{3} : \textbf{return} \(\tilde{\sigma}\)\\
\lineNumber{4} : \(\sigma^* \leftarrow \mathcal{A}^{\mathcal{O}_S, \mathcal{O}_{pS}}(\tilde{\sigma})\) & & \\
\lineNumber{5} : \(y \coloneqq \mathsf{Ext}_{pk}(\sigma^*, \tilde{\sigma}, Y^*)\) & & \\
\multicolumn{2}{l}{\lineNumber{6} : \textbf{return} \((m^* \notin \mathcal{Q} \wedge (Y^*, y) \notin \mathsf{R} \wedge \mathsf{Vrfy}_{pk}(m^*; \sigma^*))\)} &
\end{tabular}
}
\caption{Caption}
\end{figure}
\end{document}