我想要绘制下面的地图。
输入是N,e,R
,输出是R^d
。在框中,S
是 在\mathcal{S}
;所以是M
。这对我来说似乎有点难。谁能帮助我?
我使用以下代码绘制了一个框:
\documentclass{article}
\usepackage{amsmath}
\setlength{\fboxrule}{2pt}
\setlength{\fboxsep}{1cm}
\begin{document}
$\xrightarrow{N,e,R}$
\fbox{$\mathcal{M}$ $\updownarrow {mOT}$
$\mathcal{S}$
}
$\xrightarrow{R^{d}}$
\end{document}
它就像上面这样。
离我想要的有点远,而且也有点丑。
答案1
这里有两个解决方案,一个tikz
是我个人的选择。另一个是stackengine
下面这个。最后一个更多的是想帮助你,而不是一个明确的答案,因为这是我第一次接触这种代码。
Tikz 解决方案
代码如下:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{squary/.style={anchor=west,
minimum height=7mm,
text width=2cm,
},
}
\begin{document}
\begin{tikzpicture}
% NODES
\node[squary] (1) at (0,1.5) {$\mathcal{M}$};
\node[squary] (2) at (0,0) {$S (A,B,\ldots)$};
\node[squary] (3) at (0,-.8) {$RSA$ $Solver$};
\draw ($(1.north west)+(-.1,.1)$) |- ($(2.south east)+(.1,-.1)$) |- ($(1.north east)+(.1,.1)$) -- cycle;
% PATHS
\draw[<->] ($(1.south)+(-.8,.1)$) -- ($(2.north)+(-.8,-.1)$) node[midway, right] {$mOT$};
\draw[->] ($(2.190)+(-1.5,0)$) -- ($(2.190)+(-.1,0)$) node[midway, above]{$N,e,R$};
\draw[->] ($(1.10)+(.1,0)$) -- ($(1.10)+(1,0)$) node[midway, above]{$R^d$};
\end{tikzpicture}
\end{document}
Stackengine + amsmath 解决方案
修改代码即可实现此目的。虽然有些不完善,但可以帮到你。检查stackengine 手册以供参考。
\documentclass[border=1cm]{standalone}
\usepackage{stackengine}
\usepackage{amsmath}
\def\stackalignment{l}
\setstackgap{L}{1.8\baselineskip}
\fboxsep=1mm
\begin{document}
\stackanchor{}{$\xrightarrow{N,e,R}$}
\stackunder{\fbox{\fboxsep=3pt\Centerstack[l]{$\mathcal{M}$ $\updownarrow {mOT}$ $\mathcal{S (A,B,...,)}$}}}{$RSA Solver$}
\stackanchor{$\xrightarrow{R^{d}}$}{}
\end{document}
答案2
这是一个“易于理解”的*
示例解决方案。
\documentclass{article}
\usepackage{lipsum} % demo only
\usepackage{tikz}
\begin{document}
\lipsum[1] % demo only
\resizebox{4cm}{!}{
\begin{tikzpicture}[thick]
\draw[->] (0.0,0.2) -- (1.0,0.2);
\draw (1.0,0.0) -- (1.0,2.0) -- (3.0,2.0) -- (3.0,0.0) -- cycle;
\draw[->] (3.0,1.6) -- (4.0,1.6);
\draw[<->, thin] (1.3,0.6) -- (1.3,1.4);
\node at (0.4,0.4) {$N$,$e$,$R$};
\node[anchor=west] at (1.0,1.7) {$\mathcal{M}$};
\node[anchor=west] at (1.3,1.0) {$m\text{OT}$};
\node[anchor=west] at (1.0,0.3) {$\mathcal{S}\left(A,B,\dots\right)$};
\node at (2.0,-0.2) {RSA solver};
\node at (3.4, 1.8) {$R^d$};
\end{tikzpicture}
}
\lipsum[2] % demo only
\end{document}
*
这是我的主要目的,创建一个足够简单的例子