我有一个小问题。我想绘制 2 个序列图,但是遇到了一些格式问题。
我的解决方案:
\documentclass[]{scrreprt}
\usepackage[ngerman, english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{tikz-uml}
\usetikzlibrary{matrix, shapes, positioning}
\begin{document}
\begin{tikzpicture}
\begin{umlseqdiag}
\umlactor{DruckauftragA}
\umlactor[x=6]{DruckauftragB}
\umlobject[x=12]{Drucker}
\begin{umlcall}{DruckauftragA}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragA}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragA}{Drucker}
\end{umlcall}
\end{umlcall}
\begin{umlcall}{DruckauftragB}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragB}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragB}{Drucker}
\end{umlcall}
\end{umlcall}
\end{umlseqdiag}
\end{tikzpicture}
\begin{tikzpicture}
\begin{umlseqdiag}
\umlactor{DruckauftragA}
\umlactor[x=6]{DruckauftragB}
\umlobject[x=12]{Drucker}
\begin{umlcall}{DruckauftragA}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragA}
\end{umlcall}
\begin{umlcall}{DruckauftragB}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragB}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragB}{Drucker}
\end{umlcall}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragA}{Drucker}
\end{umlcall}
\end{umlcall}
\end{umlseqdiag}
\end{tikzpicture}
\end{document}
结果:
链接至 tikz-uml.sty http://perso.ensta-paristech.fr/~kielbasi/tikzuml/index.php?lang=en
也发布于1 http://www.golatex.de/viewtopic.php?t=14492&sid=97b25a8b7fb48b70e8f623e6af5218b3
答案1
首先,我对这个包没有经验。但在没有任何附加信息的情况下,“DruckauftragB”的第一次调用从其时间线的开头开始。
您可以使用选项dt
转移呼叫。请参阅手动的:
dt 选项允许将函数调用放置在生命线上,相对于此生命线上绘制的最后一个调用。它没有默认值。其单位是 ex。默认行为是移动您定义的调用,以避免在连续调用之间覆盖:
建议:
\documentclass[]{scrreprt}
\usepackage[ngerman, english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{tikz-uml}
\usetikzlibrary{matrix, shapes, positioning}
\begin{document}
\begin{tikzpicture}
\begin{umlseqdiag}
\umlactor{DruckauftragA}
\umlactor[x=6]{DruckauftragB}
\umlobject[x=12]{Drucker}
\begin{umlcall}{DruckauftragA}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragA}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragA}{Drucker}
\end{umlcall}
\end{umlcall}
%
\begin{umlcall}[dt=25]{DruckauftragB}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragB}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragB}{Drucker}
\end{umlcall}
\end{umlcall}
\end{umlseqdiag}
\end{tikzpicture}
\begin{tikzpicture}
\begin{umlseqdiag}
\umlactor{DruckauftragA}
\umlactor[x=6]{DruckauftragB}
\umlobject[x=12]{Drucker}
%
\begin{umlcall}{DruckauftragA}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragA}
\end{umlcall}
\begin{umlcall}[dt=11]{DruckauftragB}{Drucker}
\begin{umlcall}{Drucker}{DruckauftragB}
\end{umlcall}
\begin{umlcall}[return=1]{DruckauftragB}{Drucker}
\end{umlcall}
\end{umlcall}
\begin{umlcall}[dt=19,return=1]{DruckauftragA}{Drucker}
\end{umlcall}
\end{umlcall}
\end{umlseqdiag}
\end{tikzpicture}
\end{document}