尝试绘制网络协议但总是出错

尝试绘制网络协议但总是出错

我尝试用 LaTeX 绘制下图

在此处输入图片描述

我参考了这里

我可以成功地编译上面链接中的代码,但是当我尝试通过修改中的数字在 A 和 B 之间画更多的线时:

\draw[shorten <=-1cm,shorten >=-1cm,-latex] (m-4-2.south west)--(m-4-2.south east);
\draw[shorten <=-1cm,shorten >=-1cm,-latex] (m-7-2.south east)--(m-7-2.south west);

我总是收到这样的错误信息:

Package pgf Error: No shape named m-5-2 is known.

这个问题有解决办法吗?谢谢。

答案1

使用简单的array环境:

\documentclass{article}
\usepackage{mathtools}

\def\XLR#1{\xleftrightarrow[\rule{2cm}{0pt}]{#1}}% \rule defines the width
\def\XR#1{\xrightarrow[\rule{2cm}{0pt}]{#1}}
\def\XL#1{\xleftarrow[\rule{2cm}{0pt}]{#1}}
\begin{document}

\[
\begin{array}{@{} c c c @{}}
A  &  & B \\
   & \XLR{\text{KE}} \\
\text{obtain }k,T^A_{\text{KE}} &  & \text{obtain }k,T^B_{\text{KE}} \\
K:= \text{PRF}(k,\text{"KE"})   &  & K:= \text{PRF}(k,\text{"KE"})   \\
K_\text{mac}:= \text{PRF}(k,\text{"MAC"})   &  & K_\text{mac}:= \text{PRF}(k,\text{"MAC"}) \\
   & \XR{r_A} \\
   & \XL{r_B} \\
\text{[...]}
 \end{array}
\]
\end{document}

在此处输入图片描述

相关内容