tikz-uml 序列图的问题

tikz-uml 序列图的问题

我有一个小问题。我想绘制 2 个序列图,但是遇到了一些格式问题。

1 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}              

结果: 1

链接至 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}

在此处输入图片描述

相关内容