我正在使用 cryptocode 包来制定 4 个玩家的协议。
\fbox{
\procedure{name}{%
\textbf{Alice} \< \textbf{Verisign} \< \textbf{Eve} \< \textbf{Bob} \\
\sendmessageright{top=\text{hello}} \<\\
\<\sendmessageright{top=\text{hello}} \<\\
\<\<\sendmessageright{top=\text{hello}} \<\\
}
}
我认为这是一个非常复杂的软件包,没有明确的文档。我写信是想向专家询问,对于这样的图表,是坚持使用密码还是使用 TikZ 更好。如果有人能用 TikZ 帮我完成这个例子,我将不胜感激 :-) 谢谢
答案1
你知道吗msc
包裹? 它被开发为包含消息序列图。(注意:您应该使用 XeLaTeX 进行编译)您的示例如下所示:
\documentclass{article}
\usepackage{msc}
\begin{document}
\drawframe{no}
\begin{msc}{name}
\declinst{A}{}{Alice}
\declinst{B}{}{Verisign}
\declinst{C}{}{Eve}
\declinst{D}{}{Bob}
\mess{hello}{A}{B}
\nextlevel
\mess{hello}{B}{C}
\nextlevel
\mess{hello}{C}{D}
\end{msc}
\end{document}
或者,您可以使用TikZ
。tikzpeople
您可以为所有这些严肃的协议引入一些乐趣。
\documentclass[tikz, border=2mm]{standalone}
\usepackage{lmodern, tikzpeople}
\usetikzlibrary{positioning, shapes.multipart}
\begin{document}
\begin{tikzpicture}[people/.style={minimum width=1.5cm}]
\node[people, alice] (alice) {Alice};
\node[people, priest, right=of alice] (vs) {Verisign};
\node[people, nun, right=of vs] (eve) {Eve};
\node[people, bob, right=of eve] (bob) {Bob};
\draw[->] ([yshift=-1cm]alice.south) coordinate (l1)--(l1-|vs) node[midway, above]{Hello};
\draw[->] ([yshift=-1.5cm]vs.south) coordinate (l2)--(l2-|eve) node[midway, above]{Hello};
\draw[->] ([yshift=-2cm]eve.south) coordinate (l3)--(l3-|bob) node[midway, above]{Hello};
\end{tikzpicture}
\end{document}