我对 Latex 还很陌生。作为课程的一部分,我们需要使用常规的 Alice、Bob 和 Trudy 提交不同版本的协议。
我想知道是否有可能制作类似的东西:这个http://images.slideplayer.us/5/1532038/slides/slide_44.jpg
到目前为止,我能够使用 mathml 中的\includegraphics
和\overleftarrow
/显示图像overright arrow
。但箭头位于图像的底部,连续箭头位于一条直线上。
我不知道如何打破它们并垂直对齐它们。
答案1
TiKZ
是一个选择
\documentclass[border=2mm,tikz]{standalone}
\usepackage{mwe}
\usepackage{amsmath}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[>=stealth]
\node[ label=below:{Alice: $K, a$}] (A) {\includegraphics[width=2cm,keepaspectratio]{example-image-a}};
\node[right=5cm of A, label=below:{Bob: $K, b$}] (B) {\includegraphics[width=2cm,keepaspectratio]{example-image-b}};
\draw[->,thick] (A.20) -- node[above]{$E(g^a\ \text{mod}\ p, K)$} (B.160);
\draw[<-,thick] (A.-20) -- node[above]{$E(g^b\ \text{mod}\ p, K)$} (B.-160);
\end{tikzpicture}
\end{document}
但您可以在这里搜索找到一些其他选项(msc、pstricks......):
虽然没有必要使用它们,但你可以用tabulars
它来做
\begin{tabular}{ccc}
\includegraphics[width=2cm,keepaspectratio]{example-image-a} &
\raisebox{5ex}{%
\begin{tabular}{c}
$\underrightarrow{\quad E(g^a\ \text{mod}\ p, K)\quad}$\\
$\underleftarrow{\quad E(g^b\ \text{mod}\ p, K)\quad}$
\end{tabular}} &
\includegraphics[width=2cm,keepaspectratio]{example-image-b} \\
Alice: $K, a$ & & Bob: $K, b$\\
\end{tabular}
更新:
我只想提一下tikzpeople
这个包,它旨在绘制更多丰富多彩的安全协议。使用default
alice 和 bob 您将获得:
\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikzpeople}
\usetikzlibrary{positioning}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[>=stealth]
\node[alice, minimum size=2cm,label=below:{Alice: $K, a$}] (alice) {};
\node[bob, mirrored, minimum size=2cm, right=5cm of alice, label=below:{Bob: $K, b$}] (bob) {};
\draw[->,thick] (alice.20) -- node[above]{$E(g^a\ \text{mod}\ p, K)$} (bob.160);
\draw[<-,thick] (alice.-20) -- node[above]{$E(g^b\ \text{mod}\ p, K)$} (bob.-160);
\end{tikzpicture}
\end{document}
但是您可以使用其他一些字符,例如以下字符和其他一些