调整 UML 序列图

调整 UML 序列图

我想在文档中添加一些 UML 序列图。此序列包含许多调用。这就是我想调整图表的原因。

以下是完整的示例,但我希望最小示例只显示图中的 5 个(嵌套)调用。我认为StartCycle()和之间的垂直距离ActAgent()应该减少到一半或三分之一。类似地,返回箭头之间的距离也应该缩小。

我如何控制元素的定位?

\documentclass[]{scrartcl}

\usepackage{tikz}
\usepackage[underline=true,rounded corners=false]{pgf-umlsd}

\usepackage{blindtext}
% It's possible to get a thin border around all figures. You have to write the following once at the beginning of the document:
\usepackage{float}
\floatstyle{boxed} 
\restylefloat{figure}

\begin{document}
\section{Example}
\blindtext
\begin{figure}[h]
    \centering  
    \begin{sequencediagram}
        \newthread{ss}{}{SimulationServer}
        \newinst[1]{ctr}{}{SimControlNode}
        \newinst[1]{ps}{}{PhysicsServer}
        \newinst[1]{sense}{}{SenseServer}

        \begin{call}{ss}{Initialize()}{sense}{}
        \end{call}
        \begin{sdblock}{}{Run Loop}
            \begin{call}{ss}{StartCycle()}{ctr}{}
                \begin{call}{ctr}{ActAgent()}{sense}{}
                \end{call}
            \end{call}
            \begin{call}{ss}{EndCycle()}{ctr}{}
                \begin{call}{ctr}{SenseAgent()}{sense}{}
                \end{call}
            \end{call}
        \end{sdblock}
    \end{sequencediagram}

    \caption{UML sequence diagram demo.}
\end{figure}
\blindtext
\end{document}

\renewcommand\unitfactor{0.4}我尝试在环境中添加sequencediagram。但这适用于所有距离,并导致调用指示符(如“EndCycle()”)覆盖返回路径。

答案1

不幸的是,这种调整是不可能的。当前版本 0.7(2013 年发布)的实现使用计数器来创建一种网格。每个新位置都使用以下公式计算:

\stepcounter{counter}

将位置向下放置一行 (1.0)。该逻辑不提供可自定义的空间。

相关内容