我尝试用 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}